aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-symbol-solver-testing
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2018-03-04 08:21:35 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2018-03-04 08:21:35 +0000
commitb4c1397d5df9370f6358d4f8e9efd27e0f67dec1 (patch)
tree6789ec288d344cf5fd5d057bcf1efc9545b1af28 /javaparser-symbol-solver-testing
parent92d661a1d239131fb5c1e019a8f2ac7584d2d3f6 (diff)
parent1afe9e0652b9b53edade5aa276162abe27b32a67 (diff)
downloadplatform_external_javaparser-android-9.0.0_r7.tar.gz
platform_external_javaparser-android-9.0.0_r7.tar.bz2
platform_external_javaparser-android-9.0.0_r7.zip
Snap for 4632767 from 1afe9e0652b9b53edade5aa276162abe27b32a67 to pi-releaseandroid-wear-9.0.0_r9android-wear-9.0.0_r8android-wear-9.0.0_r7android-wear-9.0.0_r6android-wear-9.0.0_r5android-wear-9.0.0_r4android-wear-9.0.0_r3android-wear-9.0.0_r23android-wear-9.0.0_r22android-wear-9.0.0_r21android-wear-9.0.0_r20android-wear-9.0.0_r2android-wear-9.0.0_r19android-wear-9.0.0_r18android-wear-9.0.0_r17android-wear-9.0.0_r16android-wear-9.0.0_r15android-wear-9.0.0_r14android-wear-9.0.0_r13android-wear-9.0.0_r12android-wear-9.0.0_r11android-wear-9.0.0_r10android-wear-9.0.0_r1android-vts-9.0_r9android-vts-9.0_r8android-vts-9.0_r7android-vts-9.0_r6android-vts-9.0_r5android-vts-9.0_r4android-vts-9.0_r14android-vts-9.0_r13android-vts-9.0_r12android-vts-9.0_r11android-vts-9.0_r10android-cts-9.0_r9android-cts-9.0_r8android-cts-9.0_r7android-cts-9.0_r6android-cts-9.0_r5android-cts-9.0_r4android-cts-9.0_r3android-cts-9.0_r2android-cts-9.0_r13android-cts-9.0_r12android-cts-9.0_r11android-cts-9.0_r10android-cts-9.0_r1android-9.0.0_r9android-9.0.0_r8android-9.0.0_r7android-9.0.0_r60android-9.0.0_r6android-9.0.0_r59android-9.0.0_r58android-9.0.0_r57android-9.0.0_r56android-9.0.0_r55android-9.0.0_r54android-9.0.0_r53android-9.0.0_r52android-9.0.0_r51android-9.0.0_r50android-9.0.0_r5android-9.0.0_r49android-9.0.0_r48android-9.0.0_r3android-9.0.0_r2android-9.0.0_r18android-9.0.0_r17android-9.0.0_r10android-9.0.0_r1security-pi-releasepie-vts-releasepie-security-releasepie-s2-releasepie-release-2pie-releasepie-r2-s2-releasepie-r2-s1-releasepie-r2-releasepie-platform-releasepie-gsipie-cuttlefish-testingpie-cts-release
Change-Id: Ibe65883e94ed5a7272dff3f100393987a1cf3da2
Diffstat (limited to 'javaparser-symbol-solver-testing')
-rw-r--r--javaparser-symbol-solver-testing/.gitignore5
-rw-r--r--javaparser-symbol-solver-testing/javaparser-symbol-solver-testing.iml30
-rw-r--r--javaparser-symbol-solver-testing/pom.xml232
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/SlowTest.java7
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/resolution/types/ResolvedPrimitiveTypeTest.java50
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/AbstractTest.java47
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/FindingAllFields.java57
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue113.java53
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue116.java52
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue128.java50
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1364.java91
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue144.java70
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue156.java37
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue18.java47
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue185.java35
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue186.java50
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue200.java33
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue228.java31
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue232.java27
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue235.java51
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue241.java40
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue251.java31
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue276.java41
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue300.java63
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue314.java58
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue343.java60
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347.java55
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue84.java47
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/JavaParserAPIIntegrationTest.java158
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/JavaSymbolSolverTest.java67
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/ConvertToUsageTest.java40
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/DifferentiateDotExpressionTest.java100
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnonymousClassDeclarationTest.java98
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserClassDeclarationTest.java894
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumDeclarationTest.java826
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java826
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/Issue257.java47
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistClassDeclarationTest.java404
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumDeclarationTest.java122
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistInterfaceDeclarationTest.java121
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/logic/FunctionInterfaceLogicTest.java51
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/logic/InferenceContextTest.java85
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/ArrayTypeTest.java184
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/NullTypeTest.java145
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/PrimitiveTypeTest.java331
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/ReferenceTypeTest.java600
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/TypeVariableUsageTest.java50
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/VoidTypeTest.java145
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/WildcardUsageTest.java422
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassDeclarationTest.java776
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumDeclarationTest.java106
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionInterfaceDeclarationTest.java85
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodDeclarationTest.java78
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AbstractResolutionTest.java46
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseJavaParserTest.java267
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseJavaSymbolSolver060Test.java349
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseNewJavaParserHelpersTest.java98
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseNewJavaParserTest.java328
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/ArrayExprTest.java26
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/ContextTest.java475
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/DefaultPackageTest.java158
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/EnumResolutionTest.java61
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/FieldsResolutionTest.java107
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/GenericsResolutionTest.java440
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/JavaParserFacadeResolutionTest.java163
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/LambdaResolutionTest.java177
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionLogicTest.java83
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionTest.java361
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/QualifiedNameResolutionTest.java47
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/StatementContextResolutionTest.java108
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverTest.java100
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistClassTest.java139
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistEnumTest.java106
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistInterfaceTest.java96
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/VariadicResolutionTest.java104
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/VarTypeTest.java62
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/ClassOrInterfaceDeclarationContextResolutionTest.java490
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/CompilationUnitContextResolutionTest.java236
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/EnumDeclarationContextResolutionTest.java116
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/FieldAccessContextResolutionTest.java51
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/LambdaExprContextResolutionTest.java112
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/MethodCallExprContextResolutionTest.java126
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/MethodContextResolutionTest.java59
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/declarations/JavaParserTypeParameterResolutionTest.java100
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/reflectionmodel/SymbolResolutionResolutionTest.java86
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SameAsBoundTest.java32
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SubtypeOfBoundTest.java86
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/ConstraintFormulaTest.java70
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/AarTypeSolverTest.java43
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JarTypeSolverTest.java41
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/utils/SymbolSolverQuickSetupTest.java50
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/AClassWithFields.java.txt11
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/AClassWithFieldsAndGenerics.java.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/AccessClassMemberThroughThis.java.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/AccessEnumMemberThroughThis.java.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/AccessThroughSuper.java.txt25
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/AnEnum.java.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Annotations.java.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/AnonymousClassDeclarations.java.txt71
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ArrayAccess.java.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ClassCast.java.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ClassExpression.java.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ClassTypeParameter.java.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ClassWithMethods.java.txt14
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ClassWithSymbols.java.txt39
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ClassWithTypeVariables.java.txt3
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ClassWithTypes.java.txt19
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/CompilationUnitSymbols.java.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/CompilationUnitWithImports.java.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ElementOfList.java.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/EnumAndStaticInitializer.java.txt25
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/GenericCollection.java.txt12
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/GenericCollectionWithExtension.java.txt21
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/GenericFields.java.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/GenericMethodArguments.java.txt33
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Generics.java.txt46
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Generics_issue7.java.txt32
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/InterfaceInheritance.java.txt16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue116.java.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue156.java.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue18.java.txt8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue186.java.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue200.java.txt32
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue232.java.txt12
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue235.java.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue241.java.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue251.java.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue338.java.txt93
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Issue84.java.txt10
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/JreConditionalExpression.java.txt10
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Lambda.java.txt44
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/LambdaCollect.java.txt12
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/LambdaMulti.java.txt32
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/LambdaVoid.java.txt14
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/LocalTypeDeclarations.java.txt14
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/LocalVariableInParent.java.txt57
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/MethodCalls.java.txt70
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/MethodTypeParameter.java.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/MethodTypeParams.java.txt38
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/MethodWithTypes.java.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Navigator.java.txt26
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Navigator2.java.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/Navigator3.java.txt25
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/NavigatorSimplified.java.txt33
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/OverloadedMethods.java.txt27
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/QualifiedNameTest.java.txt8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ReferencesToField.java.txt18
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ReferencesToParameter.java.txt11
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ReflectionFieldOfItself.java.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/SwitchOnEnum.java.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/SymbolResolverExample.java.txt11
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/ThisInAnonymousClass.java.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/TypeParamOnReturnType.java.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/aars/support-compat-24.2.0.aarbin0 -> 616002 bytes
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/FieldDotExpressions.java33
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/InnerClassDotExpressions.java25
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/InnerStaticClassFieldDotExpressions.java8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/PackageDotExpressions.java16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/ClassInPackage.java7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerClassContainer.java17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerClassFieldContainer.java25
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerStaticClassFieldContainer.java15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue113/com/foo/Widget.java45
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue113/com/foo/base/Widget.java6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue128/foo/Issue128.java10
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue144/HelloWorld.java8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue241/TypeWithMemberType.java9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue257/A.java.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue257/issue257.jarbin0 -> 724 bytes
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue276/foo/A.java11
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue276/foo/B.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue276/foo/C.java11
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/issue300/Issue300.java12
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser-core-2.1.0.jarbin0 -> 319184 bytes
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser-core-3.0.0-alpha.2.jarbin0 -> 370671 bytes
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ASTHelper.txt79
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_JavaParser.txt155
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_Position.txt11
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_PositionUtils.txt68
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_SourcesHelper.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_AccessSpecifier.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_CompilationUnit.txt28
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_DocumentableNode.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_ImportDeclaration.txt24
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_NamedNode.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_Node.txt95
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_PackageDeclaration.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_TreeVisitor.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_TypeParameter.txt32
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotableNode.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotationDeclaration.txt28
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotationMemberDeclaration.txt41
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_BaseParameter.txt26
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_BodyDeclaration.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ClassOrInterfaceDeclaration.txt48
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ConstructorDeclaration.txt89
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EmptyMemberDeclaration.txt18
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EmptyTypeDeclaration.txt25
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EnumConstantDeclaration.txt34
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EnumDeclaration.txt38
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_FieldDeclaration.txt41
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_InitializerDeclaration.txt27
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_MethodDeclaration.txt120
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ModifierSet.txt36
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_MultiTypeParameter.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_Parameter.txt27
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_TypeDeclaration.txt31
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_VariableDeclarator.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_VariableDeclaratorId.txt19
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_WithDeclaration.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_BlockComment.txt14
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_Comment.txt26
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_CommentsCollection.txt39
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_CommentsParser.txt104
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_JavadocComment.txt14
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_LineComment.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_AnnotationExpr.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayAccessExpr.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayCreationExpr.txt45
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayInitializerExpr.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_AssignExpr.txt26
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_BinaryExpr.txt26
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_BooleanLiteralExpr.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_CastExpr.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_CharLiteralExpr.txt16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ClassExpr.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ConditionalExpr.txt27
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_DoubleLiteralExpr.txt16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_EnclosedExpr.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_Expression.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_FieldAccessExpr.txt27
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_InstanceOfExpr.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_IntegerLiteralExpr.txt21
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_IntegerLiteralMinValueExpr.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LambdaExpr.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LiteralExpr.txt10
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LongLiteralExpr.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LongLiteralMinValueExpr.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MarkerAnnotationExpr.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MemberValuePair.txt21
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MethodCallExpr.txt34
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MethodReferenceExpr.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NameExpr.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NormalAnnotationExpr.txt20
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NullLiteralExpr.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ObjectCreationExpr.txt35
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_QualifiedNameExpr.txt21
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_SingleMemberAnnotationExpr.txt20
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_StringLiteralExpr.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_SuperExpr.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ThisExpr.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_TypeExpr.txt16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_UnaryExpr.txt21
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_VariableDeclarationExpr.txt32
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_internal_Utils.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_AssertStmt.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_BlockStmt.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_BreakStmt.txt16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_CatchClause.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ContinueStmt.txt16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_DoStmt.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_EmptyStmt.txt12
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ExplicitConstructorInvocationStmt.txt30
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ExpressionStmt.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ForStmt.txt32
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ForeachStmt.txt27
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_IfStmt.txt27
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_LabeledStmt.txt21
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ReturnStmt.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_Statement.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SwitchEntryStmt.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SwitchStmt.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SynchronizedStmt.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ThrowStmt.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_TryStmt.txt31
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_TypeDeclarationStmt.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_WhileStmt.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_ClassOrInterfaceType.txt30
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_PrimitiveType.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_ReferenceType.txt32
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_Type.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_UnknownType.txt8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_VoidType.txt12
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_WildcardType.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_CloneVisitor.txt819
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_DumpVisitor.txt1076
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_EqualsVisitor.txt720
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_GenericVisitor.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_GenericVisitorAdapter.txt836
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_ModifierVisitorAdapter.txt662
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_VoidVisitor.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_VoidVisitorAdapter.txt425
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_CommentsInserter.txt49
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_JavaParser.txt49
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseProblemException.txt10
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseResult.txt19
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseStart.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParserConfiguration.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Position.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Problem.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Providers.txt18
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Range.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_AccessSpecifier.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ArrayBracketPair.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ArrayCreationLevel.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_CompilationUnit.txt103
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Example.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ImportDeclaration.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Modifier.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Modifier_J9.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Node.txt46
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_PackageDeclaration.txt11
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_UserDataKey.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_AnnotationDeclaration.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_AnnotationMemberDeclaration.txt19
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_BodyDeclaration.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_ClassOrInterfaceDeclaration.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_ConstructorDeclaration.txt53
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EmptyMemberDeclaration.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EmptyTypeDeclaration.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EnumConstantDeclaration.txt18
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EnumDeclaration.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_FieldDeclaration.txt68
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_InitializerDeclaration.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_MethodDeclaration.txt98
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_Parameter.txt32
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_TypeDeclaration.txt21
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_VariableDeclarator.txt25
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_VariableDeclaratorId.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_BlockComment.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_Comment.txt1
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_CommentsCollection.txt34
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_JavadocComment.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_LineComment.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_AnnotationExpr.txt1
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayAccessExpr.txt8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayCreationExpr.txt16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayInitializerExpr.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_AssignExpr.txt10
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_BinaryExpr.txt10
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_BooleanLiteralExpr.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_CastExpr.txt8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_CharLiteralExpr.txt3
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ClassExpr.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ConditionalExpr.txt11
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_DoubleLiteralExpr.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_EnclosedExpr.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_Expression.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_FieldAccessExpr.txt12
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_InstanceOfExpr.txt8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_IntegerLiteralExpr.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_IntegerLiteralMinValueExpr.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LambdaExpr.txt8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LiteralExpr.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LongLiteralExpr.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LongLiteralMinValueExpr.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MarkerAnnotationExpr.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MemberValuePair.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MethodCallExpr.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MethodReferenceExpr.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NameExpr.txt3
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NormalAnnotationExpr.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NullLiteralExpr.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ObjectCreationExpr.txt18
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_QualifiedNameExpr.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_SingleMemberAnnotationExpr.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_StringLiteralExpr.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_SuperExpr.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ThisExpr.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_TypeExpr.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_UnaryExpr.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_VariableDeclarationExpr.txt42
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithAnnotations.txt40
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithBlockStmt.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithBody.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithDeclaration.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithElementType.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithExtends.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithImplements.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithJavaDoc.txt1
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithMembers.txt116
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithModifiers.txt28
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithName.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithParameters.txt40
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithStatements.txt11
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithThrowable.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithType.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithTypeArguments.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithVariables.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_AssertStmt.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_BlockStmt.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_BreakStmt.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_CatchClause.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ContinueStmt.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_DoStmt.txt8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_EmptyStmt.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ExplicitConstructorInvocationStmt.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ExpressionStmt.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ForStmt.txt16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ForeachStmt.txt14
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_IfStmt.txt11
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_LabeledStmt.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ReturnStmt.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_Statement.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SwitchEntryStmt.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SwitchStmt.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SynchronizedStmt.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ThrowStmt.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_TryStmt.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_TypeDeclarationStmt.txt5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_WhileStmt.txt8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ArrayType.txt14
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ClassOrInterfaceType.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_IntersectionType.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_PrimitiveType.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ReferenceType.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_Type.txt3
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_TypeParameter.txt12
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_UnionType.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_UnknownType.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_VoidType.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_WildcardType.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_CloneVisitor.txt690
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_DumpVisitor.txt1066
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_EqualsVisitor.txt619
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_GenericVisitor.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_GenericVisitorAdapter.txt451
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_ModifierVisitorAdapter.txt685
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_TreeVisitor.txt3
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_VoidVisitor.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_VoidVisitorAdapter.txt511
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_ClassUtils.txt16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_Pair.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_PositionUtils.txt43
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_Utils.txt14
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/README.md8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/excluded_jar.jarbin0 -> 2195 bytes
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/result/doNotDelete.md0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/excluded_jar/InterfaceExcludedJar.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/excluded_jar/SuperClassExcludedJar.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/included_jar.jarbin0 -> 2194 bytes
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/result/doNotDelete.md0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/included_jar/InterfaceIncludedJar.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/included_jar/SuperClassIncludedJar.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/main_jar.jarbin0 -> 11519 bytes
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/result/doNotDelete.md0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/ConcreteClass.java6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/ConcreteEnum.java10
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserExcludedJar.java7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserIncludedJar.java7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserOwnJar.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceOwnJar.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserExcludedJar.java7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserIncludedJar.java7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserOwnJar.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/StandaloneInterface.java6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassExcludedJar.java7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassIncludedJar.java7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassOwnJar.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceExcludedJar.java7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceIncludedJar.java7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceOwnJar.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SuperClassOwnJar.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_SourceFileInfoExtractor.txt77
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_core_resolution_Context.txt16
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_core_resolution_ContextHelper.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_declarations_common_MethodDeclarationCommonLogic.txt34
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparser_Navigator.txt104
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_DefaultVisitorAdapter.txt180
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_JavaParserFacade.txt253
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_JavaParserFactory.txt26
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_LambdaArgumentTypePlaceholder.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_TypeExtractor.txt279
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_TypeExtractor_J9.txt279
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_UnsolvedSymbolException.txt1
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AbstractJavaParserContext.txt30
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AbstractMethodLikeDeclarationContext.txt44
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AnonymousClassDeclarationContext.txt96
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_CatchClauseContext.txt14
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ClassOrInterfaceDeclarationContext.txt28
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_CompilationUnitContext.txt130
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ConstructorContext.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ContextHelper.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_EnumDeclarationContext.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_FieldAccessContext.txt37
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ForStatementContext.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ForechStatementContext.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_JavaParserTypeDeclarationAdapter.txt80
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_LambdaExprContext.txt78
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_MethodCallExprContext.txt322
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_MethodContext.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_StatementContext.txt93
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_SwitchEntryContext.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_TryWithResourceContext.txt25
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_DefaultConstructorDeclaration.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_Helper.txt26
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserAnnotationDeclaration.txt12
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserAnonymousClassDeclaration.txt87
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserClassDeclaration.txt139
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserClassDeclaration_J9.txt139
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserConstructorDeclaration.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserEnumConstantDeclaration.txt3
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserEnumDeclaration.txt71
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserFieldDeclaration.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserInterfaceDeclaration.txt120
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserMethodDeclaration.txt30
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserParameterDeclaration.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserSymbolDeclaration.txt46
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeAdapter.txt48
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeParameter.txt45
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeVariableDeclaration.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_AbstractSymbolDeclarator.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_FieldSymbolDeclarator.txt3
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_NoSymbolDeclarator.txt1
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_ParameterSymbolDeclarator.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_VariableSymbolDeclarator.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistClassDeclaration.txt128
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistConstructorDeclaration.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistEnumDeclaration.txt81
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistFactory.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistFieldDeclaration.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistInterfaceDeclaration.txt104
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistMethodDeclaration.txt33
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistParameterDeclaration.txt1
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistTypeDeclarationAdapter.txt32
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistTypeParameter.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistUtils.txt77
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_model_typesystem_LazyType.txt39
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_model_typesystem_ReferenceTypeImpl.txt53
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_MyObjectProvider.txt3
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionClassAdapter.txt89
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionClassDeclaration.txt121
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionConstructorDeclaration.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionEnumDeclaration.txt44
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionFactory.txt48
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionFieldDeclaration.txt10
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionInterfaceDeclaration.txt81
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionMethodDeclaration.txt30
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionMethodResolutionLogic.txt85
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionParameterDeclaration.txt1
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionTypeParameter.txt25
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_ClassComparator.txt15
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_MethodComparator.txt12
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_ParameterComparator.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_ConstructorResolutionLogic.txt110
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_MethodResolutionLogic.txt416
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_SymbolDeclarator.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_SymbolSolver.txt40
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_CombinedTypeSolver.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_JarTypeSolver.txt31
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_JavaParserTypeSolver.txt48
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_MemoryTypeSolver.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_ReflectionTypeSolver.txt26
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_AbstractClassDeclaration.txt18
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_AbstractTypeDeclaration.txt13
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_ConfilictingGenericTypesException.txt1
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_FunctionalInterfaceLogic.txt42
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_InferenceContext.txt169
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_InferenceVariableType.txt53
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_ObjectProvider.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_AccessLevel.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_AnnotationDeclaration.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ClassDeclaration.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ConstructorDeclaration.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_Declaration.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_EnumDeclaration.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_FieldDeclaration.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_HasAccessLevel.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_InterfaceDeclaration.txt4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodAmbiguityException.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodDeclaration.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodLikeDeclaration.txt33
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ParameterDeclaration.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ReferenceTypeDeclaration.txt85
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeDeclaration.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeParameterDeclaration.txt7
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeParametrizable.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ValueDeclaration.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_methods_MethodUsage.txt24
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_SymbolReference.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_TypeSolver.txt6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_UnsolvedSymbolException.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_Value.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_ArrayType.txt18
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_LambdaConstraintType.txt2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_NullType.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_PrimitiveType.txt33
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_PrimitiveType_J9.txt33
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_ReferenceType.txt240
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_Type.txt17
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_TypeTransformer.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_TypeVariable.txt22
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_VoidType.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_Wildcard.txt9
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParameterValueProvider.txt23
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParametersMap.txt24
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParametrized.txt0
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/junit-4.8.1.jarbin0 -> 237047 bytes
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Base.java5
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Extends.java8
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Usage.java6
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/a/src/a.java2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/a/src/package_a/a.java4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/b/src/b.java2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/b/src/package_b/b.java4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/c/src/c.java2
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/c/src/package_c/c.java4
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/src/Main.java6
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/CommentsInserter.java198
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/JavaParser.java318
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/PackageLocalClasses.java4
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseProblemException.java40
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseResult.java88
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseStart.java32
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParserConfiguration.java6
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Position.java142
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Problem.java39
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Providers.java61
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Range.java89
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/AccessSpecifier.java47
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ArrayBracketPair.java44
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ArrayCreationLevel.java56
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java413
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Example.java31
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ImportDeclaration.java188
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Modifier.java46
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Node.java396
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/PackageDeclaration.java130
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/UserDataKey.java39
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/AnnotationDeclaration.java65
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java150
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/BodyDeclaration.java69
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java165
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/ConstructorDeclaration.java256
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EmptyMemberDeclaration.java61
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EmptyTypeDeclaration.java53
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EnumConstantDeclaration.java133
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EnumDeclaration.java115
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/FieldDeclaration.java277
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/InitializerDeclaration.java92
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/MethodDeclaration.java399
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/Parameter.java227
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/TypeDeclaration.java160
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/VariableDeclarator.java147
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/VariableDeclaratorId.java88
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/BlockComment.java59
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/Comment.java110
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/CommentsCollection.java103
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/JavadocComment.java53
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/LineComment.java64
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/AnnotationExpr.java48
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayAccessExpr.java80
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayCreationExpr.java115
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayInitializerExpr.java71
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/AssignExpr.java108
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/BinaryExpr.java115
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/BooleanLiteralExpr.java65
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/CastExpr.java84
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/CharLiteralExpr.java61
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ClassExpr.java75
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ConditionalExpr.java94
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/DoubleLiteralExpr.java51
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/EnclosedExpr.java64
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/Expression.java39
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/FieldAccessExpr.java107
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/InstanceOfExpr.java82
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/IntegerLiteralExpr.java61
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/IntegerLiteralMinValueExpr.java49
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LambdaExpr.java99
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LiteralExpr.java37
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LongLiteralExpr.java62
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LongLiteralMinValueExpr.java49
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java53
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MemberValuePair.java81
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MethodCallExpr.java145
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MethodReferenceExpr.java105
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NameExpr.java85
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NormalAnnotationExpr.java99
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NullLiteralExpr.java47
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ObjectCreationExpr.java165
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/QualifiedNameExpr.java65
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java66
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/StringLiteralExpr.java76
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/SuperExpr.java64
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ThisExpr.java64
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/TypeExpr.java70
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/UnaryExpr.java88
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/VariableDeclarationExpr.java200
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithAnnotations.java167
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithBlockStmt.java18
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithBody.java18
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithDeclaration.java57
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithElementType.java73
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithExtends.java37
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java37
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithJavaDoc.java48
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithMembers.java284
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithModifiers.java73
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithName.java35
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithParameters.java100
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithStatements.java46
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithThrowable.java57
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithType.java69
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithTypeArguments.java81
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithVariables.java36
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/AssertStmt.java85
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/BlockStmt.java77
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/BreakStmt.java63
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/CatchClause.java120
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ContinueStmt.java63
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/DoStmt.java82
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/EmptyStmt.java47
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java119
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ExpressionStmt.java66
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ForStmt.java121
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ForeachStmt.java116
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/IfStmt.java94
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/LabeledStmt.java77
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ReturnStmt.java76
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/Statement.java39
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SwitchEntryStmt.java90
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SwitchStmt.java88
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SynchronizedStmt.java105
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ThrowStmt.java65
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/TryStmt.java116
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/TypeDeclarationStmt.java65
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/WhileStmt.java82
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ArrayType.java86
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ClassOrInterfaceType.java119
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/IntersectionType.java60
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/PrimitiveType.java117
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ReferenceType.java37
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/Type.java67
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/TypeParameter.java138
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/UnionType.java52
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/UnknownType.java62
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/VoidType.java51
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/WildcardType.java85
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/CloneVisitor.java1296
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/DumpVisitor.java1644
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/EqualsVisitor.java1514
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/GenericVisitor.java257
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java1677
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/ModifierVisitorAdapter.java1149
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/TreeVisitor.java44
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/VoidVisitor.java257
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java806
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/ClassUtils.java69
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/Pair.java16
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/PositionUtils.java135
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/Utils.java107
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParser.java9318
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParserConstants.java438
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParserTokenManager.java2643
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/JavaCharStream.java560
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ParseException.java227
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/Provider.java39
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/StreamProvider.java70
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/StringProvider.java60
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/Token.java143
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/TokenMgrError.java159
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/TokenMgrException.java158
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParser.java9148
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParserConstants.java414
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParserTokenManager.java2559
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/JavaCharStream.java629
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ParseException.java199
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/Token.java143
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/TokenMgrError.java159
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ASTHelper.java297
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/JavaParser.java452
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/Position.java53
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/PositionUtils.java143
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/SourcesHelper.java63
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/AccessSpecifier.java47
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/CompilationUnit.java180
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/DocumentableNode.java33
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/ImportDeclaration.java135
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/NamedNode.java33
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/Node.java376
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/PackageDeclaration.java117
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/TreeVisitor.java35
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/TypeParameter.java129
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotableNode.java36
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotationDeclaration.java73
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java135
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/BaseParameter.java92
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/BodyDeclaration.java60
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java133
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ConstructorDeclaration.java237
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EmptyMemberDeclaration.java63
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EmptyTypeDeclaration.java61
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EnumConstantDeclaration.java113
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EnumDeclaration.java101
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/FieldDeclaration.java129
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/InitializerDeclaration.java92
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/MethodDeclaration.java305
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ModifierSet.java146
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/MultiTypeParameter.java63
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/Parameter.java84
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/TypeDeclaration.java106
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/VariableDeclarator.java83
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/VariableDeclaratorId.java77
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/WithDeclaration.java57
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/BlockComment.java58
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/Comment.java112
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsCollection.java104
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsParser.java171
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/JavadocComment.java52
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/LineComment.java62
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/AnnotationExpr.java46
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayAccessExpr.java77
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayCreationExpr.java131
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayInitializerExpr.java66
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/AssignExpr.java104
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/BinaryExpr.java111
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/BooleanLiteralExpr.java63
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/CastExpr.java78
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/CharLiteralExpr.java52
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ClassExpr.java65
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ConditionalExpr.java90
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/DoubleLiteralExpr.java51
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/EnclosedExpr.java63
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/Expression.java38
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/FieldAccessExpr.java98
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/InstanceOfExpr.java77
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/IntegerLiteralExpr.java61
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/IntegerLiteralMinValueExpr.java48
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LambdaExpr.java94
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LiteralExpr.java35
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LongLiteralExpr.java62
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LongLiteralMinValueExpr.java48
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java53
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MemberValuePair.java77
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MethodCallExpr.java116
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MethodReferenceExpr.java98
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NameExpr.java64
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NormalAnnotationExpr.java67
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NullLiteralExpr.java46
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ObjectCreationExpr.java119
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/QualifiedNameExpr.java64
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java65
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/StringLiteralExpr.java62
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/SuperExpr.java63
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ThisExpr.java63
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/TypeExpr.java65
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/UnaryExpr.java86
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/VariableDeclarationExpr.java117
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/internal/Utils.java41
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/AssertStmt.java83
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/BlockStmt.java67
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/BreakStmt.java61
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/CatchClause.java88
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ContinueStmt.java62
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/DoStmt.java77
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/EmptyStmt.java46
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java109
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ExpressionStmt.java64
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ForStmt.java110
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ForeachStmt.java96
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/IfStmt.java90
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/LabeledStmt.java75
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ReturnStmt.java64
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/Statement.java38
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SwitchEntryStmt.java82
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SwitchStmt.java83
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SynchronizedStmt.java80
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ThrowStmt.java64
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/TryStmt.java108
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/TypeDeclarationStmt.java64
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/WhileStmt.java77
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/ClassOrInterfaceType.java104
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/PrimitiveType.java97
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/ReferenceType.java125
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/Type.java60
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/UnknownType.java48
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/VoidType.java47
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/WildcardType.java81
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/CloneVisitor.java1211
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/DumpVisitor.java1657
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/EqualsVisitor.java1468
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/GenericVisitor.java254
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java1613
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/ModifierVisitorAdapter.java973
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/VoidVisitor.java254
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java846
886 files changed, 101251 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/.gitignore b/javaparser-symbol-solver-testing/.gitignore
new file mode 100644
index 000000000..b114bf5fb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/.gitignore
@@ -0,0 +1,5 @@
+target
+build
+/.classpath
+/.project
+.settings
diff --git a/javaparser-symbol-solver-testing/javaparser-symbol-solver-testing.iml b/javaparser-symbol-solver-testing/javaparser-symbol-solver-testing.iml
new file mode 100644
index 000000000..bf53f2c01
--- /dev/null
+++ b/javaparser-symbol-solver-testing/javaparser-symbol-solver-testing.iml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+ <output url="file://$MODULE_DIR$/target/classes" />
+ <output-test url="file://$MODULE_DIR$/target/test-classes" />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
+ <excludeFolder url="file://$MODULE_DIR$/target" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
+ <orderEntry type="module" module-name="javaparser-symbol-solver-logic" />
+ <orderEntry type="library" name="Maven: org.javassist:javassist:3.22.0-GA" level="project" />
+ <orderEntry type="library" name="Maven: com.google.guava:guava:23.4-jre" level="project" />
+ <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
+ <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.0.18" level="project" />
+ <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" />
+ <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.14" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.13.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.7.9" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.7.9" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
+ <orderEntry type="module" module-name="javaparser-symbol-solver-model" />
+ <orderEntry type="module" module-name="javaparser-core" />
+ <orderEntry type="module" module-name="javaparser-symbol-solver-core" />
+ </component>
+</module> \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/pom.xml b/javaparser-symbol-solver-testing/pom.xml
new file mode 100644
index 000000000..6e042d2ea
--- /dev/null
+++ b/javaparser-symbol-solver-testing/pom.xml
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>javaparser-parent</artifactId>
+ <groupId>com.github.javaparser</groupId>
+ <version>3.5.16-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>javaparser-symbol-solver-testing</artifactId>
+ <description>A Symbol Solver for Java, built on top of JavaParser (tests)</description>
+
+ <licenses>
+ <license>
+ <name>GNU Lesser General Public License</name>
+ <url>http://www.gnu.org/licenses/lgpl-3.0.html</url>
+ <distribution>repo</distribution>
+ </license>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ <distribution>repo</distribution>
+ <comments>A business-friendly OSS license</comments>
+ </license>
+ </licenses>
+
+ <profiles>
+ <profile>
+ <id>NonSlowTests</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <excludedGroups>com.github.javaparser.SlowTest</excludedGroups>
+ <parallel>methods</parallel>
+ <threadCount>4</threadCount>
+ </configuration>
+ </plugin>
+ </plugins>
+
+ </build>
+ </profile>
+ <profile>
+ <id>AlsoSlowTests</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <parallel>methods</parallel>
+ <threadCount>4</threadCount>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>jacoco-initialize</id>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>jacoco-site</id>
+ <phase>package</phase>
+ <goals>
+ <goal>report</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-resources</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <encoding>UTF-8</encoding>
+ <outputDirectory>${basedir}/target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>../javaparser-core/target/classes</directory>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack-test-jss-sources</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>com.github.javaparser</groupId>
+ <artifactId>java-symbol-solver-core</artifactId>
+ <version>0.6.0</version>
+ <classifier>sources</classifier>
+ <outputDirectory>
+ ${project.build.directory}/test-classes/javasymbolsolver_0_6_0/src/java-symbol-solver-core
+ </outputDirectory>
+ </artifactItem>
+ <artifactItem>
+ <groupId>com.github.javaparser</groupId>
+ <artifactId>java-symbol-solver-logic</artifactId>
+ <version>0.6.0</version>
+ <classifier>sources</classifier>
+ <outputDirectory>
+ ${project.build.directory}/test-classes/javasymbolsolver_0_6_0/src/java-symbol-solver-logic
+ </outputDirectory>
+ </artifactItem>
+ <artifactItem>
+ <groupId>com.github.javaparser</groupId>
+ <artifactId>java-symbol-solver-model</artifactId>
+ <version>0.6.0</version>
+ <classifier>sources</classifier>
+ <outputDirectory>
+ ${project.build.directory}/test-classes/javasymbolsolver_0_6_0/src/java-symbol-solver-model
+ </outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-test-jss-libs</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>21.0</version>
+ <outputDirectory>
+ ${project.build.directory}/test-classes/javasymbolsolver_0_6_0/lib
+ </outputDirectory>
+ </artifactItem>
+ <artifactItem>
+ <groupId>com.github.javaparser</groupId>
+ <artifactId>javaparser-core</artifactId>
+ <version>3.5.10</version>
+ <outputDirectory>
+ ${project.build.directory}/test-classes/javasymbolsolver_0_6_0/lib
+ </outputDirectory>
+ </artifactItem>
+ <artifactItem>
+ <groupId>io.javaslang</groupId>
+ <artifactId>javaslang</artifactId>
+ <version>2.0.3</version>
+ <outputDirectory>
+ ${project.build.directory}/test-classes/javasymbolsolver_0_6_0/lib
+ </outputDirectory>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.19.0-GA</version>
+ <outputDirectory>
+ ${project.build.directory}/test-classes/javasymbolsolver_0_6_0/lib
+ </outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <!-- no need to release this module -->
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.github.javaparser</groupId>
+ <artifactId>javaparser-symbol-solver-logic</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.github.javaparser</groupId>
+ <artifactId>javaparser-symbol-solver-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.github.javaparser</groupId>
+ <artifactId>javaparser-symbol-solver-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/SlowTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/SlowTest.java
new file mode 100644
index 000000000..db79147c8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/SlowTest.java
@@ -0,0 +1,7 @@
+package com.github.javaparser;
+
+/**
+ * Test category marker.
+ */
+public interface SlowTest {
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/resolution/types/ResolvedPrimitiveTypeTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/resolution/types/ResolvedPrimitiveTypeTest.java
new file mode 100644
index 000000000..494b2b2e9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/resolution/types/ResolvedPrimitiveTypeTest.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.resolution.types;
+
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class ResolvedPrimitiveTypeTest extends AbstractResolutionTest {
+
+ private String exampleOfSwitch(ResolvedPrimitiveType rpt) {
+ switch (rpt) {
+ case INT:
+ return "I";
+ case BYTE:
+ return "B";
+ case DOUBLE:
+ return "D";
+ default:
+ return "U";
+ }
+ }
+
+ @Test
+ public void tryTheSwitchStatement() {
+ assertEquals("U", exampleOfSwitch(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals("U", exampleOfSwitch(ResolvedPrimitiveType.CHAR));
+ assertEquals("B", exampleOfSwitch(ResolvedPrimitiveType.BYTE));
+ assertEquals("U", exampleOfSwitch(ResolvedPrimitiveType.SHORT));
+ assertEquals("I", exampleOfSwitch(ResolvedPrimitiveType.INT));
+ assertEquals("U", exampleOfSwitch(ResolvedPrimitiveType.LONG));
+ assertEquals("U", exampleOfSwitch(ResolvedPrimitiveType.FLOAT));
+ assertEquals("D", exampleOfSwitch(ResolvedPrimitiveType.DOUBLE));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/AbstractTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/AbstractTest.java
new file mode 100644
index 000000000..911211b3c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/AbstractTest.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver;
+
+import java.io.File;
+
+public abstract class AbstractTest {
+
+ protected static File adaptPath(File path) {
+ if (path.exists()) {
+ return path;
+ } else {
+ File underJavaParserCore = new File("javaparser-symbol-solver-testing/" + path.getPath());
+ if (underJavaParserCore.exists()) {
+ return underJavaParserCore;
+ } else {
+ throw new IllegalArgumentException("I cannot adapt the path " + path.getAbsolutePath());
+ }
+ }
+ }
+
+ protected static String adaptPath(String path) {
+ return adaptPath(new File(path)).getPath();
+ }
+
+ protected boolean isJava9() {
+ return System.getProperty("java.version").startsWith("9.");
+ }
+
+ protected boolean isJava8() {
+ return System.getProperty("java.version").startsWith("1.8.");
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/FindingAllFields.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/FindingAllFields.java
new file mode 100644
index 000000000..c0b70e992
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/FindingAllFields.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableSet;
+import org.junit.Test;
+
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertEquals;
+
+public class FindingAllFields extends AbstractResolutionTest {
+
+ @Test
+ public void findAllInheritedFields() {
+ CompilationUnit cu = parseSample("AClassWithFields");
+ ClassOrInterfaceDeclaration classC = Navigator.demandClass(cu, "C");
+ ResolvedReferenceTypeDeclaration typeDeclaration = JavaParserFacade.get(new ReflectionTypeSolver()).getTypeDeclaration(classC);
+ assertEquals(3, typeDeclaration.getAllFields().size());
+ assertEquals(ImmutableSet.of("a", "b", "c"),
+ typeDeclaration.getAllFields().stream().map(ResolvedDeclaration::getName).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void findAllInheritedFieldsAndGenerics() {
+ CompilationUnit cu = parseSample("AClassWithFieldsAndGenerics");
+ ClassOrInterfaceDeclaration classC = Navigator.demandClass(cu, "C");
+ ResolvedReferenceTypeDeclaration typeDeclaration = JavaParserFacade.get(new ReflectionTypeSolver()).getTypeDeclaration(classC);
+ assertEquals(3, typeDeclaration.getAllFields().size());
+ assertEquals(ImmutableSet.of("a", "b", "c"),
+ typeDeclaration.getAllFields().stream().map(ResolvedDeclaration::getName).collect(Collectors.toSet()));
+ assertEquals("java.util.List<java.lang.String>", typeDeclaration.getField("b").getType().describe());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue113.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue113.java
new file mode 100644
index 000000000..e57a2e1be
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue113.java
@@ -0,0 +1,53 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue113 extends AbstractTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() throws IOException {
+ typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JavaParserTypeSolver(adaptPath(new File("src/test/resources/issue113"))));
+ }
+
+ @Test
+ public void issue113providedCodeDoesNotCrash() throws FileNotFoundException {
+ String pathToSourceFile = adaptPath("src/test/resources/issue113/com/foo/Widget.java");
+ CompilationUnit cu = JavaParser.parse(new File(pathToSourceFile));
+
+ JavaParserFacade parserFacade = JavaParserFacade.get(typeSolver);
+ MethodDeclaration methodDeclaration = cu.findAll(MethodDeclaration.class).stream()
+ .filter(node -> node.getName().getIdentifier().equals("doSomething")).findAny().orElse(null);
+ methodDeclaration.findAll(MethodCallExpr.class).forEach(parserFacade::solve);
+ }
+
+ @Test
+ public void issue113superClassIsResolvedCorrectly() throws FileNotFoundException {
+ String pathToSourceFile = adaptPath("src/test/resources/issue113/com/foo/Widget.java");
+ CompilationUnit cu = JavaParser.parse(new File(pathToSourceFile));
+
+ JavaParserClassDeclaration jssExtendedWidget = new JavaParserClassDeclaration(cu.getClassByName("Widget").get(), typeSolver);
+ ResolvedReferenceType superClass = jssExtendedWidget.getSuperClass();
+ assertEquals("com.foo.base.Widget", superClass.getQualifiedName());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue116.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue116.java
new file mode 100644
index 000000000..d8d346d1f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue116.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue116 extends AbstractResolutionTest {
+
+ @Test
+ public void arrayTypeIsNotPartOfTheTree() {
+ CompilationUnit cu = parseSample("Issue116");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "JavaTest");
+ MethodDeclaration methodDeclaration = Navigator.demandMethod(clazz, "foo");
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ com.github.javaparser.ast.type.Type typeNode = methodDeclaration.getParameters().get(0).getType();
+ ResolvedType type = javaParserFacade.convert(typeNode, typeNode);
+ assertEquals("java.lang.String[]", type.describe());
+
+ ExpressionStmt expressionStmt = (ExpressionStmt) methodDeclaration.getBody().get().getStatements().get(0);
+ Expression argRef = expressionStmt.getExpression();
+ assertEquals("java.lang.String[]", javaParserFacade.getType(argRef).describe());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue128.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue128.java
new file mode 100644
index 000000000..38f8b7ce3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue128.java
@@ -0,0 +1,50 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue128 extends AbstractResolutionTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() throws IOException {
+ File srcDir = adaptPath(new File("src/test/resources/issue128"));
+ typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JavaParserTypeSolver(srcDir));
+ }
+
+ @Test
+ public void verifyJavaTestClassIsSolved() {
+ typeSolver.solveType("foo.JavaTest");
+ }
+
+ @Test
+ public void loopOnStaticallyImportedType() {
+ CompilationUnit cu = parseSampleWithStandardExtension("issue128/foo/Issue128");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "JavaTest");
+ ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("test").get(0).getBody().get().getStatement(0);
+ MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ assertEquals(false, javaParserFacade.solve(methodCallExpr).isSolved());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1364.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1364.java
new file mode 100644
index 000000000..67086b0fd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1364.java
@@ -0,0 +1,91 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseResult;
+import com.github.javaparser.ParseStart;
+import com.github.javaparser.ParserConfiguration;
+import com.github.javaparser.Providers;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.SimpleName;
+import com.github.javaparser.resolution.UnsolvedSymbolException;
+import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
+import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+/**
+ * @author Dominik Hardtke
+ * @since 02.02.2018
+ */
+public class Issue1364 extends AbstractResolutionTest {
+ private JavaParser javaParser;
+
+ @Before
+ public void setup() {
+ ClassOrInterfaceDeclaration fakeObject = new ClassOrInterfaceDeclaration();
+ fakeObject.setName(new SimpleName("java.lang.Object"));
+
+ TypeSolver typeSolver = new TypeSolver() {
+ @Override
+ public TypeSolver getParent() {
+ return null;
+ }
+
+ @Override
+ public void setParent(TypeSolver parent) {
+ }
+
+ @Override
+ public SymbolReference<ResolvedReferenceTypeDeclaration> tryToSolveType(String name) {
+ if ("java.lang.Object".equals(name)) {
+ // custom handling
+ return SymbolReference.solved(new JavaParserClassDeclaration(fakeObject, this));
+ }
+
+ return SymbolReference.unsolved(ResolvedReferenceTypeDeclaration.class);
+ }
+ };
+
+ ParserConfiguration config = new ParserConfiguration();
+ config.setSymbolResolver(new JavaSymbolSolver(typeSolver));
+ javaParser = new JavaParser(config);
+ }
+
+ @Test(timeout = 1000)
+ public void resolveSubClassOfObject() {
+ String code = String.join(System.lineSeparator(),
+ "package graph;",
+ "public class Vertex {",
+ " public static void main(String[] args) {",
+ " System.out.println();",
+ " }",
+ "}"
+ );
+
+ ParseResult<CompilationUnit> parseResult = javaParser.parse(ParseStart.COMPILATION_UNIT, Providers.provider(code));
+ assertTrue(parseResult.isSuccessful());
+ assertTrue(parseResult.getResult().isPresent());
+
+ List<MethodCallExpr> methodCallExprs = parseResult.getResult().get().findAll(MethodCallExpr.class);
+ assertEquals(1, methodCallExprs.size());
+
+ try {
+ methodCallExprs.get(0).calculateResolvedType();
+ fail("An UnsolvedSymbolException should be thrown");
+ } catch (UnsolvedSymbolException ignored) {
+ // all is fine if an UnsolvedSymbolException is thrown
+ }
+ }
+}
+
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue144.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue144.java
new file mode 100644
index 000000000..74c8ff7d1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue144.java
@@ -0,0 +1,70 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.resolution.UnsolvedSymbolException;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue144 extends AbstractResolutionTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() throws IOException {
+ File srcDir = adaptPath(new File("src/test/resources/issue144"));
+ typeSolver = new JavaParserTypeSolver(srcDir);
+ }
+
+ @Test(expected = UnsolvedSymbolException.class)
+ public void issue144() {
+ CompilationUnit cu = parseSampleWithStandardExtension("issue144/HelloWorld");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "HelloWorld");
+ ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("main").get(0).getBody().get().getStatement(0);
+ MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression();
+ Expression firstParameter = methodCallExpr.getArgument(0);
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ javaParserFacade.solve(firstParameter).isSolved();
+ }
+
+ @Test
+ public void issue144WithReflectionTypeSolver() {
+ CompilationUnit cu = parseSampleWithStandardExtension("issue144/HelloWorld");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "HelloWorld");
+ ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("main").get(0).getBody().get().getStatement(0);
+ MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression();
+ Expression firstParameter = methodCallExpr.getArgument(0);
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver(true));
+
+ assertEquals(true, javaParserFacade.solve(firstParameter).isSolved());
+ }
+
+ @Test
+ public void issue144WithCombinedTypeSolver() {
+ CompilationUnit cu = parseSampleWithStandardExtension("issue144/HelloWorld");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "HelloWorld");
+ ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("main").get(0).getBody().get().getStatement(0);
+ MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression();
+ Expression firstParameter = methodCallExpr.getArgument(0);
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new CombinedTypeSolver(typeSolver, new ReflectionTypeSolver(true)));
+
+ assertEquals(true, javaParserFacade.solve(firstParameter).isSolved());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue156.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue156.java
new file mode 100644
index 000000000..b500af7c2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue156.java
@@ -0,0 +1,37 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue156 extends AbstractResolutionTest {
+
+ @Test
+ public void testFieldAccessThroughClassAndThis() {
+
+ CompilationUnit cu = parseSample("Issue156");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Issue156");
+ List<MethodCallExpr> methods = clazz.getChildNodes().get(2).getChildNodes().get(1).findAll(MethodCallExpr.class);
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ assertEquals("char", javaParserFacade.getType(methods.get(0)).describe());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue18.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue18.java
new file mode 100644
index 000000000..af0dd18ac
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue18.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue18 extends AbstractResolutionTest {
+
+ @Test
+ public void typeDeclarationSuperClassImplicitlyIncludeObject() {
+ CompilationUnit cu = parseSample("Issue18");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Foo");
+ MethodDeclaration methodDeclaration = Navigator.demandMethod(clazz, "bar");
+ ExpressionStmt expr = (ExpressionStmt) methodDeclaration.getBody().get().getStatements().get(1);
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ ResolvedType type = javaParserFacade.getType(expr.getExpression());
+ assertEquals("java.lang.Object", type.describe());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue185.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue185.java
new file mode 100644
index 000000000..c0ad0b11b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue185.java
@@ -0,0 +1,35 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertNotNull;
+
+
+public class Issue185 extends AbstractResolutionTest {
+
+ @Test
+ public void testIssue() throws FileNotFoundException {
+ File src = adaptPath(new File("src/test/resources/recursion-issue"));
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new JavaParserTypeSolver(src));
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ CompilationUnit agendaCu = JavaParser.parse(adaptPath(new File("src/test/resources/recursion-issue/Usage.java")));
+ MethodCallExpr foo = Navigator.findMethodCall(agendaCu, "foo").get();
+ assertNotNull(foo);
+ JavaParserFacade.get(combinedTypeSolver).getType(foo);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue186.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue186.java
new file mode 100644
index 000000000..2590e9ec5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue186.java
@@ -0,0 +1,50 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.LambdaExpr;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue186 extends AbstractResolutionTest {
+
+ @Test
+ public void lambdaFlatMapIssue() {
+ CompilationUnit cu = parseSample("Issue186");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "JavaTest");
+ MethodDeclaration methodDeclaration = Navigator.demandMethod(clazz, "foo");
+ MethodCallExpr methodCallExpr = Navigator.findMethodCall(methodDeclaration, "flatMap").get();
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ assertEquals("java.util.stream.Stream<java.lang.String>", javaParserFacade.getType(methodCallExpr).describe());
+
+ }
+
+ @Test
+ public void lambdaPrimitivesIssue() {
+ CompilationUnit cu = parseSample("Issue186");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "JavaTest");
+ MethodDeclaration methodDeclaration = Navigator.demandMethod(clazz, "bar");
+ List<LambdaExpr> lambdas = methodDeclaration.findAll(LambdaExpr.class);
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ assertEquals("java.util.function.Predicate<? super java.lang.String>", javaParserFacade.getType(lambdas.get(0)).describe());
+ assertEquals("java.util.function.Function<? super java.lang.String, ? extends java.lang.Integer>", javaParserFacade.getType(lambdas.get(1)).describe());
+ assertEquals("java.util.function.Predicate<? super java.lang.Integer>", javaParserFacade.getType(lambdas.get(2)).describe());
+
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue200.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue200.java
new file mode 100644
index 000000000..ff3598717
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue200.java
@@ -0,0 +1,33 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue200 extends AbstractResolutionTest {
+
+ @Test
+ public void issue200() {
+ CompilationUnit cu = parseSample("Issue200");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "JavaTest");
+ MethodDeclaration methodDeclaration = Navigator.demandMethod(clazz, "foo");
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ List<ReturnStmt> nodesByType = methodDeclaration.findAll(ReturnStmt.class);
+ assertEquals("java.util.stream.Stream<JavaTest.Solved>", javaParserFacade.getType((nodesByType.get(0)).getExpression().get()).describe());
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue228.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue228.java
new file mode 100644
index 000000000..7ed5bdbbb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue228.java
@@ -0,0 +1,31 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class Issue228 extends AbstractResolutionTest{
+
+ @Test
+ public void testSolvingMethodWitPrimitiveParameterTypeAsUsage() {
+ String code =
+ "class Test { "
+ + " long l = call(1); "
+ + " long call(final long i) { "
+ + " return i; "
+ + " }"
+ + "}";
+ CompilationUnit cu = JavaParser.parse(code);
+ MethodCallExpr methodCall = cu.findAll(MethodCallExpr.class).get(0);
+ JavaParserFacade parserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ MethodUsage solvedCall = parserFacade.solveMethodAsUsage(methodCall);
+ assertEquals("long", solvedCall.getParamType(0).describe());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue232.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue232.java
new file mode 100644
index 000000000..cb4550d7e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue232.java
@@ -0,0 +1,27 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration;
+import com.github.javaparser.symbolsolver.core.resolution.Context;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+public class Issue232 extends AbstractResolutionTest {
+ @Test
+ public void issue232() {
+ CompilationUnit cu = parseSample("Issue232");
+ ClassOrInterfaceDeclaration cls = Navigator.demandClassOrInterface(cu, "OfDouble");
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ Context context = JavaParserFactory.getContext(cls, typeSolver);
+ SymbolReference<ResolvedTypeDeclaration> reference = context.solveType("OfPrimitive<Double, DoubleConsumer, OfDouble>", typeSolver);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue235.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue235.java
new file mode 100644
index 000000000..0e4d1aa9f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue235.java
@@ -0,0 +1,51 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.ObjectCreationExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+@RunWith(Parameterized.class)
+public class Issue235 extends AbstractResolutionTest{
+ private final String method;
+
+ public Issue235(String method) {
+ this.method = method;
+ }
+
+ @Parameterized.Parameters(name = "{0}")
+ public static Collection<String> data() throws Exception {
+ return Arrays.asList(
+ "new_Bar_Baz_direct",
+ "new_Bar_Baz",
+ "new_Bar",
+ "new_Foo_Bar"
+ );
+ }
+
+ @Test
+ public void issue235() {
+ CompilationUnit cu = parseSample("Issue235");
+ ClassOrInterfaceDeclaration cls = Navigator.demandClassOrInterface(cu, "Foo");
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ MethodDeclaration m = Navigator.demandMethod(cls, this.method);
+ ExpressionStmt stmt = (ExpressionStmt) m.getBody().get().getStatements().get(0);
+ ObjectCreationExpr expression = (ObjectCreationExpr) stmt.getExpression();
+ Assert.assertNotNull(javaParserFacade.convertToUsage(expression.getType()));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue241.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue241.java
new file mode 100644
index 000000000..9b42314a6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue241.java
@@ -0,0 +1,40 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue241 extends AbstractResolutionTest{
+
+ @Test
+ public void testSolveStaticallyImportedMemberType() {
+ File src = adaptPath(new File("src/test/resources"));
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JavaParserTypeSolver(src));
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ CompilationUnit cu = parseSample("Issue241");
+ ClassOrInterfaceDeclaration cls = Navigator.demandClassOrInterface(cu, "Main");
+ VariableDeclarator v = Navigator.demandVariableDeclaration(cls, "foo").get();
+
+ Type t = v.getType();
+ ResolvedType t2 = javaParserFacade.convert(t, t);
+ String typeName = t2.asReferenceType().getQualifiedName();
+
+ assertEquals("issue241.TypeWithMemberType.MemberInterface", typeName);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue251.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue251.java
new file mode 100644
index 000000000..d8dc0a7c4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue251.java
@@ -0,0 +1,31 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class Issue251 extends AbstractResolutionTest{
+
+ @Test
+ public void testSolveStaticallyImportedMemberType() {
+ CompilationUnit cu = parseSample("Issue251");
+ ClassOrInterfaceDeclaration cls = Navigator.demandClassOrInterface(cu, "Main");
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ MethodDeclaration m = Navigator.demandMethod(cls, "bar");
+ ExpressionStmt stmt = (ExpressionStmt) m.getBody().get().getStatements().get(1);
+ MethodCallExpr expression = (MethodCallExpr) stmt.getExpression();
+ Assert.assertNotNull(javaParserFacade.solve(expression));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue276.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue276.java
new file mode 100644
index 000000000..6baaab018
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue276.java
@@ -0,0 +1,41 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodContext;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class Issue276 extends AbstractResolutionTest{
+
+ @Test
+ public void testSolveStaticallyImportedMemberType() throws FileNotFoundException {
+ CompilationUnit cu = JavaParser.parse(new File(adaptPath("src/test/resources/issue276/foo/C.java")));
+ ClassOrInterfaceDeclaration cls = Navigator.demandClassOrInterface(cu, "C");
+ TypeSolver typeSolver = new CombinedTypeSolver(
+ new ReflectionTypeSolver(),
+ new JavaParserTypeSolver(adaptPath(new File("src/test/resources/issue276"))));
+ List<MethodDeclaration> methods = cls.findAll(MethodDeclaration.class);
+ boolean isSolved = false;
+ for (MethodDeclaration method: methods) {
+ if (method.getNameAsString().equals("overrideMe")) {
+ MethodContext context = new MethodContext(method, typeSolver);
+ isSolved = context.solveType("FindMeIfYouCan", typeSolver).isSolved();
+ }
+ }
+ Assert.assertTrue(isSolved);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue300.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue300.java
new file mode 100644
index 000000000..da19b8d5a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue300.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.FieldAccessExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.resolution.types.ResolvedPrimitiveType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+import java.io.File;
+import java.io.FileNotFoundException;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+public class Issue300 extends AbstractResolutionTest {
+
+ @Test
+ public void fieldAccessIssue() throws ParseException, FileNotFoundException {
+ String pathToSourceFile = adaptPath("src/test/resources/issue300/Issue300.java");
+ CompilationUnit cu = JavaParser.parse(new File(pathToSourceFile));
+
+ final FieldAccessExpr fieldAccess = Navigator.findNodeOfGivenClass(cu, FieldAccessExpr.class);
+ assertNotNull(fieldAccess);
+
+ TypeSolver typeSolver = new CombinedTypeSolver(
+ new ReflectionTypeSolver(),
+ new JavaParserTypeSolver(adaptPath(new File("src/test/resources/issue300"))));
+ final JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ final SymbolReference<? extends ResolvedValueDeclaration> ref = javaParserFacade.solve(fieldAccess);
+ assertEquals(ResolvedPrimitiveType.INT, ref.getCorrespondingDeclaration().getType().asPrimitive());
+ }
+}
+
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue314.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue314.java
new file mode 100644
index 000000000..b20ff7914
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue314.java
@@ -0,0 +1,58 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.FileNotFoundException;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue314 extends AbstractResolutionTest{
+
+ private TypeSolver typeResolver;
+ private JavaParserFacade javaParserFacade;
+
+ private ResolvedType getExpressionType(TypeSolver typeSolver, Expression expression) {
+ return JavaParserFacade.get(typeSolver).getType(expression);
+ }
+
+ @Before
+ public void setup() {
+ typeResolver = new ReflectionTypeSolver();
+ javaParserFacade = JavaParserFacade.get(typeResolver);
+ }
+
+ @Test
+ public void resolveReferenceToFieldInheritedByInterface() {
+ String code = "package foo.bar;\n"+
+ "interface A {\n" +
+ " int a = 0;\n" +
+ " }\n" +
+ " \n" +
+ " class B implements A {\n" +
+ " int getA() {\n" +
+ " return a;\n" +
+ " }\n" +
+ " }";
+ CompilationUnit cu = JavaParser.parse(code);
+ NameExpr refToA = Navigator.findNameExpression(Navigator.demandClass(cu, "B"), "a").get();
+ SymbolReference<? extends ResolvedValueDeclaration> symbolReference = javaParserFacade.solve(refToA);
+ assertEquals(true, symbolReference.isSolved());
+ assertEquals(true, symbolReference.getCorrespondingDeclaration().isField());
+ assertEquals("a", symbolReference.getCorrespondingDeclaration().getName());
+ }
+
+
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue343.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue343.java
new file mode 100644
index 000000000..3c34c6a59
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue343.java
@@ -0,0 +1,60 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue343 extends AbstractResolutionTest{
+
+ private TypeSolver typeResolver;
+ private JavaParserFacade javaParserFacade;
+
+ private ResolvedType getExpressionType(TypeSolver typeSolver, Expression expression) {
+ return JavaParserFacade.get(typeSolver).getType(expression);
+ }
+
+ @Before
+ public void setup() {
+ typeResolver = new ReflectionTypeSolver();
+ javaParserFacade = JavaParserFacade.get(typeResolver);
+ }
+
+ @Test
+ public void resolveStringLiteralOutsideAST() {
+ assertEquals(javaParserFacade.classToResolvedType(String.class), getExpressionType(typeResolver, new StringLiteralExpr("")));
+ }
+
+ @Test
+ public void resolveIntegerLiteralOutsideAST() {
+ assertEquals(javaParserFacade.classToResolvedType(int.class), getExpressionType(typeResolver, new IntegerLiteralExpr(2)));
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void toResolveDoubleWeNeedTheAST() {
+ getExpressionType(typeResolver, JavaParser.parseExpression("new Double[]{2.0d, 3.0d}[1]"));
+ }
+
+
+ @Test(expected = IllegalStateException.class)
+ public void toResolveFloatWeNeedTheAST() {
+ getExpressionType(typeResolver, JavaParser.parseExpression("new Float[]{2.0d, 3.0d}"));
+ }
+
+ @Test
+ public void resolveMethodCallOnStringLiteralOutsideAST() {
+ assertEquals(javaParserFacade.classToResolvedType(int.class), getExpressionType(typeResolver, new MethodCallExpr(new StringLiteralExpr("hello"), "length")));
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void resolveLocaleOutsideAST() {
+ getExpressionType(typeResolver, new FieldAccessExpr(new NameExpr("Locale"), "US"));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347.java
new file mode 100644
index 000000000..88755be23
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347.java
@@ -0,0 +1,55 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodContext;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue347 extends AbstractResolutionTest{
+
+ private TypeSolver typeSolver;
+ private JavaParserFacade javaParserFacade;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ javaParserFacade = JavaParserFacade.get(typeSolver);
+ }
+
+ @Test
+ public void resolvingReferenceToEnumDeclarationInSameFile() {
+ String code = "package foo.bar;\nenum Foo {\n" +
+ " FOO_A, FOO_B\n" +
+ "}\n" +
+ "\n" +
+ "class UsingFoo {\n" +
+ " Foo myFooField;\n" +
+ "}";
+ CompilationUnit cu = JavaParser.parse(code);
+ FieldDeclaration fieldDeclaration = Navigator.findNodeOfGivenClass(cu, FieldDeclaration.class);
+ ResolvedType fieldType = javaParserFacade.getType(fieldDeclaration);
+ assertEquals(true, fieldType.isReferenceType());
+ assertEquals(true, fieldType.asReferenceType().getTypeDeclaration().isEnum());
+ assertEquals("foo.bar.Foo", fieldType.asReferenceType().getQualifiedName());
+ }
+}
+
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue84.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue84.java
new file mode 100644
index 000000000..ddb920b3f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue84.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class Issue84 extends AbstractResolutionTest {
+
+ @Test
+ public void variadicIssue() {
+ CompilationUnit cu = parseSample("Issue84");
+ final MethodCallExpr methodCall = Navigator.findMethodCall(cu, "variadicMethod").get();
+
+ final JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ final ResolvedType type = javaParserFacade.getType(methodCall);
+ assertEquals(String.class.getCanonicalName(), type.asReferenceType().getQualifiedName());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/JavaParserAPIIntegrationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/JavaParserAPIIntegrationTest.java
new file mode 100644
index 000000000..eb3072265
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/JavaParserAPIIntegrationTest.java
@@ -0,0 +1,158 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseStart;
+import com.github.javaparser.ParserConfiguration;
+import com.github.javaparser.StreamProvider;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.*;
+import com.github.javaparser.resolution.declarations.*;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class JavaParserAPIIntegrationTest extends AbstractTest {
+
+ private TypeSolver typeSolver;
+ private ResolvedReferenceType string;
+ private ResolvedReferenceType listOfBoolean;
+
+ @Before
+ public void setup() {
+ File src = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core"));
+ CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver();
+ combinedTypeSolverNewCode.add(new ReflectionTypeSolver());
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(src));
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources"))));
+ typeSolver = combinedTypeSolverNewCode;
+
+ TypeSolver ts = new ReflectionTypeSolver();
+ string = new ReferenceTypeImpl(ts.solveType(String.class.getCanonicalName()), ts);
+ ResolvedReferenceType booleanC = new ReferenceTypeImpl(ts.solveType(Boolean.class.getCanonicalName()), ts);
+ listOfBoolean = new ReferenceTypeImpl(ts.solveType(List.class.getCanonicalName()), ImmutableList.of(booleanC), ts);
+ }
+
+ @Test
+ public void annotationDeclarationResolve() throws IOException {
+ File f = adaptPath(new File("src/test/resources/Annotations.java.txt"));
+ CompilationUnit cu = parseWithSymbolResolution(f);
+ AnnotationDeclaration declaration = (AnnotationDeclaration)cu.getType(0);
+ assertEquals("MyAnnotation", declaration.getNameAsString());
+ ResolvedAnnotationDeclaration resolvedDeclaration = declaration.resolve();
+ }
+
+ @Test
+ public void annotationMemberDeclarationResolve() throws IOException {
+ File f = adaptPath(new File("src/test/resources/Annotations.java.txt"));
+ ParserConfiguration parserConfiguration = new ParserConfiguration();
+ parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
+ CompilationUnit cu = new JavaParser(parserConfiguration).parse(ParseStart.COMPILATION_UNIT, new StreamProvider(new FileInputStream(f))).getResult().get();
+ AnnotationDeclaration declaration = (AnnotationDeclaration)cu.getType(2);
+ assertEquals("MyAnnotationWithFields", declaration.getNameAsString());
+ AnnotationMemberDeclaration memberDeclaration = (AnnotationMemberDeclaration)declaration.getMember(0);
+ ResolvedAnnotationMemberDeclaration resolvedDeclaration = memberDeclaration.resolve();
+ }
+
+ @Test
+ public void classDeclarationResolve() throws IOException {
+ File f = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java"));
+ CompilationUnit cu = parseWithSymbolResolution(f);
+ ClassOrInterfaceDeclaration declaration = (ClassOrInterfaceDeclaration)cu.getType(0);
+ declaration.resolve();
+ }
+
+ @Test
+ public void interfaceDeclarationResolve() throws IOException {
+ File f = adaptPath(new File("src/test/resources/MethodTypeParams.java.txt"));
+ CompilationUnit cu = parseWithSymbolResolution(f);
+ ClassOrInterfaceDeclaration declaration = (ClassOrInterfaceDeclaration)cu.getType(1);
+ assertEquals("VoidVisitor", declaration.getNameAsString());
+ assertEquals(true, declaration.isInterface());
+ declaration.resolve();
+ }
+
+ private CompilationUnit parseWithSymbolResolution(File f) throws IOException {
+ ParserConfiguration parserConfiguration = new ParserConfiguration();
+ parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
+ return new JavaParser(parserConfiguration).parse(ParseStart.COMPILATION_UNIT, new StreamProvider(new FileInputStream(f))).getResult().get();
+ }
+
+ @Test
+ public void constructorDeclarationResolve() throws IOException {
+ File f = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java"));
+ CompilationUnit cu = parseWithSymbolResolution(f);
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = (ClassOrInterfaceDeclaration)cu.getType(0);
+ ConstructorDeclaration constructorDeclaration = classOrInterfaceDeclaration.getDefaultConstructor().get();
+ ResolvedConstructorDeclaration resolvedConstructorDeclaration = constructorDeclaration.resolve();
+ }
+ @Test
+ public void enumDeclarationResolve() throws IOException {
+ File f = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/AccessSpecifier.java"));
+ CompilationUnit cu = parseWithSymbolResolution(f);
+ EnumDeclaration declaration = (EnumDeclaration) cu.getType(0);
+ assertEquals("AccessSpecifier", declaration.getNameAsString());
+ ResolvedEnumDeclaration resolvedDeclaration = declaration.resolve();
+ }
+
+ @Test
+ public void enumConstantDeclarationResolve() throws IOException {
+ File f = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/AccessSpecifier.java"));
+ CompilationUnit cu = parseWithSymbolResolution(f);
+ EnumDeclaration enumDeclaration = (EnumDeclaration) cu.getType(0);
+ assertEquals("AccessSpecifier", enumDeclaration.getNameAsString());
+ EnumConstantDeclaration declaration = enumDeclaration.getEntry(0);
+ assertEquals("PUBLIC", declaration.getNameAsString());
+ ResolvedEnumConstantDeclaration resolvedDeclaration = declaration.resolve();
+ }
+
+ @Test
+ public void fieldDeclarationResolve() throws IOException {
+ File f = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java"));
+ CompilationUnit cu = parseWithSymbolResolution(f);
+ ClassOrInterfaceDeclaration classDeclaration = (ClassOrInterfaceDeclaration) cu.getType(0);
+ assertEquals("CompilationUnit", classDeclaration.getNameAsString());
+ FieldDeclaration declaration = classDeclaration.getFields().get(0);
+ ResolvedFieldDeclaration resolvedDeclaration = declaration.resolve();
+ }
+
+ // TODO make VariableDeclarator resolvable
+
+ @Test
+ public void methodDeclarationResolve() throws IOException {
+ File f = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java"));
+ CompilationUnit cu = parseWithSymbolResolution(f);
+ ClassOrInterfaceDeclaration classDeclaration = (ClassOrInterfaceDeclaration) cu.getType(0);
+ assertEquals("CompilationUnit", classDeclaration.getNameAsString());
+ MethodDeclaration declaration = classDeclaration.getMethodsByName("getComments").get(0);
+ ResolvedMethodDeclaration resolvedDeclaration = declaration.resolve();
+ assertEquals("getComments", resolvedDeclaration.getName());
+ assertEquals(0, resolvedDeclaration.getNumberOfParams());
+ }
+
+ @Test
+ public void parameterDeclarationResolve() throws IOException {
+ File f = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java"));
+ ParserConfiguration parserConfiguration = new ParserConfiguration();
+ parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
+ CompilationUnit cu = new JavaParser(parserConfiguration).parse(ParseStart.COMPILATION_UNIT, new StreamProvider(new FileInputStream(f))).getResult().get();
+ ClassOrInterfaceDeclaration classDeclaration = (ClassOrInterfaceDeclaration) cu.getType(0);
+ assertEquals("CompilationUnit", classDeclaration.getNameAsString());
+ MethodDeclaration methodDeclaration = classDeclaration.getMethodsByName("setComments").get(0);
+ Parameter declaration = methodDeclaration.getParameter(0);
+ ResolvedParameterDeclaration resolvedDeclaration = declaration.resolve();
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/JavaSymbolSolverTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/JavaSymbolSolverTest.java
new file mode 100644
index 000000000..998a90451
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/JavaSymbolSolverTest.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableSet;
+import org.junit.Test;
+
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertEquals;
+
+public class JavaSymbolSolverTest extends AbstractResolutionTest {
+
+ @Test
+ public void resolveMethodDeclaration() {
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+
+ CompilationUnit cu = parseSample("SymbolResolverExample");
+ new JavaSymbolSolver(typeSolver).inject(cu);
+
+ MethodDeclaration methodDeclaration = cu.getClassByName("A").get().getMethods().get(0);
+ ResolvedMethodDeclaration resolvedMethodDeclaration = methodDeclaration.resolve();
+ assertEquals("foo", resolvedMethodDeclaration.getName());
+ assertEquals("A[]", resolvedMethodDeclaration.getReturnType().describe());
+ assertEquals("java.lang.String[]", resolvedMethodDeclaration.getParam(0).getType().describe());
+ assertEquals("int[]", resolvedMethodDeclaration.getParam(1).getType().describe());
+ }
+
+ @Test
+ public void resolveArrayType() {
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+
+ CompilationUnit cu = parseSample("SymbolResolverExample");
+ new JavaSymbolSolver(typeSolver).inject(cu);
+
+ MethodDeclaration methodDeclaration = cu.getClassByName("A").get().getMethods().get(0);
+ ResolvedType resolvedType = methodDeclaration.getType().resolve();
+ assertEquals("A[]", resolvedType.describe());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/ConvertToUsageTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/ConvertToUsageTest.java
new file mode 100644
index 000000000..44eda270e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/ConvertToUsageTest.java
@@ -0,0 +1,40 @@
+package com.github.javaparser.symbolsolver.javaparsermodel;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+public class ConvertToUsageTest extends AbstractResolutionTest {
+
+ private final TypeSolver typeSolver = new ReflectionTypeSolver();
+
+ @Test
+ public void testConvertTypeToUsage() {
+ CompilationUnit cu = parseSample("LocalTypeDeclarations");
+ List<NameExpr> n = cu.findAll(NameExpr.class);
+
+ assertEquals("int", usageDescribe(n, "a"));
+ assertEquals("java.lang.Integer", usageDescribe(n, "b"));
+ assertEquals("java.lang.Class<java.lang.Integer>", usageDescribe(n, "c"));
+ assertEquals("java.lang.Class<? super java.lang.Integer>", usageDescribe(n, "d"));
+ assertEquals("java.lang.Class<? extends java.lang.Integer>", usageDescribe(n, "e"));
+ assertEquals("java.lang.Class<? extends java.lang.Class<? super java.lang.Class<? extends java.lang.Integer>>>", usageDescribe(n, "f"));
+ assertEquals("java.lang.Class<? super java.lang.Class<? extends java.lang.Class<? super java.lang.Integer>>>", usageDescribe(n, "g"));
+ }
+
+ private String usageDescribe(List<NameExpr> n, String name){
+ return n.stream().filter(x -> x.getNameAsString().equals(name))
+ .map(JavaParserFacade.get(typeSolver)::getType)
+ .map(ResolvedType::describe)
+ .findFirst().orElse(null);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/DifferentiateDotExpressionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/DifferentiateDotExpressionTest.java
new file mode 100644
index 000000000..cf5a87bf7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/DifferentiateDotExpressionTest.java
@@ -0,0 +1,100 @@
+package com.github.javaparser.symbolsolver.javaparsermodel;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+
+public class DifferentiateDotExpressionTest extends AbstractResolutionTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ combinedTypeSolver.add(new JavaParserTypeSolver(adaptPath(new File("src/test/resources/differentiate_dot_expressions"))));
+ typeSolver = combinedTypeSolver;
+ }
+
+ @Test
+ public void methodCallsFromFieldObjects() {
+ ClassOrInterfaceDeclaration clazz = ((JavaParserClassDeclaration) typeSolver.solveType("FieldDotExpressions")).getWrappedNode();
+ MethodDeclaration mainMethod = Navigator.demandMethod(clazz, "main");
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ MethodCallExpr firstFieldMethodCall = Navigator.findMethodCall(mainMethod, "firstContainerMethod").get();
+ MethodCallExpr secondFieldMethodCall = Navigator.findMethodCall(mainMethod, "secondContainerMethod").get();
+ MethodCallExpr thirdFieldMethodCall = Navigator.findMethodCall(mainMethod, "thirdContainerMethod").get();
+
+ assertEquals(true, javaParserFacade.solve(firstFieldMethodCall).isSolved());
+ assertEquals(true, javaParserFacade.solve(secondFieldMethodCall).isSolved());
+ assertEquals(true, javaParserFacade.solve(thirdFieldMethodCall).isSolved());
+ }
+
+ @Test
+ public void staticMethodCallsFromInnerClasses() {
+ ClassOrInterfaceDeclaration clazz = ((JavaParserClassDeclaration) typeSolver.solveType("InnerClassDotExpressions")).getWrappedNode();
+ MethodDeclaration mainMethod = Navigator.demandMethod(clazz, "main");
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ MethodCallExpr methodCall = Navigator.findMethodCall(mainMethod, "methodCall").get();
+ MethodCallExpr innerMethodCall = Navigator.findMethodCall(mainMethod, "innerMethodCall").get();
+ MethodCallExpr innerInnerMethodCall = Navigator.findMethodCall(mainMethod, "innerInnerMethodCall").get();
+
+ assertEquals(true, javaParserFacade.solve(methodCall).isSolved());
+ assertEquals(true, javaParserFacade.solve(innerMethodCall).isSolved());
+ assertEquals(true, javaParserFacade.solve(innerInnerMethodCall).isSolved());
+ }
+
+ @Test
+ public void staticFieldCallsFromInnerClasses() {
+ ClassOrInterfaceDeclaration clazz = ((JavaParserClassDeclaration) typeSolver.solveType("InnerStaticClassFieldDotExpressions")).getWrappedNode();
+ MethodDeclaration mainMethod = Navigator.demandMethod(clazz, "main");
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ MethodCallExpr methodCallWithNestedStaticFieldParam = Navigator.findMethodCall(mainMethod, "parseInt").get();
+
+ assertEquals(true, javaParserFacade.solve(methodCallWithNestedStaticFieldParam).isSolved());
+ }
+
+ @Test
+ public void packageStaticMethodCalls() {
+ ClassOrInterfaceDeclaration clazz = ((JavaParserClassDeclaration) typeSolver.solveType("PackageDotExpressions")).getWrappedNode();
+ MethodDeclaration mainMethod = Navigator.demandMethod(clazz, "main");
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ MethodCallExpr staticMethodCall = Navigator.findMethodCall(mainMethod, "staticMethod").get();
+
+ MethodCallExpr methodCall = Navigator.findMethodCall(mainMethod, "methodCall").get();
+ MethodCallExpr innerMethodCall = Navigator.findMethodCall(mainMethod, "innerMethodCall").get();
+ MethodCallExpr innerInnerMethodCall = Navigator.findMethodCall(mainMethod, "innerInnerMethodCall").get();
+
+ MethodCallExpr firstFieldMethodCall = Navigator.findMethodCall(mainMethod, "firstContainerMethod").get();
+ MethodCallExpr secondFieldMethodCall = Navigator.findMethodCall(mainMethod, "secondContainerMethod").get();
+ MethodCallExpr thirdFieldMethodCall = Navigator.findMethodCall(mainMethod, "thirdContainerMethod").get();
+
+ assertEquals(true, javaParserFacade.solve(staticMethodCall).isSolved());
+
+ assertEquals(true, javaParserFacade.solve(methodCall).isSolved());
+ assertEquals(true, javaParserFacade.solve(innerMethodCall).isSolved());
+ assertEquals(true, javaParserFacade.solve(innerInnerMethodCall).isSolved());
+
+ assertEquals(true, javaParserFacade.solve(firstFieldMethodCall).isSolved());
+ assertEquals(true, javaParserFacade.solve(secondFieldMethodCall).isSolved());
+ assertEquals(true, javaParserFacade.solve(thirdFieldMethodCall).isSolved());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnonymousClassDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnonymousClassDeclarationTest.java
new file mode 100644
index 000000000..1029456ba
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnonymousClassDeclarationTest.java
@@ -0,0 +1,98 @@
+package com.github.javaparser.symbolsolver.javaparsermodel.declarations;
+
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+public class JavaParserAnonymousClassDeclarationTest extends AbstractResolutionTest {
+
+ @Test
+ public void anonymousClassAsMethodArgument() {
+ CompilationUnit cu = parseSample("AnonymousClassDeclarations");
+ ClassOrInterfaceDeclaration aClass = Navigator.demandClass(cu, "AnonymousClassDeclarations");
+ MethodDeclaration method = Navigator.demandMethod(aClass, "fooBar1");
+ MethodCallExpr methodCall = Navigator.findMethodCall(method, "of").get();
+
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ MethodUsage methodUsage =
+ JavaParserFacade.get(combinedTypeSolver).solveMethodAsUsage(methodCall);
+
+ assertThat(methodUsage.getQualifiedSignature(),
+ is("AnonymousClassDeclarations.ParDo.of(AnonymousClassDeclarations.DoFn<I, O>)"));
+ }
+
+ @Test
+ public void callingSuperClassInnerClassMethod() {
+ CompilationUnit cu = parseSample("AnonymousClassDeclarations");
+ ClassOrInterfaceDeclaration aClass = Navigator.demandClass(cu, "AnonymousClassDeclarations");
+ MethodDeclaration method = Navigator.demandMethod(aClass, "fooBar2");
+ MethodCallExpr methodCall = Navigator.findMethodCall(method, "innerClassMethod").get();
+
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ MethodUsage methodUsage =
+ JavaParserFacade.get(combinedTypeSolver).solveMethodAsUsage(methodCall);
+
+ assertThat(methodUsage.getQualifiedSignature(),
+ is("AnonymousClassDeclarations.DoFn.ProcessContext.innerClassMethod()"));
+ }
+
+ @Test
+ public void callingAnonymousClassInnerMethod() {
+ CompilationUnit cu = parseSample("AnonymousClassDeclarations");
+ ClassOrInterfaceDeclaration aClass = Navigator.demandClass(cu, "AnonymousClassDeclarations");
+ MethodDeclaration method = Navigator.demandMethod(aClass, "fooBar3");
+ MethodCallExpr methodCall = Navigator.findMethodCall(method, "callAnnonClassInnerMethod").get();
+
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ MethodUsage methodUsage =
+ JavaParserFacade.get(combinedTypeSolver).solveMethodAsUsage(methodCall);
+
+ assertTrue(methodUsage.getQualifiedSignature().startsWith("AnonymousClassDeclarations"));
+ assertTrue(methodUsage.getQualifiedSignature().contains("Anonymous-"));
+ assertTrue(methodUsage.getQualifiedSignature().endsWith("callAnnonClassInnerMethod()"));
+ }
+
+ @Test
+ public void usingAnonymousSuperClassInnerType() {
+ CompilationUnit cu = parseSample("AnonymousClassDeclarations");
+ ClassOrInterfaceDeclaration aClass = Navigator.demandClass(cu, "AnonymousClassDeclarations");
+ MethodDeclaration method = Navigator.demandMethod(aClass, "fooBar4");
+ MethodCallExpr methodCall = Navigator.findMethodCall(method, "toString").get();
+
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ MethodUsage methodUsage =
+ JavaParserFacade.get(combinedTypeSolver).solveMethodAsUsage(methodCall);
+
+ assertThat(methodUsage.getQualifiedSignature(), is("java.lang.Enum.toString()"));
+ }
+
+ @Test
+ public void usingAnonymousClassInnerType() {
+ CompilationUnit cu = parseSample("AnonymousClassDeclarations");
+ ClassOrInterfaceDeclaration aClass = Navigator.demandClass(cu, "AnonymousClassDeclarations");
+ MethodDeclaration method = Navigator.demandMethod(aClass, "fooBar5");
+ MethodCallExpr methodCall = Navigator.findMethodCall(method, "toString").get();
+
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ MethodUsage methodUsage =
+ JavaParserFacade.get(combinedTypeSolver).solveMethodAsUsage(methodCall);
+
+ assertThat(methodUsage.getQualifiedSignature(), is("java.lang.Enum.toString()"));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserClassDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserClassDeclarationTest.java
new file mode 100644
index 000000000..0e70b1807
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserClassDeclarationTest.java
@@ -0,0 +1,894 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.javaparsermodel.declarations;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.AccessSpecifier;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.UnsolvedSymbolException;
+import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedFieldDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
+import com.github.javaparser.resolution.types.ResolvedPrimitiveType;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertEquals;
+
+public class JavaParserClassDeclarationTest extends AbstractTest {
+
+ private TypeSolver typeSolver;
+ private TypeSolver typeSolverNewCode;
+ private ResolvedReferenceType string;
+ private ResolvedReferenceType listOfBoolean;
+
+ @Before
+ public void setup() {
+ File src = adaptPath(new File("src/test/test_sourcecode/javaparser_src/proper_source"));
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ combinedTypeSolver.add(new JavaParserTypeSolver(src));
+ combinedTypeSolver.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_src/generated"))));
+ typeSolver = combinedTypeSolver;
+
+ File srcNewCode = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core"));
+ CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver();
+ combinedTypeSolverNewCode.add(new ReflectionTypeSolver());
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(srcNewCode));
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources"))));
+ typeSolverNewCode = combinedTypeSolverNewCode;
+
+ TypeSolver ts = new ReflectionTypeSolver();
+ string = new ReferenceTypeImpl(ts.solveType(String.class.getCanonicalName()), ts);
+ ResolvedReferenceType booleanC = new ReferenceTypeImpl(ts.solveType(Boolean.class.getCanonicalName()), ts);
+ listOfBoolean = new ReferenceTypeImpl(ts.solveType(List.class.getCanonicalName()), ImmutableList.of(booleanC), ts);
+ }
+
+ ///
+ /// Test misc
+ ///
+
+ @Test
+ public void testIsClass() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(true, compilationUnit.isClass());
+ }
+
+ @Test
+ public void testIsInterface() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(false, compilationUnit.isInterface());
+ }
+
+ @Test
+ public void testIsEnum() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(false, compilationUnit.isEnum());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(false, compilationUnit.isTypeParameter());
+ }
+
+ @Test
+ public void testIsType() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(true, compilationUnit.isType());
+ }
+
+ @Test
+ public void testAsType() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(compilationUnit, compilationUnit.asType());
+ }
+
+ @Test
+ public void testAsClass() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(compilationUnit, compilationUnit.asClass());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsInterface() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ compilationUnit.asInterface();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsEnum() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ compilationUnit.asEnum();
+ }
+
+ @Test
+ public void testGetPackageName() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals("com.github.javaparser.ast", compilationUnit.getPackageName());
+ }
+
+ @Test
+ public void testGetClassName() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals("CompilationUnit", compilationUnit.getClassName());
+ }
+
+ @Test
+ public void testGetQualifiedName() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals("com.github.javaparser.ast.CompilationUnit", compilationUnit.getQualifiedName());
+ }
+
+ ///
+ /// Test ancestors
+ ///
+
+ @Test
+ public void testGetSuperclassWithoutTypeParameters() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals("com.github.javaparser.ast.Node", compilationUnit.getSuperClass().getQualifiedName());
+ }
+
+ @Test
+ public void testGetSuperclassWithTypeParameters() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", compilationUnit.getSuperClass().getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", compilationUnit.getSuperClass().typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllSuperclassesWithoutTypeParameters() {
+ JavaParserClassDeclaration cu = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllSuperclassesWithTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(3, constructorDeclaration.getAllSuperClasses().size());
+ assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("com.github.javaparser.ast.body.BodyDeclaration")));
+ assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("com.github.javaparser.ast.Node")));
+ assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("java.lang.Object")));
+
+ ResolvedReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(1);
+ assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(2);
+ assertEquals("java.lang.Object", ancestor.getQualifiedName());
+ }
+
+ @Test
+ public void testGetInterfacesWithoutParameters() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of(), compilationUnit.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ JavaParserClassDeclaration coid = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.DocumentableNode"), coid.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetInterfacesWithParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(7, constructorDeclaration.getInterfaces().size());
+
+ ResolvedReferenceType interfaze = null;
+
+ interfaze = constructorDeclaration.getInterfaces().get(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllInterfacesWithoutParameters() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable"), compilationUnit.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ JavaParserClassDeclaration coid = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.NamedNode", "com.github.javaparser.ast.body.AnnotableNode", "com.github.javaparser.ast.DocumentableNode"), coid.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllInterfacesWithParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(9, constructorDeclaration.getAllInterfaces().size());
+
+ ResolvedReferenceType interfaze = null;
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(7);
+ assertEquals("java.lang.Cloneable", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(8);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAncestorsWithTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(8, constructorDeclaration.getAncestors().size());
+
+ ResolvedReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAncestors().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(7);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllAncestorsWithoutTypeParameters() {
+ JavaParserClassDeclaration cu = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllAncestors().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllAncestorsWithTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(12, constructorDeclaration.getAllAncestors().size());
+
+ ResolvedReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAllAncestors().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(1);
+ assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(2);
+ assertEquals("java.lang.Cloneable", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(4);
+ assertEquals("java.lang.Object", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(7);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(8);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(9);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(10);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(11);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ ///
+ /// Test fields
+ ///
+
+ @Test
+ public void testGetFieldForExistingField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ ResolvedFieldDeclaration fieldDeclaration = null;
+
+ // declared field
+ fieldDeclaration = constructorDeclaration.getField("modifiers");
+ assertEquals("modifiers", fieldDeclaration.getName());
+ assertEquals("java.util.EnumSet", fieldDeclaration.getType().asReferenceType().getQualifiedName());
+ assertEquals(AccessSpecifier.PRIVATE, fieldDeclaration.accessSpecifier());
+ assertEquals(false, fieldDeclaration.isStatic());
+
+ // inherited field
+ fieldDeclaration = constructorDeclaration.getField("annotations");
+ assertEquals("annotations", fieldDeclaration.getName());
+ assertEquals("java.util.List", fieldDeclaration.getType().asReferenceType().getQualifiedName());
+ assertEquals(AccessSpecifier.PRIVATE, fieldDeclaration.accessSpecifier());
+ }
+
+ @Test(expected = UnsolvedSymbolException.class)
+ public void testGetFieldForUnexistingField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ constructorDeclaration.getField("unexisting");
+ }
+
+ @Test
+ public void testGetAllFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<ResolvedFieldDeclaration> allFields = constructorDeclaration.getAllFields();
+ assertEquals(16, allFields.size());
+
+ ResolvedFieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("modifiers", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("typeParameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("name", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(3);
+ assertEquals("parameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(4);
+ assertEquals("throws_", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(5);
+ assertEquals("body", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(6);
+ assertEquals("annotations", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(7);
+ assertEquals("NODE_BY_BEGIN_POSITION", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(8);
+ assertEquals("range", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(9);
+ assertEquals("parentNode", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(10);
+ assertEquals("childrenNodes", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(11);
+ assertEquals("orphanComments", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(12);
+ assertEquals("userData", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(13);
+ assertEquals("comment", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(14);
+ assertEquals("ABSOLUTE_BEGIN_LINE", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(15);
+ assertEquals("ABSOLUTE_END_LINE", fieldDeclaration.getName());
+ }
+
+ @Test
+ public void testGetAllGenericFields() throws IOException, ParseException {
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+
+ CompilationUnit cu = JavaParser.parse(adaptPath(new File("src/test/resources/GenericFields.java.txt")));
+ JavaParserClassDeclaration classDeclaration = new JavaParserClassDeclaration(Navigator.demandClass(cu, "CB"), typeSolver);
+
+ assertEquals(3, classDeclaration.getAllFields().size());
+
+ ReferenceTypeImpl rtClassDeclaration = new ReferenceTypeImpl(classDeclaration, typeSolver);
+
+ assertEquals("s", classDeclaration.getAllFields().get(0).getName());
+ assertEquals(string, classDeclaration.getAllFields().get(0).getType());
+ assertEquals(string, rtClassDeclaration.getFieldType("s").get());
+
+ assertEquals("t", classDeclaration.getAllFields().get(1).getName());
+ assertEquals("java.util.List<java.lang.Boolean>", classDeclaration.getAllFields().get(1).getType().describe());
+ assertEquals(listOfBoolean, rtClassDeclaration.getFieldType("t").get());
+
+ assertEquals("i", classDeclaration.getAllFields().get(2).getName());
+ assertEquals(ResolvedPrimitiveType.INT, classDeclaration.getAllFields().get(2).getType());
+ assertEquals(ResolvedPrimitiveType.INT, rtClassDeclaration.getFieldType("i").get());
+ }
+
+ @Test
+ public void testGetAllStaticFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<ResolvedFieldDeclaration> allFields = constructorDeclaration.getAllStaticFields();
+ assertEquals(3, allFields.size());
+
+ ResolvedFieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("NODE_BY_BEGIN_POSITION", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("ABSOLUTE_BEGIN_LINE", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("ABSOLUTE_END_LINE", fieldDeclaration.getName());
+ }
+
+ @Test
+ public void testGetAllNonStaticFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<ResolvedFieldDeclaration> allFields = constructorDeclaration.getAllNonStaticFields();
+ assertEquals(13, allFields.size());
+
+ ResolvedFieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("modifiers", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("typeParameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("name", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(3);
+ assertEquals("parameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(4);
+ assertEquals("throws_", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(5);
+ assertEquals("body", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(6);
+ assertEquals("annotations", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(7);
+ assertEquals("range", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(8);
+ assertEquals("parentNode", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(9);
+ assertEquals("childrenNodes", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(10);
+ assertEquals("orphanComments", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(11);
+ assertEquals("userData", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(12);
+ assertEquals("comment", fieldDeclaration.getName());
+ }
+
+ @Test
+ public void testGetDeclaredFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<ResolvedFieldDeclaration> allFields = constructorDeclaration.getDeclaredFields();
+ assertEquals(6, allFields.size());
+
+ ResolvedFieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("modifiers", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("typeParameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("name", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(3);
+ assertEquals("parameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(4);
+ assertEquals("throws_", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(5);
+ assertEquals("body", fieldDeclaration.getName());
+ }
+
+ ///
+ /// Test methods
+ ///
+
+ @Test
+ public void testGetDeclaredMethods() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ Set<ResolvedMethodDeclaration> allMethods = constructorDeclaration.getDeclaredMethods();
+ assertEquals(20, allMethods.size());
+
+ List<ResolvedMethodDeclaration> sortedMethods = allMethods.stream()
+ .sorted((o1, o2) -> o1.getQualifiedSignature().compareTo(o2.getQualifiedSignature()))
+ .collect(Collectors.toList());
+
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)", sortedMethods.get(0).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)", sortedMethods.get(1).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getBody()", sortedMethods.get(2).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString()", sortedMethods.get(3).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean)", sortedMethods.get(4).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)", sortedMethods.get(5).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getJavaDoc()", sortedMethods.get(6).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()", sortedMethods.get(7).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getName()", sortedMethods.get(8).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()", sortedMethods.get(9).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()", sortedMethods.get(10).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()", sortedMethods.get(11).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()", sortedMethods.get(12).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)", sortedMethods.get(13).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)", sortedMethods.get(14).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)", sortedMethods.get(15).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)", sortedMethods.get(16).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)", sortedMethods.get(17).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)", sortedMethods.get(18).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)", sortedMethods.get(19).getQualifiedSignature());
+ }
+
+ @Test
+ public void testGetAllMethods() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ Set<MethodUsage> allMethods = constructorDeclaration.getAllMethods();
+
+ List<MethodUsage> sortedMethods = allMethods.stream()
+ .sorted((o1, o2) -> o1.getQualifiedSignature().compareTo(o2.getQualifiedSignature()))
+ .collect(Collectors.toList());
+
+ List<String> signatures = sortedMethods.stream().map(m -> m.getQualifiedSignature()).collect(Collectors.toList());
+
+ assertEquals(ImmutableList.of("com.github.javaparser.ast.Node.addOrphanComment(com.github.javaparser.ast.comments.Comment)",
+ "com.github.javaparser.ast.Node.clone()",
+ "com.github.javaparser.ast.Node.contains(com.github.javaparser.ast.Node)",
+ "com.github.javaparser.ast.Node.equals(java.lang.Object)",
+ "com.github.javaparser.ast.Node.getAllContainedComments()",
+ "com.github.javaparser.ast.Node.getBegin()",
+ "com.github.javaparser.ast.Node.getChildrenNodes()",
+ "com.github.javaparser.ast.Node.getComment()",
+ "com.github.javaparser.ast.Node.getEnd()",
+ "com.github.javaparser.ast.Node.getNodesByType(java.lang.Class<N>)",
+ "com.github.javaparser.ast.Node.getOrphanComments()",
+ "com.github.javaparser.ast.Node.getParentNode()",
+ "com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)",
+ "com.github.javaparser.ast.Node.getRange()",
+ "com.github.javaparser.ast.Node.getUserData(com.github.javaparser.ast.UserDataKey<M>)",
+ "com.github.javaparser.ast.Node.hasComment()",
+ "com.github.javaparser.ast.Node.hashCode()",
+ "com.github.javaparser.ast.Node.isPositionedAfter(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.isPositionedBefore(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)",
+ "com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)",
+ "com.github.javaparser.ast.Node.setBegin(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.setBlockComment(java.lang.String)",
+ "com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)",
+ "com.github.javaparser.ast.Node.setEnd(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.setLineComment(java.lang.String)",
+ "com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)",
+ "com.github.javaparser.ast.Node.setRange(com.github.javaparser.Range)",
+ "com.github.javaparser.ast.Node.setUserData(com.github.javaparser.ast.UserDataKey<M>, M)",
+ "com.github.javaparser.ast.Node.toString()",
+ "com.github.javaparser.ast.Node.toStringWithoutComments()",
+ "com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)",
+ "com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()",
+ "com.github.javaparser.ast.body.BodyDeclaration.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getBody()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getJavaDoc()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getName()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.String, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByClass(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByName(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.createBody()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.setJavaDocComment(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.addModifier(com.github.javaparser.ast.Modifier...)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isAbstract()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isFinal()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isNative()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isPrivate()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isProtected()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isPublic()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStatic()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStrictfp()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isSynchronized()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isTransient()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isVolatile()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.body.Parameter)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.type.Type, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(java.lang.Class<?>, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(java.lang.String, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.body.Parameter)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.type.Type, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(java.lang.Class<?>, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(java.lang.String, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByName(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByType(java.lang.Class<?>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByType(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(com.github.javaparser.ast.type.ReferenceType)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(java.lang.Class<? extends java.lang.Throwable>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)",
+ "java.lang.Object.finalize()",
+ "java.lang.Object.getClass()",
+ "java.lang.Object.notify()",
+ "java.lang.Object.notifyAll()",
+ "java.lang.Object.registerNatives()",
+ "java.lang.Object.wait()",
+ "java.lang.Object.wait(long)",
+ "java.lang.Object.wait(long, int)"), signatures);
+ }
+
+ ///
+ /// Test constructors
+ ///
+
+ @Test
+ public void testGetConstructors() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<ResolvedConstructorDeclaration> constructors = constructorDeclaration.getConstructors();
+ assertEquals(4, constructors.size());
+
+ assertEquals("ConstructorDeclaration()", constructors.get(0).getSignature());
+ assertEquals("ConstructorDeclaration(java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.lang.String)", constructors.get(1).getSignature());
+ assertEquals("ConstructorDeclaration(java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.String, java.util.List<com.github.javaparser.ast.body.Parameter>, java.util.List<com.github.javaparser.ast.type.ReferenceType>, com.github.javaparser.ast.stmt.BlockStmt)", constructors.get(2).getSignature());
+ assertEquals("ConstructorDeclaration(com.github.javaparser.Range, java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.String, java.util.List<com.github.javaparser.ast.body.Parameter>, java.util.List<com.github.javaparser.ast.type.ReferenceType>, com.github.javaparser.ast.stmt.BlockStmt)", constructors.get(3).getSignature());
+ }
+
+ ///
+ /// Resolution
+ ///
+
+ //SymbolReference<MethodDeclaration> solveMethod(String name, List<Type> parameterTypes);
+ @Test
+ public void testSolveMethodExisting() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<ResolvedMethodDeclaration> res = null;
+
+ res = constructorDeclaration.solveMethod("isStatic", ImmutableList.of());
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStatic()", res.getCorrespondingDeclaration().getQualifiedSignature());
+
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(RuntimeException.class.getClass(), typeSolverNewCode)));
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)", res.getCorrespondingDeclaration().getQualifiedSignature());
+
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(String.class, typeSolverNewCode)));
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)", res.getCorrespondingDeclaration().getQualifiedSignature());
+
+ // This is solved because it is raw
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(Class.class, typeSolverNewCode)));
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)", res.getCorrespondingDeclaration().getQualifiedSignature());
+ }
+
+ @Test
+ public void testSolveMethodNotExisting() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<ResolvedMethodDeclaration> res = null;
+
+ res = constructorDeclaration.solveMethod("unexistingMethod", ImmutableList.of());
+ assertEquals(false, res.isSolved());
+
+ res = constructorDeclaration.solveMethod("isStatic", ImmutableList.of(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(false, res.isSolved());
+ }
+
+ @Test
+ public void testSolveMethodNotExistingBecauseOfTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<ResolvedMethodDeclaration> res = null;
+
+ ResolvedReferenceType stringType = (ResolvedReferenceType) ReflectionFactory.typeUsageFor(String.class, typeSolverNewCode);
+ ResolvedReferenceType rawClassType = (ResolvedReferenceType) ReflectionFactory.typeUsageFor(Class.class, typeSolverNewCode);
+ ResolvedReferenceType classOfStringType = (ResolvedReferenceType) rawClassType.replaceTypeVariables(rawClassType.getTypeDeclaration().getTypeParameters().get(0), stringType);
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(classOfStringType));
+ assertEquals(false, res.isSolved());
+ }
+
+
+ ///
+ /// Assignability
+ ///
+
+ // boolean isAssignableBy(Type type);
+
+ // boolean canBeAssignedTo(TypeDeclaration other)
+
+ // boolean isAssignableBy(TypeDeclaration other);
+
+ ///
+ /// Annotations
+ ///
+
+ // hasDirectlyAnnotation
+
+ @Test
+ public void testHasDirectlyAnnotation() throws IOException, ParseException {
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+
+ CompilationUnit cu = JavaParser.parse(adaptPath(new File("src/test/resources/Annotations.java.txt")));
+
+ JavaParserClassDeclaration ca = new JavaParserClassDeclaration(Navigator.demandClass(cu, "CA"), typeSolver);
+ assertEquals(true, ca.hasDirectlyAnnotation("foo.bar.MyAnnotation"));
+ assertEquals(false, ca.hasDirectlyAnnotation("foo.bar.MyAnnotation2"));
+ assertEquals(false, ca.hasDirectlyAnnotation("MyAnnotation"));
+ assertEquals(false, ca.hasDirectlyAnnotation("foo.bar.MyUnexistingAnnotation"));
+
+ JavaParserClassDeclaration cb = new JavaParserClassDeclaration(Navigator.demandClass(cu, "CB"), typeSolver);
+ assertEquals(false, cb.hasDirectlyAnnotation("foo.bar.MyAnnotation"));
+ assertEquals(true, cb.hasDirectlyAnnotation("foo.bar.MyAnnotation2"));
+ assertEquals(false, cb.hasDirectlyAnnotation("MyAnnotation"));
+ assertEquals(false, cb.hasDirectlyAnnotation("foo.bar.MyUnexistingAnnotation"));
+ }
+
+ // hasAnnotation
+
+ @Test
+ public void testHasAnnotation() throws IOException, ParseException {
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+
+ CompilationUnit cu = JavaParser.parse(adaptPath(new File("src/test/resources/Annotations.java.txt")));
+
+ JavaParserClassDeclaration ca = new JavaParserClassDeclaration(Navigator.demandClass(cu, "CA"), typeSolver);
+ assertEquals(true, ca.hasAnnotation("foo.bar.MyAnnotation"));
+ assertEquals(false, ca.hasAnnotation("foo.bar.MyAnnotation2"));
+ assertEquals(false, ca.hasAnnotation("MyAnnotation"));
+ assertEquals(false, ca.hasAnnotation("foo.bar.MyUnexistingAnnotation"));
+
+ JavaParserClassDeclaration cb = new JavaParserClassDeclaration(Navigator.demandClass(cu, "CB"), typeSolver);
+ assertEquals(true, cb.hasAnnotation("foo.bar.MyAnnotation"));
+ assertEquals(true, cb.hasAnnotation("foo.bar.MyAnnotation2"));
+ assertEquals(false, cb.hasAnnotation("MyAnnotation"));
+ assertEquals(false, cb.hasAnnotation("foo.bar.MyUnexistingAnnotation"));
+ }
+
+ ///
+ ///
+ ///
+
+ // List<TypeParameterDeclaration> getTypeParameters();
+
+ // AccessLevel accessLevel();
+
+ ///
+ /// Containment
+ ///
+
+ // Set<TypeDeclaration> internalTypes()
+
+ // Optional<TypeDeclaration> containerType()
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumDeclarationTest.java
new file mode 100644
index 000000000..c171f4b94
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumDeclarationTest.java
@@ -0,0 +1,826 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.javaparsermodel.declarations;
+
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+
+public class JavaParserEnumDeclarationTest extends AbstractTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ File srcNewCode = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core"));
+ CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver();
+ combinedTypeSolverNewCode.add(new ReflectionTypeSolver());
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(srcNewCode));
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources"))));
+ typeSolver = combinedTypeSolverNewCode;
+ }
+
+ ///
+ /// Test misc
+ ///
+
+ @Test
+ public void testIsClass() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(false, modifier.isClass());
+ }
+
+ @Test
+ public void testIsInterface() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(false, modifier.isInterface());
+ }
+
+ @Test
+ public void testIsEnum() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(true, modifier.isEnum());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(false, modifier.isTypeParameter());
+ }
+
+ @Test
+ public void testIsType() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(true, modifier.isType());
+ }
+
+ @Test
+ public void testAsType() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(modifier, modifier.asType());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsClass() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ modifier.asClass();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsInterface() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ modifier.asInterface();
+ }
+
+ @Test
+ public void testAsEnum() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(modifier, modifier.asEnum());
+ }
+
+ @Test
+ public void testGetPackageName() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals("com.github.javaparser.ast", modifier.getPackageName());
+ }
+
+ @Test
+ public void testGetClassName() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals("Modifier", modifier.getClassName());
+ }
+
+ @Test
+ public void testGetQualifiedName() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals("com.github.javaparser.ast.Modifier", modifier.getQualifiedName());
+ }
+
+ ///
+ /// Test ancestors
+ ///
+
+ /*@Test
+ public void testGetSuperclassWithoutTypeParameters() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals("com.github.javaparser.ast.Node", compilationUnit.getSuperClass().getQualifiedName());
+ }
+
+ @Test
+ public void testGetSuperclassWithTypeParameters() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", compilationUnit.getSuperClass().getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", compilationUnit.getSuperClass().typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllSuperclassesWithoutTypeParameters() {
+ JavaParserClassDeclaration cu = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllSuperclassesWithTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(3, constructorDeclaration.getAllSuperClasses().size());
+
+ ReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(1);
+ assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(2);
+ assertEquals("java.lang.Object", ancestor.getQualifiedName());
+ }
+
+ @Test
+ public void testGetInterfacesWithoutParameters() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(ImmutableSet.of(), compilationUnit.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ JavaParserClassDeclaration coid = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.DocumentableNode"), coid.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetInterfacesWithParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(7, constructorDeclaration.getInterfaces().size());
+
+ ReferenceType interfaze = null;
+
+ interfaze = constructorDeclaration.getInterfaces().get(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllInterfacesWithoutParameters() {
+ JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable"), compilationUnit.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ JavaParserClassDeclaration coid = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.NamedNode", "com.github.javaparser.ast.body.AnnotableNode", "com.github.javaparser.ast.DocumentableNode"), coid.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllInterfacesWithParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(9, constructorDeclaration.getAllInterfaces().size());
+
+ ReferenceType interfaze = null;
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(7);
+ assertEquals("java.lang.Cloneable", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(8);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAncestorsWithTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(8, constructorDeclaration.getAncestors().size());
+
+ ReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAncestors().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(7);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllAncestorsWithoutTypeParameters() {
+ JavaParserClassDeclaration cu = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllAncestors().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllAncestorsWithTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(12, constructorDeclaration.getAllAncestors().size());
+
+ ReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAllAncestors().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(1);
+ assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(2);
+ assertEquals("java.lang.Cloneable", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(4);
+ assertEquals("java.lang.Object", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(7);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(8);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(9);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(10);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(11);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ ///
+ /// Test fields
+ ///
+
+ @Test
+ public void testGetFieldForExistingField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ FieldDeclaration fieldDeclaration = null;
+
+ // declared field
+ fieldDeclaration = constructorDeclaration.getField("modifiers");
+ assertEquals("modifiers", fieldDeclaration.getName());
+ assertEquals("java.util.EnumSet", fieldDeclaration.getType().asReferenceType().getQualifiedName());
+ assertEquals(AccessLevel.PRIVATE, fieldDeclaration.accessLevel());
+ assertEquals(false, fieldDeclaration.isStatic());
+
+ // inherited field
+ fieldDeclaration = constructorDeclaration.getField("annotations");
+ assertEquals("annotations", fieldDeclaration.getName());
+ assertEquals("java.util.List", fieldDeclaration.getType().asReferenceType().getQualifiedName());
+ assertEquals(AccessLevel.PRIVATE, fieldDeclaration.accessLevel());
+ }
+
+ @Test(expected = UnsolvedSymbolException.class)
+ public void testGetFieldForUnexistingField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ constructorDeclaration.getField("unexisting");
+ }
+
+ @Test
+ public void testGetAllFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<FieldDeclaration> allFields = constructorDeclaration.getAllFields();
+ assertEquals(16, allFields.size());
+
+ FieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("modifiers", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("typeParameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("name", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(3);
+ assertEquals("parameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(4);
+ assertEquals("throws_", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(5);
+ assertEquals("body", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(6);
+ assertEquals("annotations", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(7);
+ assertEquals("NODE_BY_BEGIN_POSITION", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(8);
+ assertEquals("range", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(9);
+ assertEquals("parentNode", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(10);
+ assertEquals("childrenNodes", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(11);
+ assertEquals("orphanComments", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(12);
+ assertEquals("userData", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(13);
+ assertEquals("comment", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(14);
+ assertEquals("ABSOLUTE_BEGIN_LINE", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(15);
+ assertEquals("ABSOLUTE_END_LINE", fieldDeclaration.getName());
+ }
+
+ @Test
+ public void testGetAllStaticFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<FieldDeclaration> allFields = constructorDeclaration.getAllStaticFields();
+ assertEquals(3, allFields.size());
+
+ FieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("NODE_BY_BEGIN_POSITION", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("ABSOLUTE_BEGIN_LINE", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("ABSOLUTE_END_LINE", fieldDeclaration.getName());
+ }
+
+ @Test
+ public void testGetAllNonStaticFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<FieldDeclaration> allFields = constructorDeclaration.getAllNonStaticFields();
+ assertEquals(13, allFields.size());
+
+ FieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("modifiers", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("typeParameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("name", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(3);
+ assertEquals("parameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(4);
+ assertEquals("throws_", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(5);
+ assertEquals("body", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(6);
+ assertEquals("annotations", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(7);
+ assertEquals("range", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(8);
+ assertEquals("parentNode", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(9);
+ assertEquals("childrenNodes", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(10);
+ assertEquals("orphanComments", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(11);
+ assertEquals("userData", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(12);
+ assertEquals("comment", fieldDeclaration.getName());
+ }
+
+ @Test
+ public void testGetDeclaredFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<FieldDeclaration> allFields = constructorDeclaration.getDeclaredFields();
+ assertEquals(6, allFields.size());
+
+ FieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("modifiers", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("typeParameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("name", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(3);
+ assertEquals("parameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(4);
+ assertEquals("throws_", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(5);
+ assertEquals("body", fieldDeclaration.getName());
+ }
+
+ ///
+ /// Test methods
+ ///
+
+ @Test
+ public void testGetDeclaredMethods() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ Set<MethodDeclaration> allMethods = constructorDeclaration.getDeclaredMethods();
+ assertEquals(20, allMethods.size());
+
+ List<MethodDeclaration> sortedMethods = allMethods.stream()
+ .sorted((o1, o2) -> o1.getQualifiedSignature().compareTo(o2.getQualifiedSignature()))
+ .collect(Collectors.toList());
+
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)", sortedMethods.get(0).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)", sortedMethods.get(1).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getBody()", sortedMethods.get(2).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString()", sortedMethods.get(3).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean)", sortedMethods.get(4).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)", sortedMethods.get(5).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getJavaDoc()", sortedMethods.get(6).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()", sortedMethods.get(7).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getName()", sortedMethods.get(8).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()", sortedMethods.get(9).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()", sortedMethods.get(10).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()", sortedMethods.get(11).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()", sortedMethods.get(12).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)", sortedMethods.get(13).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)", sortedMethods.get(14).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)", sortedMethods.get(15).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)", sortedMethods.get(16).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)", sortedMethods.get(17).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)", sortedMethods.get(18).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)", sortedMethods.get(19).getQualifiedSignature());
+ }
+
+ @Test
+ public void testGetAllMethods() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ Set<MethodUsage> allMethods = constructorDeclaration.getAllMethods();
+
+ List<MethodUsage> sortedMethods = allMethods.stream()
+ .sorted((o1, o2) -> o1.getQualifiedSignature().compareTo(o2.getQualifiedSignature()))
+ .collect(Collectors.toList());
+
+ List<String> signatures = sortedMethods.stream().map(m -> m.getQualifiedSignature()).collect(Collectors.toList());
+
+ assertEquals(ImmutableList.of("com.github.javaparser.ast.Node.addOrphanComment(com.github.javaparser.ast.comments.Comment)",
+ "com.github.javaparser.ast.Node.clone()",
+ "com.github.javaparser.ast.Node.contains(com.github.javaparser.ast.Node)",
+ "com.github.javaparser.ast.Node.equals(java.lang.Object)",
+ "com.github.javaparser.ast.Node.getAllContainedComments()",
+ "com.github.javaparser.ast.Node.getBegin()",
+ "com.github.javaparser.ast.Node.getChildrenNodes()",
+ "com.github.javaparser.ast.Node.getComment()",
+ "com.github.javaparser.ast.Node.getEnd()",
+ "com.github.javaparser.ast.Node.getNodesByType(java.lang.Class<N>)",
+ "com.github.javaparser.ast.Node.getOrphanComments()",
+ "com.github.javaparser.ast.Node.getParentNode()",
+ "com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)",
+ "com.github.javaparser.ast.Node.getRange()",
+ "com.github.javaparser.ast.Node.getUserData(com.github.javaparser.ast.UserDataKey<M>)",
+ "com.github.javaparser.ast.Node.hasComment()",
+ "com.github.javaparser.ast.Node.hashCode()",
+ "com.github.javaparser.ast.Node.isPositionedAfter(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.isPositionedBefore(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)",
+ "com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)",
+ "com.github.javaparser.ast.Node.setBegin(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.setBlockComment(java.lang.String)",
+ "com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)",
+ "com.github.javaparser.ast.Node.setEnd(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.setLineComment(java.lang.String)",
+ "com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)",
+ "com.github.javaparser.ast.Node.setRange(com.github.javaparser.Range)",
+ "com.github.javaparser.ast.Node.setUserData(com.github.javaparser.ast.UserDataKey<M>, M)",
+ "com.github.javaparser.ast.Node.toString()",
+ "com.github.javaparser.ast.Node.toStringWithoutComments()",
+ "com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)",
+ "com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()",
+ "com.github.javaparser.ast.body.BodyDeclaration.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getBody()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getJavaDoc()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getName()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.String, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByClass(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByName(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.createBody()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.setJavaDocComment(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.addModifier(com.github.javaparser.ast.Modifier...)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isAbstract()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isFinal()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isNative()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isPrivate()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isProtected()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isPublic()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStatic()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStrictfp()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isSynchronized()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isTransient()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isVolatile()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.body.Parameter)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.type.Type, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(java.lang.Class<?>, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(java.lang.String, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.body.Parameter)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.type.Type, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(java.lang.Class<?>, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(java.lang.String, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByName(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByType(java.lang.Class<?>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByType(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(com.github.javaparser.ast.type.ReferenceType)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(java.lang.Class<? extends java.lang.Throwable>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)",
+ "java.lang.Object.finalize()",
+ "java.lang.Object.getClass()",
+ "java.lang.Object.notify()",
+ "java.lang.Object.notifyAll()",
+ "java.lang.Object.registerNatives()",
+ "java.lang.Object.wait()",
+ "java.lang.Object.wait(long)",
+ "java.lang.Object.wait(long, int)"), signatures);
+ }
+
+ ///
+ /// Test constructors
+ ///
+
+ @Test
+ public void testGetConstructors() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<ConstructorDeclaration> constructors = constructorDeclaration.getConstructors();
+ assertEquals(4, constructors.size());
+
+ assertEquals("ConstructorDeclaration()", constructors.get(0).getSignature());
+ assertEquals("ConstructorDeclaration(java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.lang.String)", constructors.get(1).getSignature());
+ assertEquals("ConstructorDeclaration(java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.String, java.util.List<com.github.javaparser.ast.body.Parameter>, java.util.List<com.github.javaparser.ast.type.ReferenceType>, com.github.javaparser.ast.stmt.BlockStmt)", constructors.get(2).getSignature());
+ assertEquals("ConstructorDeclaration(com.github.javaparser.Range, java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.String, java.util.List<com.github.javaparser.ast.body.Parameter>, java.util.List<com.github.javaparser.ast.type.ReferenceType>, com.github.javaparser.ast.stmt.BlockStmt)", constructors.get(3).getSignature());
+ }
+
+ ///
+ /// Resolution
+ ///
+
+ //SymbolReference<MethodDeclaration> solveMethod(String name, List<Type> parameterTypes);
+ @Test
+ public void testSolveMethodExisting() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<MethodDeclaration> res = null;
+
+ res = constructorDeclaration.solveMethod("isStatic", ImmutableList.of());
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStatic()", res.getCorrespondingDeclaration().getQualifiedSignature());
+
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(RuntimeException.class.getClass(), typeSolverNewCode)));
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)", res.getCorrespondingDeclaration().getQualifiedSignature());
+
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(String.class, typeSolverNewCode)));
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)", res.getCorrespondingDeclaration().getQualifiedSignature());
+
+ // This is solved because it is raw
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(Class.class, typeSolverNewCode)));
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)", res.getCorrespondingDeclaration().getQualifiedSignature());
+ }
+
+ @Test
+ public void testSolveMethodNotExisting() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<MethodDeclaration> res = null;
+
+ res = constructorDeclaration.solveMethod("unexistingMethod", ImmutableList.of());
+ assertEquals(false, res.isSolved());
+
+ res = constructorDeclaration.solveMethod("isStatic", ImmutableList.of(PrimitiveType.BOOLEAN));
+ assertEquals(false, res.isSolved());
+ }
+
+ @Test
+ public void testSolveMethodNotExistingBecauseOfTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<MethodDeclaration> res = null;
+
+ ReferenceType stringType = (ReferenceType) ReflectionFactory.typeUsageFor(String.class, typeSolverNewCode);
+ ReferenceType rawClassType = (ReferenceType) ReflectionFactory.typeUsageFor(Class.class, typeSolverNewCode);
+ ReferenceType classOfStringType = (ReferenceType) rawClassType.replaceTypeVariables("T", stringType);
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(classOfStringType));
+ assertEquals(false, res.isSolved());
+ }
+
+ @Test
+ public void testSolveSymbolUnexisting() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("unexisting", typeSolver);
+ assertEquals(false, res.isSolved());
+ }
+
+ @Test
+ public void testSolveSymbolToDeclaredField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("name", typeSolver);
+ assertEquals(true, res.isSolved());
+ assertEquals(true, res.getCorrespondingDeclaration().isField());
+ }
+
+ @Test
+ public void testSolveSymbolToInheritedPublicField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("NODE_BY_BEGIN_POSITION", typeSolver);
+ assertEquals(true, res.isSolved());
+ assertEquals(true, res.getCorrespondingDeclaration().isField());
+ }
+
+ @Test
+ public void testSolveSymbolToInheritedPrivateField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("parentNode", typeSolver);
+ assertEquals(false, res.isSolved());
+ }
+
+ ///
+ /// Assignability
+ ///
+
+ // boolean isAssignableBy(Type type);
+
+ // boolean canBeAssignedTo(TypeDeclaration other)
+
+ // boolean isAssignableBy(TypeDeclaration other);
+
+ ///
+ /// Annotations
+ ///
+
+ // hasDirectlyAnnotation
+
+ // hasAnnotation
+
+ ///
+ ///
+ ///
+
+ // List<TypeParameterDeclaration> getTypeParameters();
+
+ // AccessLevel accessLevel();
+
+ ///
+ /// Containment
+ ///
+
+ // Set<TypeDeclaration> internalTypes()
+
+ // Optional<TypeDeclaration> containerType()*/
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java
new file mode 100644
index 000000000..cf5e5802b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java
@@ -0,0 +1,826 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.javaparsermodel.declarations;
+
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+
+public class JavaParserInterfaceDeclarationTest extends AbstractTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ File srcNewCode = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core"));
+ CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver();
+ combinedTypeSolverNewCode.add(new ReflectionTypeSolver());
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(srcNewCode));
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources"))));
+ typeSolver = combinedTypeSolverNewCode;
+ }
+
+ ///
+ /// Test misc
+ ///
+
+ @Test
+ public void testIsClass() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(false, nodeWithAnnotations.isClass());
+ }
+
+ @Test
+ public void testIsInterface() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(true, nodeWithAnnotations.isInterface());
+ }
+
+ @Test
+ public void testIsEnum() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(false, nodeWithAnnotations.isEnum());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(false, nodeWithAnnotations.isTypeParameter());
+ }
+
+ @Test
+ public void testIsType() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(true, nodeWithAnnotations.isType());
+ }
+
+ @Test
+ public void testAsType() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(nodeWithAnnotations, nodeWithAnnotations.asType());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsClass() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(nodeWithAnnotations, nodeWithAnnotations.asClass());
+ }
+
+ @Test
+ public void testAsInterface() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(nodeWithAnnotations, nodeWithAnnotations.asInterface());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsEnum() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ nodeWithAnnotations.asEnum();
+ }
+
+ @Test
+ public void testGetPackageName() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals("com.github.javaparser.ast.nodeTypes", nodeWithAnnotations.getPackageName());
+ }
+
+ @Test
+ public void testGetClassName() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals("NodeWithAnnotations", nodeWithAnnotations.getClassName());
+ }
+
+ @Test
+ public void testGetQualifiedName() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", nodeWithAnnotations.getQualifiedName());
+ }
+
+ ///
+ /// Test ancestors
+ ///
+
+ /*@Test
+ public void testGetSuperclassWithoutTypeParameters() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals("com.github.javaparser.ast.Node", compilationUnit.getSuperClass().getQualifiedName());
+ }
+
+ @Test
+ public void testGetSuperclassWithTypeParameters() {
+ JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", compilationUnit.getSuperClass().getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", compilationUnit.getSuperClass().typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllSuperclassesWithoutTypeParameters() {
+ JavaParserClassDeclaration cu = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllSuperclassesWithTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(3, constructorDeclaration.getAllSuperClasses().size());
+
+ ReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(1);
+ assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(2);
+ assertEquals("java.lang.Object", ancestor.getQualifiedName());
+ }
+
+ @Test
+ public void testGetInterfacesWithoutParameters() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(ImmutableSet.of(), compilationUnit.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ JavaParserClassDeclaration coid = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.DocumentableNode"), coid.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetInterfacesWithParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(7, constructorDeclaration.getInterfaces().size());
+
+ ReferenceType interfaze = null;
+
+ interfaze = constructorDeclaration.getInterfaces().get(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllInterfacesWithoutParameters() {
+ JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable"), compilationUnit.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ JavaParserClassDeclaration coid = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.NamedNode", "com.github.javaparser.ast.body.AnnotableNode", "com.github.javaparser.ast.DocumentableNode"), coid.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllInterfacesWithParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(9, constructorDeclaration.getAllInterfaces().size());
+
+ ReferenceType interfaze = null;
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(7);
+ assertEquals("java.lang.Cloneable", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(8);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAncestorsWithTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(8, constructorDeclaration.getAncestors().size());
+
+ ReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAncestors().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(7);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllAncestorsWithoutTypeParameters() {
+ JavaParserClassDeclaration cu = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllAncestors().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllAncestorsWithTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(12, constructorDeclaration.getAllAncestors().size());
+
+ ReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAllAncestors().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(1);
+ assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(2);
+ assertEquals("java.lang.Cloneable", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(4);
+ assertEquals("java.lang.Object", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(7);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(8);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(9);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(10);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(11);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ ///
+ /// Test fields
+ ///
+
+ @Test
+ public void testGetFieldForExistingField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ FieldDeclaration fieldDeclaration = null;
+
+ // declared field
+ fieldDeclaration = constructorDeclaration.getField("modifiers");
+ assertEquals("modifiers", fieldDeclaration.getName());
+ assertEquals("java.util.EnumSet", fieldDeclaration.getType().asReferenceType().getQualifiedName());
+ assertEquals(AccessLevel.PRIVATE, fieldDeclaration.accessLevel());
+ assertEquals(false, fieldDeclaration.isStatic());
+
+ // inherited field
+ fieldDeclaration = constructorDeclaration.getField("annotations");
+ assertEquals("annotations", fieldDeclaration.getName());
+ assertEquals("java.util.List", fieldDeclaration.getType().asReferenceType().getQualifiedName());
+ assertEquals(AccessLevel.PRIVATE, fieldDeclaration.accessLevel());
+ }
+
+ @Test(expected = UnsolvedSymbolException.class)
+ public void testGetFieldForUnexistingField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ constructorDeclaration.getField("unexisting");
+ }
+
+ @Test
+ public void testGetAllFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<FieldDeclaration> allFields = constructorDeclaration.getAllFields();
+ assertEquals(16, allFields.size());
+
+ FieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("modifiers", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("typeParameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("name", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(3);
+ assertEquals("parameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(4);
+ assertEquals("throws_", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(5);
+ assertEquals("body", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(6);
+ assertEquals("annotations", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(7);
+ assertEquals("NODE_BY_BEGIN_POSITION", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(8);
+ assertEquals("range", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(9);
+ assertEquals("parentNode", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(10);
+ assertEquals("childrenNodes", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(11);
+ assertEquals("orphanComments", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(12);
+ assertEquals("userData", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(13);
+ assertEquals("comment", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(14);
+ assertEquals("ABSOLUTE_BEGIN_LINE", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(15);
+ assertEquals("ABSOLUTE_END_LINE", fieldDeclaration.getName());
+ }
+
+ @Test
+ public void testGetAllStaticFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<FieldDeclaration> allFields = constructorDeclaration.getAllStaticFields();
+ assertEquals(3, allFields.size());
+
+ FieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("NODE_BY_BEGIN_POSITION", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("ABSOLUTE_BEGIN_LINE", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("ABSOLUTE_END_LINE", fieldDeclaration.getName());
+ }
+
+ @Test
+ public void testGetAllNonStaticFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<FieldDeclaration> allFields = constructorDeclaration.getAllNonStaticFields();
+ assertEquals(13, allFields.size());
+
+ FieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("modifiers", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("typeParameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("name", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(3);
+ assertEquals("parameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(4);
+ assertEquals("throws_", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(5);
+ assertEquals("body", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(6);
+ assertEquals("annotations", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(7);
+ assertEquals("range", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(8);
+ assertEquals("parentNode", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(9);
+ assertEquals("childrenNodes", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(10);
+ assertEquals("orphanComments", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(11);
+ assertEquals("userData", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(12);
+ assertEquals("comment", fieldDeclaration.getName());
+ }
+
+ @Test
+ public void testGetDeclaredFields() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<FieldDeclaration> allFields = constructorDeclaration.getDeclaredFields();
+ assertEquals(6, allFields.size());
+
+ FieldDeclaration fieldDeclaration = null;
+
+ fieldDeclaration = allFields.get(0);
+ assertEquals("modifiers", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(1);
+ assertEquals("typeParameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(2);
+ assertEquals("name", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(3);
+ assertEquals("parameters", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(4);
+ assertEquals("throws_", fieldDeclaration.getName());
+
+ fieldDeclaration = allFields.get(5);
+ assertEquals("body", fieldDeclaration.getName());
+ }
+
+ ///
+ /// Test methods
+ ///
+
+ @Test
+ public void testGetDeclaredMethods() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ Set<MethodDeclaration> allMethods = constructorDeclaration.getDeclaredMethods();
+ assertEquals(20, allMethods.size());
+
+ List<MethodDeclaration> sortedMethods = allMethods.stream()
+ .sorted((o1, o2) -> o1.getQualifiedSignature().compareTo(o2.getQualifiedSignature()))
+ .collect(Collectors.toList());
+
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)", sortedMethods.get(0).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)", sortedMethods.get(1).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getBody()", sortedMethods.get(2).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString()", sortedMethods.get(3).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean)", sortedMethods.get(4).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)", sortedMethods.get(5).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getJavaDoc()", sortedMethods.get(6).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()", sortedMethods.get(7).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getName()", sortedMethods.get(8).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()", sortedMethods.get(9).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()", sortedMethods.get(10).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()", sortedMethods.get(11).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()", sortedMethods.get(12).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)", sortedMethods.get(13).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)", sortedMethods.get(14).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)", sortedMethods.get(15).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)", sortedMethods.get(16).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)", sortedMethods.get(17).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)", sortedMethods.get(18).getQualifiedSignature());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)", sortedMethods.get(19).getQualifiedSignature());
+ }
+
+ @Test
+ public void testGetAllMethods() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ Set<MethodUsage> allMethods = constructorDeclaration.getAllMethods();
+
+ List<MethodUsage> sortedMethods = allMethods.stream()
+ .sorted((o1, o2) -> o1.getQualifiedSignature().compareTo(o2.getQualifiedSignature()))
+ .collect(Collectors.toList());
+
+ List<String> signatures = sortedMethods.stream().map(m -> m.getQualifiedSignature()).collect(Collectors.toList());
+
+ assertEquals(ImmutableList.of("com.github.javaparser.ast.Node.addOrphanComment(com.github.javaparser.ast.comments.Comment)",
+ "com.github.javaparser.ast.Node.clone()",
+ "com.github.javaparser.ast.Node.contains(com.github.javaparser.ast.Node)",
+ "com.github.javaparser.ast.Node.equals(java.lang.Object)",
+ "com.github.javaparser.ast.Node.getAllContainedComments()",
+ "com.github.javaparser.ast.Node.getBegin()",
+ "com.github.javaparser.ast.Node.getChildrenNodes()",
+ "com.github.javaparser.ast.Node.getComment()",
+ "com.github.javaparser.ast.Node.getEnd()",
+ "com.github.javaparser.ast.Node.getNodesByType(java.lang.Class<N>)",
+ "com.github.javaparser.ast.Node.getOrphanComments()",
+ "com.github.javaparser.ast.Node.getParentNode()",
+ "com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)",
+ "com.github.javaparser.ast.Node.getRange()",
+ "com.github.javaparser.ast.Node.getUserData(com.github.javaparser.ast.UserDataKey<M>)",
+ "com.github.javaparser.ast.Node.hasComment()",
+ "com.github.javaparser.ast.Node.hashCode()",
+ "com.github.javaparser.ast.Node.isPositionedAfter(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.isPositionedBefore(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)",
+ "com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)",
+ "com.github.javaparser.ast.Node.setBegin(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.setBlockComment(java.lang.String)",
+ "com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)",
+ "com.github.javaparser.ast.Node.setEnd(com.github.javaparser.Position)",
+ "com.github.javaparser.ast.Node.setLineComment(java.lang.String)",
+ "com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)",
+ "com.github.javaparser.ast.Node.setRange(com.github.javaparser.Range)",
+ "com.github.javaparser.ast.Node.setUserData(com.github.javaparser.ast.UserDataKey<M>, M)",
+ "com.github.javaparser.ast.Node.toString()",
+ "com.github.javaparser.ast.Node.toStringWithoutComments()",
+ "com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)",
+ "com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()",
+ "com.github.javaparser.ast.body.BodyDeclaration.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getBody()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getJavaDoc()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getName()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)",
+ "com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.String, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByClass(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByName(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.createBody()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.setJavaDocComment(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.addModifier(com.github.javaparser.ast.Modifier...)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isAbstract()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isFinal()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isNative()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isPrivate()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isProtected()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isPublic()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStatic()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStrictfp()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isSynchronized()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isTransient()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isVolatile()",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.body.Parameter)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.type.Type, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(java.lang.Class<?>, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(java.lang.String, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.body.Parameter)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.type.Type, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(java.lang.Class<?>, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(java.lang.String, java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByName(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByType(java.lang.Class<?>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByType(java.lang.String)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(com.github.javaparser.ast.type.ReferenceType)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(java.lang.Class<? extends java.lang.Throwable>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)",
+ "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)",
+ "java.lang.Object.finalize()",
+ "java.lang.Object.getClass()",
+ "java.lang.Object.notify()",
+ "java.lang.Object.notifyAll()",
+ "java.lang.Object.registerNatives()",
+ "java.lang.Object.wait()",
+ "java.lang.Object.wait(long)",
+ "java.lang.Object.wait(long, int)"), signatures);
+ }
+
+ ///
+ /// Test constructors
+ ///
+
+ @Test
+ public void testGetConstructors() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ List<ConstructorDeclaration> constructors = constructorDeclaration.getConstructors();
+ assertEquals(4, constructors.size());
+
+ assertEquals("ConstructorDeclaration()", constructors.get(0).getSignature());
+ assertEquals("ConstructorDeclaration(java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.lang.String)", constructors.get(1).getSignature());
+ assertEquals("ConstructorDeclaration(java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.String, java.util.List<com.github.javaparser.ast.body.Parameter>, java.util.List<com.github.javaparser.ast.type.ReferenceType>, com.github.javaparser.ast.stmt.BlockStmt)", constructors.get(2).getSignature());
+ assertEquals("ConstructorDeclaration(com.github.javaparser.Range, java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.String, java.util.List<com.github.javaparser.ast.body.Parameter>, java.util.List<com.github.javaparser.ast.type.ReferenceType>, com.github.javaparser.ast.stmt.BlockStmt)", constructors.get(3).getSignature());
+ }
+
+ ///
+ /// Resolution
+ ///
+
+ //SymbolReference<MethodDeclaration> solveMethod(String name, List<Type> parameterTypes);
+ @Test
+ public void testSolveMethodExisting() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<MethodDeclaration> res = null;
+
+ res = constructorDeclaration.solveMethod("isStatic", ImmutableList.of());
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStatic()", res.getCorrespondingDeclaration().getQualifiedSignature());
+
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(RuntimeException.class.getClass(), typeSolverNewCode)));
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)", res.getCorrespondingDeclaration().getQualifiedSignature());
+
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(String.class, typeSolverNewCode)));
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)", res.getCorrespondingDeclaration().getQualifiedSignature());
+
+ // This is solved because it is raw
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(Class.class, typeSolverNewCode)));
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)", res.getCorrespondingDeclaration().getQualifiedSignature());
+ }
+
+ @Test
+ public void testSolveMethodNotExisting() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<MethodDeclaration> res = null;
+
+ res = constructorDeclaration.solveMethod("unexistingMethod", ImmutableList.of());
+ assertEquals(false, res.isSolved());
+
+ res = constructorDeclaration.solveMethod("isStatic", ImmutableList.of(PrimitiveType.BOOLEAN));
+ assertEquals(false, res.isSolved());
+ }
+
+ @Test
+ public void testSolveMethodNotExistingBecauseOfTypeParameters() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<MethodDeclaration> res = null;
+
+ ReferenceType stringType = (ReferenceType) ReflectionFactory.typeUsageFor(String.class, typeSolverNewCode);
+ ReferenceType rawClassType = (ReferenceType) ReflectionFactory.typeUsageFor(Class.class, typeSolverNewCode);
+ ReferenceType classOfStringType = (ReferenceType) rawClassType.replaceTypeVariables("T", stringType);
+ res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(classOfStringType));
+ assertEquals(false, res.isSolved());
+ }
+
+ @Test
+ public void testSolveSymbolUnexisting() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("unexisting", typeSolver);
+ assertEquals(false, res.isSolved());
+ }
+
+ @Test
+ public void testSolveSymbolToDeclaredField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("name", typeSolver);
+ assertEquals(true, res.isSolved());
+ assertEquals(true, res.getCorrespondingDeclaration().isField());
+ }
+
+ @Test
+ public void testSolveSymbolToInheritedPublicField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("NODE_BY_BEGIN_POSITION", typeSolver);
+ assertEquals(true, res.isSolved());
+ assertEquals(true, res.getCorrespondingDeclaration().isField());
+ }
+
+ @Test
+ public void testSolveSymbolToInheritedPrivateField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("parentNode", typeSolver);
+ assertEquals(false, res.isSolved());
+ }
+
+ ///
+ /// Assignability
+ ///
+
+ // boolean isAssignableBy(Type type);
+
+ // boolean canBeAssignedTo(TypeDeclaration other)
+
+ // boolean isAssignableBy(TypeDeclaration other);
+
+ ///
+ /// Annotations
+ ///
+
+ // hasDirectlyAnnotation
+
+ // hasAnnotation
+
+ ///
+ ///
+ ///
+
+ // List<TypeParameterDeclaration> getTypeParameters();
+
+ // AccessLevel accessLevel();
+
+ ///
+ /// Containment
+ ///
+
+ // Set<TypeDeclaration> internalTypes()
+
+ // Optional<TypeDeclaration> containerType()*/
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/Issue257.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/Issue257.java
new file mode 100644
index 000000000..460b51667
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/Issue257.java
@@ -0,0 +1,47 @@
+package com.github.javaparser.symbolsolver.javassistmodel;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.Statement;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+public class Issue257 extends AbstractTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() throws IOException {
+ String pathToJar = adaptPath("src/test/resources/issue257/issue257.jar");
+ File jar = new File(pathToJar);
+ typeSolver = new CombinedTypeSolver(new JarTypeSolver(jar.getAbsolutePath()), new ReflectionTypeSolver());
+ }
+
+ @Test
+ public void verifyBCanBeSolved() throws FileNotFoundException {
+ typeSolver.solveType("net.testbug.B");
+ }
+
+ @Test
+ public void issue257() throws FileNotFoundException {
+ String pathToSourceFile = adaptPath("src/test/resources/issue257/A.java.txt");
+ CompilationUnit cu = JavaParser.parse(new File(pathToSourceFile));
+ Statement statement = cu.getClassByName("A").get().getMethodsByName("run").get(0).getBody().get().getStatement(0);
+ ExpressionStmt expressionStmt = (ExpressionStmt)statement;
+ Expression expression = expressionStmt.getExpression();
+ JavaParserFacade.get(typeSolver).getType(expression);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistClassDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistClassDeclarationTest.java
new file mode 100644
index 000000000..9f55977c5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistClassDeclarationTest.java
@@ -0,0 +1,404 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.javassistmodel;
+
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableSet;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertEquals;
+
+public class JavassistClassDeclarationTest extends AbstractTest {
+
+ private TypeSolver typeSolver;
+
+ private TypeSolver newTypeSolver;
+
+ @Before
+ public void setup() throws IOException {
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ typeSolver = new CombinedTypeSolver(new JarTypeSolver(pathToJar), new ReflectionTypeSolver());
+
+ String newPathToJar = adaptPath("src/test/resources/javaparser-core-3.0.0-alpha.2.jar");
+ newTypeSolver = new CombinedTypeSolver(new JarTypeSolver(newPathToJar), new ReflectionTypeSolver());
+ }
+
+ ///
+ /// Test misc
+ ///
+
+ @Test
+ public void testIsClass() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(true, compilationUnit.isClass());
+ }
+
+ @Test
+ public void testIsInterface() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(false, compilationUnit.isInterface());
+ }
+
+ @Test
+ public void testIsEnum() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(false, compilationUnit.isEnum());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(false, compilationUnit.isTypeParameter());
+ }
+
+ @Test
+ public void testIsType() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(true, compilationUnit.isType());
+ }
+
+ @Test
+ public void testAsType() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(compilationUnit, compilationUnit.asType());
+ }
+
+ @Test
+ public void testAsClass() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(compilationUnit, compilationUnit.asClass());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsInterface() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ compilationUnit.asInterface();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsEnum() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ compilationUnit.asEnum();
+ }
+
+ @Test
+ public void testGetPackageName() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals("com.github.javaparser.ast", compilationUnit.getPackageName());
+ }
+
+ @Test
+ public void testGetClassName() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals("CompilationUnit", compilationUnit.getClassName());
+ }
+
+ @Test
+ public void testGetQualifiedName() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals("com.github.javaparser.ast.CompilationUnit", compilationUnit.getQualifiedName());
+ }
+
+ ///
+ /// Test ancestors
+ ///
+
+ @Test
+ public void testGetSuperclass() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals("com.github.javaparser.ast.Node", compilationUnit.getSuperClass().getQualifiedName());
+ }
+
+ @Test
+ public void testGetSuperclassWithoutTypeParameters() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals("com.github.javaparser.ast.Node", compilationUnit.getSuperClass().getQualifiedName());
+ }
+
+ @Test
+ public void testGetSuperclassWithTypeParameters() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", compilationUnit.getSuperClass().getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", compilationUnit.getSuperClass().typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllSuperclasses() {
+ JavassistClassDeclaration cu = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllAncestors() {
+ JavassistClassDeclaration cu = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllAncestors().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetInterfaces() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of(), compilationUnit.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ JavassistClassDeclaration coid = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.DocumentableNode"), coid.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllInterfaces() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of(), compilationUnit.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ JavassistClassDeclaration coid = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.NamedNode", "com.github.javaparser.ast.body.AnnotableNode", "com.github.javaparser.ast.DocumentableNode"), coid.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllSuperclassesWithoutTypeParameters() {
+ JavassistClassDeclaration cu = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllSuperclassesWithTypeParameters() {
+ JavassistClassDeclaration constructorDeclaration = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(3, constructorDeclaration.getAllSuperClasses().size());
+ assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("com.github.javaparser.ast.body.BodyDeclaration")));
+ assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("com.github.javaparser.ast.Node")));
+ assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("java.lang.Object")));
+
+ ResolvedReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(1);
+ assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(2);
+ assertEquals("java.lang.Object", ancestor.getQualifiedName());
+ }
+
+ @Test
+ public void testGetInterfacesWithoutParameters() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of(), compilationUnit.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ JavassistClassDeclaration coid = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.nodeTypes.NodeWithExtends", "com.github.javaparser.ast.nodeTypes.NodeWithImplements"), coid.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetInterfacesWithParameters() {
+ JavassistClassDeclaration constructorDeclaration = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(7, constructorDeclaration.getInterfaces().size());
+
+ ResolvedReferenceType interfaze = null;
+
+ interfaze = constructorDeclaration.getInterfaces().get(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllInterfacesWithoutParameters() {
+ JavassistClassDeclaration compilationUnit = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable"), compilationUnit.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ JavassistClassDeclaration coid = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.nodeTypes.NodeWithExtends",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations",
+ "java.lang.Cloneable",
+ "com.github.javaparser.ast.nodeTypes.NodeWithImplements",
+ "com.github.javaparser.ast.nodeTypes.NodeWithName",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers",
+ "com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc",
+ "com.github.javaparser.ast.nodeTypes.NodeWithMembers"), coid.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllInterfacesWithParameters() {
+ JavassistClassDeclaration constructorDeclaration = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(9, constructorDeclaration.getAllInterfaces().size());
+
+ ResolvedReferenceType interfaze = null;
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(7);
+ assertEquals("java.lang.Cloneable", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(8);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAncestorsWithTypeParameters() {
+ JavassistClassDeclaration constructorDeclaration = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(8, constructorDeclaration.getAncestors().size());
+
+ ResolvedReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAncestors().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAncestors().get(7);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllAncestorsWithoutTypeParameters() {
+ JavassistClassDeclaration cu = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllAncestors().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllAncestorsWithTypeParameters() {
+ JavassistClassDeclaration constructorDeclaration = (JavassistClassDeclaration) newTypeSolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(12, constructorDeclaration.getAllAncestors().size());
+
+ ResolvedReferenceType ancestor = null;
+
+ ancestor = constructorDeclaration.getAllAncestors().get(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(1);
+ assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(2);
+ assertEquals("java.lang.Cloneable", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(4);
+ assertEquals("java.lang.Object", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(7);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(8);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(9);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(10);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllAncestors().get(11);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumDeclarationTest.java
new file mode 100644
index 000000000..8e6d66fe8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumDeclarationTest.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.javassistmodel;
+
+import com.github.javaparser.resolution.declarations.ResolvedEnumDeclaration;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+public class JavassistEnumDeclarationTest extends AbstractTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() throws IOException {
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-3.0.0-alpha.2.jar");
+ typeSolver = new CombinedTypeSolver(new JarTypeSolver(pathToJar), new ReflectionTypeSolver());
+ }
+
+ ///
+ /// Test misc
+ ///
+
+ @Test
+ public void testIsClass() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(false, modifier.isClass());
+ }
+
+ @Test
+ public void testIsInterface() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(false, modifier.isInterface());
+ }
+
+ @Test
+ public void testIsEnum() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(true, modifier.isEnum());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(false, modifier.isTypeParameter());
+ }
+
+ @Test
+ public void testIsType() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(true, modifier.isType());
+ }
+
+ @Test
+ public void testAsType() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(modifier, modifier.asType());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsClass() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ modifier.asClass();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsInterface() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ modifier.asInterface();
+ }
+
+ @Test
+ public void testAsEnum() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(modifier, modifier.asEnum());
+ }
+
+ @Test
+ public void testGetPackageName() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals("com.github.javaparser.ast", modifier.getPackageName());
+ }
+
+ @Test
+ public void testGetClassName() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals("Modifier", modifier.getClassName());
+ }
+
+ @Test
+ public void testGetQualifiedName() {
+ ResolvedEnumDeclaration modifier = (ResolvedEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals("com.github.javaparser.ast.Modifier", modifier.getQualifiedName());
+ }
+
+ ///
+ /// Test ancestors
+ ///
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistInterfaceDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistInterfaceDeclarationTest.java
new file mode 100644
index 000000000..a593ec406
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistInterfaceDeclarationTest.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.javassistmodel;
+
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+public class JavassistInterfaceDeclarationTest extends AbstractTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() throws IOException {
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-3.0.0-alpha.2.jar");
+ typeSolver = new CombinedTypeSolver(new JarTypeSolver(pathToJar), new ReflectionTypeSolver());
+ }
+
+ ///
+ /// Test misc
+ ///
+
+ @Test
+ public void testIsClass() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(false, nodeWithAnnotations.isClass());
+ }
+
+ @Test
+ public void testIsInterface() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(true, nodeWithAnnotations.isInterface());
+ }
+
+ @Test
+ public void testIsEnum() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(false, nodeWithAnnotations.isEnum());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(false, nodeWithAnnotations.isTypeParameter());
+ }
+
+ @Test
+ public void testIsType() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(true, nodeWithAnnotations.isType());
+ }
+
+ @Test
+ public void testAsType() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(nodeWithAnnotations, nodeWithAnnotations.asType());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsClass() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ nodeWithAnnotations.asClass();
+ }
+
+ @Test
+ public void testAsInterface() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals(nodeWithAnnotations, nodeWithAnnotations.asInterface());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsEnum() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ nodeWithAnnotations.asEnum();
+ }
+
+ @Test
+ public void testGetPackageName() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals("com.github.javaparser.ast.nodeTypes", nodeWithAnnotations.getPackageName());
+ }
+
+ @Test
+ public void testGetClassName() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals("NodeWithAnnotations", nodeWithAnnotations.getClassName());
+ }
+
+ @Test
+ public void testGetQualifiedName() {
+ JavassistInterfaceDeclaration nodeWithAnnotations = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations");
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", nodeWithAnnotations.getQualifiedName());
+ }
+
+ ///
+ /// Test ancestors
+ ///
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/logic/FunctionInterfaceLogicTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/logic/FunctionInterfaceLogicTest.java
new file mode 100644
index 000000000..bda2cc900
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/logic/FunctionInterfaceLogicTest.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.logic;
+
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.util.function.Consumer;
+import java.util.function.Function;
+
+import static org.junit.Assert.assertEquals;
+
+public class FunctionInterfaceLogicTest {
+
+ @Test
+ public void testGetFunctionalMethodNegativeCaseOnClass() {
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ResolvedType string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+ assertEquals(false, FunctionalInterfaceLogic.getFunctionalMethod(string).isPresent());
+ }
+
+ @Test
+ public void testGetFunctionalMethodPositiveCasesOnInterfaces() {
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ResolvedType function = new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Function.class, typeSolver), typeSolver);
+ assertEquals(true, FunctionalInterfaceLogic.getFunctionalMethod(function).isPresent());
+ assertEquals("apply", FunctionalInterfaceLogic.getFunctionalMethod(function).get().getName());
+ ResolvedType consumer = new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Consumer.class, typeSolver), typeSolver);
+ assertEquals(true, FunctionalInterfaceLogic.getFunctionalMethod(consumer).isPresent());
+ assertEquals("accept", FunctionalInterfaceLogic.getFunctionalMethod(consumer).get().getName());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/logic/InferenceContextTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/logic/InferenceContextTest.java
new file mode 100644
index 000000000..3af207f9f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/logic/InferenceContextTest.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.logic;
+
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.resolution.types.ResolvedTypeVariable;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.reflectionmodel.MyObjectProvider;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * @author Federico Tomassetti
+ */
+public class InferenceContextTest {
+
+ private TypeSolver typeSolver;
+ private ResolvedReferenceType string;
+ private ResolvedReferenceType object;
+ private ResolvedReferenceType listOfString;
+ private ResolvedReferenceType listOfE;
+ private ResolvedTypeParameterDeclaration tpE;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+ object = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver);
+ listOfString = listOf(string);
+ tpE = mock(ResolvedTypeParameterDeclaration.class);
+ when(tpE.getName()).thenReturn("T");
+
+ listOfE = listOf(new ResolvedTypeVariable(tpE));
+ }
+
+ private ResolvedReferenceType listOf(ResolvedType elementType) {
+ return new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(List.class, typeSolver), ImmutableList.of(elementType), typeSolver);
+ }
+
+ @Test
+ public void noVariablesArePlacedWhenNotNeeded() {
+ ResolvedType result = new InferenceContext(MyObjectProvider.INSTANCE).addPair(object, string);
+ assertEquals(object, result);
+ }
+
+ @Test
+ public void placingASingleVariableTopLevel() {
+ ResolvedType result = new InferenceContext(MyObjectProvider.INSTANCE).addPair(new ResolvedTypeVariable(tpE), listOfString);
+ assertEquals(new InferenceVariableType(0, MyObjectProvider.INSTANCE), result);
+ }
+
+ @Test
+ public void placingASingleVariableInside() {
+ ResolvedType result = new InferenceContext(MyObjectProvider.INSTANCE).addPair(listOfE, listOfString);
+ assertEquals(listOf(new InferenceVariableType(0, MyObjectProvider.INSTANCE)), result);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/ArrayTypeTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/ArrayTypeTest.java
new file mode 100644
index 000000000..1d8e4dd02
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/ArrayTypeTest.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.model.typesystem;
+
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedArrayType;
+import com.github.javaparser.resolution.types.ResolvedPrimitiveType;
+import com.github.javaparser.resolution.types.ResolvedTypeVariable;
+import com.github.javaparser.resolution.types.ResolvedVoidType;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class ArrayTypeTest {
+
+ private ResolvedArrayType arrayOfBooleans;
+ private ResolvedArrayType arrayOfStrings;
+ private ResolvedArrayType arrayOfListOfA;
+ private ResolvedArrayType arrayOfListOfStrings;
+ private ReferenceTypeImpl OBJECT;
+ private ReferenceTypeImpl STRING;
+ private TypeSolver typeSolver;
+ private ResolvedTypeParameterDeclaration tpA;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ OBJECT = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver);
+ STRING = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+ arrayOfBooleans = new ResolvedArrayType(ResolvedPrimitiveType.BOOLEAN);
+ arrayOfStrings = new ResolvedArrayType(STRING);
+ tpA = ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList());
+ arrayOfListOfA = new ResolvedArrayType(new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(new ResolvedTypeVariable(tpA)), typeSolver));
+ arrayOfListOfStrings = new ResolvedArrayType(new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)), typeSolver));
+ }
+
+ @Test
+ public void testIsArray() {
+ assertEquals(true, arrayOfBooleans.isArray());
+ assertEquals(true, arrayOfStrings.isArray());
+ }
+
+ @Test
+ public void testIsPrimitive() {
+ assertEquals(false, arrayOfBooleans.isPrimitive());
+ assertEquals(false, arrayOfStrings.isPrimitive());
+ }
+
+ @Test
+ public void testIsNull() {
+ assertEquals(false, arrayOfBooleans.isNull());
+ assertEquals(false, arrayOfStrings.isNull());
+ }
+
+ @Test
+ public void testIsReference() {
+ assertEquals(true, arrayOfBooleans.isReference());
+ assertEquals(true, arrayOfStrings.isReference());
+ }
+
+ @Test
+ public void testIsReferenceType() {
+ assertEquals(false, arrayOfBooleans.isReferenceType());
+ assertEquals(false, arrayOfStrings.isReferenceType());
+ }
+
+ @Test
+ public void testIsVoid() {
+ assertEquals(false, arrayOfBooleans.isVoid());
+ assertEquals(false, arrayOfStrings.isVoid());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ assertEquals(false, arrayOfBooleans.isTypeVariable());
+ assertEquals(false, arrayOfStrings.isTypeVariable());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsReferenceTypeUsage() {
+ arrayOfBooleans.asReferenceType();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsTypeParameter() {
+ arrayOfBooleans.asTypeParameter();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsPrimitive() {
+ arrayOfBooleans.asPrimitive();
+ }
+
+ @Test
+ public void testAsArrayTypeUsage() {
+ assertTrue(arrayOfBooleans == arrayOfBooleans.asArrayType());
+ assertTrue(arrayOfStrings == arrayOfStrings.asArrayType());
+ assertTrue(arrayOfListOfA == arrayOfListOfA.asArrayType());
+ }
+
+ @Test
+ public void testAsDescribe() {
+ assertEquals("boolean[]", arrayOfBooleans.describe());
+ assertEquals("java.lang.String[]", arrayOfStrings.describe());
+ }
+
+ @Test
+ public void testReplaceParam() {
+ assertTrue(arrayOfBooleans == arrayOfBooleans.replaceTypeVariables(tpA, OBJECT));
+ assertTrue(arrayOfStrings == arrayOfStrings.replaceTypeVariables(tpA, OBJECT));
+ assertEquals(arrayOfListOfStrings, arrayOfListOfStrings.replaceTypeVariables(tpA, OBJECT));
+ ResolvedArrayType arrayOfListOfObjects = new ResolvedArrayType(new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(OBJECT), typeSolver));
+ assertEquals(true, arrayOfListOfA.replaceTypeVariables(tpA, OBJECT).isArray());
+ assertEquals(ImmutableList.of(OBJECT),
+ arrayOfListOfA.replaceTypeVariables(tpA, OBJECT).asArrayType().getComponentType()
+ .asReferenceType().typeParametersValues());
+ assertEquals(new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ arrayOfListOfA.replaceTypeVariables(tpA, OBJECT).asArrayType().getComponentType()
+ .asReferenceType().getTypeDeclaration());
+ assertEquals(new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(OBJECT), typeSolver),
+ arrayOfListOfA.replaceTypeVariables(tpA, OBJECT).asArrayType().getComponentType());
+ assertEquals(arrayOfListOfObjects, arrayOfListOfA.replaceTypeVariables(tpA, OBJECT));
+ assertEquals(arrayOfListOfStrings, arrayOfListOfA.replaceTypeVariables(tpA, STRING));
+ assertTrue(arrayOfListOfA != arrayOfListOfA.replaceTypeVariables(tpA, OBJECT));
+ }
+
+ @Test
+ public void testIsAssignableBy() {
+ assertEquals(false, arrayOfBooleans.isAssignableBy(OBJECT));
+ assertEquals(false, arrayOfBooleans.isAssignableBy(STRING));
+ assertEquals(false, arrayOfBooleans.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(false, arrayOfBooleans.isAssignableBy(ResolvedVoidType.INSTANCE));
+
+ assertEquals(true, arrayOfBooleans.isAssignableBy(arrayOfBooleans));
+ assertEquals(false, arrayOfBooleans.isAssignableBy(arrayOfStrings));
+ assertEquals(false, arrayOfBooleans.isAssignableBy(arrayOfListOfA));
+ assertEquals(false, arrayOfBooleans.isAssignableBy(arrayOfListOfStrings));
+ assertEquals(false, arrayOfStrings.isAssignableBy(arrayOfBooleans));
+ assertEquals(true, arrayOfStrings.isAssignableBy(arrayOfStrings));
+ assertEquals(false, arrayOfStrings.isAssignableBy(arrayOfListOfA));
+ assertEquals(false, arrayOfStrings.isAssignableBy(arrayOfListOfStrings));
+ assertEquals(false, arrayOfListOfA.isAssignableBy(arrayOfBooleans));
+ assertEquals(false, arrayOfListOfA.isAssignableBy(arrayOfStrings));
+ assertEquals(true, arrayOfListOfA.isAssignableBy(arrayOfListOfA));
+ assertEquals(false, arrayOfListOfA.isAssignableBy(arrayOfListOfStrings));
+ assertEquals(false, arrayOfListOfStrings.isAssignableBy(arrayOfBooleans));
+ assertEquals(false, arrayOfListOfStrings.isAssignableBy(arrayOfStrings));
+ assertEquals(false, arrayOfListOfStrings.isAssignableBy(arrayOfListOfA));
+ assertEquals(true, arrayOfListOfStrings.isAssignableBy(arrayOfListOfStrings));
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/NullTypeTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/NullTypeTest.java
new file mode 100644
index 000000000..4df2460c6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/NullTypeTest.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.model.typesystem;
+
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedArrayType;
+import com.github.javaparser.resolution.types.ResolvedPrimitiveType;
+import com.github.javaparser.resolution.types.ResolvedTypeVariable;
+import com.github.javaparser.resolution.types.ResolvedVoidType;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+public class NullTypeTest {
+
+ private ResolvedArrayType arrayOfBooleans;
+ private ResolvedArrayType arrayOfListOfA;
+ private ReferenceTypeImpl OBJECT;
+ private ReferenceTypeImpl STRING;
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ OBJECT = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver);
+ STRING = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+ arrayOfBooleans = new ResolvedArrayType(ResolvedPrimitiveType.BOOLEAN);
+ arrayOfListOfA = new ResolvedArrayType(new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(new ResolvedTypeVariable(ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList()))), typeSolver));
+ }
+
+ @Test
+ public void testIsArray() {
+ assertEquals(false, NullType.INSTANCE.isArray());
+ }
+
+ @Test
+ public void testIsPrimitive() {
+ assertEquals(false, NullType.INSTANCE.isPrimitive());
+ }
+
+ @Test
+ public void testIsNull() {
+ assertEquals(true, NullType.INSTANCE.isNull());
+ }
+
+ @Test
+ public void testIsReference() {
+ assertEquals(true, NullType.INSTANCE.isReference());
+ }
+
+ @Test
+ public void testIsReferenceType() {
+ assertEquals(false, NullType.INSTANCE.isReferenceType());
+ }
+
+ @Test
+ public void testIsVoid() {
+ assertEquals(false, NullType.INSTANCE.isVoid());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ assertEquals(false, NullType.INSTANCE.isTypeVariable());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsReferenceTypeUsage() {
+ NullType.INSTANCE.asReferenceType();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsTypeParameter() {
+ NullType.INSTANCE.asTypeParameter();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsArrayTypeUsage() {
+ NullType.INSTANCE.asArrayType();
+ }
+
+ @Test
+ public void testAsDescribe() {
+ assertEquals("null", NullType.INSTANCE.describe());
+ }
+
+ @Test
+ public void testIsAssignableBy() {
+ try {
+ assertEquals(false, NullType.INSTANCE.isAssignableBy(NullType.INSTANCE));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, NullType.INSTANCE.isAssignableBy(OBJECT));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, NullType.INSTANCE.isAssignableBy(STRING));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, NullType.INSTANCE.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, NullType.INSTANCE.isAssignableBy(ResolvedVoidType.INSTANCE));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/PrimitiveTypeTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/PrimitiveTypeTest.java
new file mode 100644
index 000000000..3679dbd41
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/PrimitiveTypeTest.java
@@ -0,0 +1,331 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.model.typesystem;
+
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedArrayType;
+import com.github.javaparser.resolution.types.ResolvedPrimitiveType;
+import com.github.javaparser.resolution.types.ResolvedTypeVariable;
+import com.github.javaparser.resolution.types.ResolvedVoidType;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+public class PrimitiveTypeTest {
+
+ private ResolvedArrayType arrayOfBooleans;
+ private ResolvedArrayType arrayOfListOfA;
+ private ReferenceTypeImpl OBJECT;
+ private ReferenceTypeImpl STRING;
+ private TypeSolver typeSolver;
+
+ private ReferenceTypeImpl booleanBox;
+ private ReferenceTypeImpl characterBox;
+ private ReferenceTypeImpl byteBox;
+ private ReferenceTypeImpl shortBox;
+ private ReferenceTypeImpl integerBox;
+ private ReferenceTypeImpl longBox;
+ private ReferenceTypeImpl floatBox;
+ private ReferenceTypeImpl doubleBox;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ OBJECT = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver);
+ STRING = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+ arrayOfBooleans = new ResolvedArrayType(ResolvedPrimitiveType.BOOLEAN);
+ arrayOfListOfA = new ResolvedArrayType(new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(new ResolvedTypeVariable(ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList()))), typeSolver));
+
+ booleanBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Boolean.class, typeSolver), typeSolver);
+ characterBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Character.class, typeSolver), typeSolver);
+ byteBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Byte.class, typeSolver), typeSolver);
+ shortBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Short.class, typeSolver), typeSolver);
+ integerBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Integer.class, typeSolver), typeSolver);
+ longBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Long.class, typeSolver), typeSolver);
+ floatBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Float.class, typeSolver), typeSolver);
+ doubleBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Double.class, typeSolver), typeSolver);
+
+ }
+
+ @Test
+ public void testIsArray() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ assertEquals(false, ptu.isArray());
+ }
+ }
+
+ @Test
+ public void testIsPrimitive() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ assertEquals(true, ptu.isPrimitive());
+ }
+ }
+
+ @Test
+ public void testIsNull() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ assertEquals(false, ptu.isNull());
+ }
+ }
+
+ @Test
+ public void testIsReference() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ assertEquals(false, ptu.isReference());
+ }
+ }
+
+ @Test
+ public void testIsReferenceType() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ assertEquals(false, ptu.isReferenceType());
+ }
+ }
+
+ @Test
+ public void testIsVoid() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ assertEquals(false, ptu.isVoid());
+ }
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ assertEquals(false, ptu.isTypeVariable());
+ }
+ }
+
+ @Test
+ public void testAsReferenceTypeUsage() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ try {
+ ptu.asReferenceType();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ }
+ }
+ }
+
+ @Test
+ public void testAsTypeParameter() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ try {
+ ptu.asTypeParameter();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ }
+ }
+ }
+
+ @Test
+ public void testAsArrayTypeUsage() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ try {
+ ptu.asArrayType();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ }
+ }
+ }
+
+ @Test
+ public void testAsDescribe() {
+ assertEquals("boolean", ResolvedPrimitiveType.BOOLEAN.describe());
+ assertEquals("char", ResolvedPrimitiveType.CHAR.describe());
+ assertEquals("byte", ResolvedPrimitiveType.BYTE.describe());
+ assertEquals("short", ResolvedPrimitiveType.SHORT.describe());
+ assertEquals("int", ResolvedPrimitiveType.INT.describe());
+ assertEquals("long", ResolvedPrimitiveType.LONG.describe());
+ assertEquals("float", ResolvedPrimitiveType.FLOAT.describe());
+ assertEquals("double", ResolvedPrimitiveType.DOUBLE.describe());
+ }
+
+ @Test
+ public void testIsAssignableByOtherPrimitiveTypes() {
+ assertEquals(true, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(ResolvedPrimitiveType.CHAR));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(ResolvedPrimitiveType.BYTE));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(ResolvedPrimitiveType.SHORT));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(ResolvedPrimitiveType.INT));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(ResolvedPrimitiveType.LONG));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(ResolvedPrimitiveType.FLOAT));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(ResolvedPrimitiveType.DOUBLE));
+
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(true, ResolvedPrimitiveType.CHAR.isAssignableBy(ResolvedPrimitiveType.CHAR));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(ResolvedPrimitiveType.BYTE));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(ResolvedPrimitiveType.SHORT));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(ResolvedPrimitiveType.INT));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(ResolvedPrimitiveType.LONG));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(ResolvedPrimitiveType.FLOAT));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(ResolvedPrimitiveType.DOUBLE));
+
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(ResolvedPrimitiveType.CHAR));
+ assertEquals(true, ResolvedPrimitiveType.BYTE.isAssignableBy(ResolvedPrimitiveType.BYTE));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(ResolvedPrimitiveType.SHORT));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(ResolvedPrimitiveType.INT));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(ResolvedPrimitiveType.LONG));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(ResolvedPrimitiveType.FLOAT));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(ResolvedPrimitiveType.DOUBLE));
+
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(ResolvedPrimitiveType.CHAR));
+ assertEquals(true, ResolvedPrimitiveType.SHORT.isAssignableBy(ResolvedPrimitiveType.BYTE));
+ assertEquals(true, ResolvedPrimitiveType.SHORT.isAssignableBy(ResolvedPrimitiveType.SHORT));
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(ResolvedPrimitiveType.INT));
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(ResolvedPrimitiveType.LONG));
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(ResolvedPrimitiveType.FLOAT));
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(ResolvedPrimitiveType.DOUBLE));
+
+ assertEquals(false, ResolvedPrimitiveType.INT.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(true, ResolvedPrimitiveType.INT.isAssignableBy(ResolvedPrimitiveType.CHAR));
+ assertEquals(true, ResolvedPrimitiveType.INT.isAssignableBy(ResolvedPrimitiveType.BYTE));
+ assertEquals(true, ResolvedPrimitiveType.INT.isAssignableBy(ResolvedPrimitiveType.SHORT));
+ assertEquals(true, ResolvedPrimitiveType.INT.isAssignableBy(ResolvedPrimitiveType.INT));
+ assertEquals(false, ResolvedPrimitiveType.INT.isAssignableBy(ResolvedPrimitiveType.LONG));
+ assertEquals(false, ResolvedPrimitiveType.INT.isAssignableBy(ResolvedPrimitiveType.FLOAT));
+ assertEquals(false, ResolvedPrimitiveType.INT.isAssignableBy(ResolvedPrimitiveType.DOUBLE));
+
+ assertEquals(false, ResolvedPrimitiveType.LONG.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(true, ResolvedPrimitiveType.LONG.isAssignableBy(ResolvedPrimitiveType.CHAR));
+ assertEquals(true, ResolvedPrimitiveType.LONG.isAssignableBy(ResolvedPrimitiveType.BYTE));
+ assertEquals(true, ResolvedPrimitiveType.LONG.isAssignableBy(ResolvedPrimitiveType.SHORT));
+ assertEquals(true, ResolvedPrimitiveType.LONG.isAssignableBy(ResolvedPrimitiveType.INT));
+ assertEquals(true, ResolvedPrimitiveType.LONG.isAssignableBy(ResolvedPrimitiveType.LONG));
+ assertEquals(false, ResolvedPrimitiveType.LONG.isAssignableBy(ResolvedPrimitiveType.FLOAT));
+ assertEquals(false, ResolvedPrimitiveType.LONG.isAssignableBy(ResolvedPrimitiveType.DOUBLE));
+
+ assertEquals(false, ResolvedPrimitiveType.FLOAT.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(ResolvedPrimitiveType.CHAR));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(ResolvedPrimitiveType.BYTE));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(ResolvedPrimitiveType.SHORT));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(ResolvedPrimitiveType.INT));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(ResolvedPrimitiveType.LONG));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(ResolvedPrimitiveType.FLOAT));
+ assertEquals(false, ResolvedPrimitiveType.FLOAT.isAssignableBy(ResolvedPrimitiveType.DOUBLE));
+
+ assertEquals(false, ResolvedPrimitiveType.DOUBLE.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(ResolvedPrimitiveType.CHAR));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(ResolvedPrimitiveType.BYTE));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(ResolvedPrimitiveType.SHORT));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(ResolvedPrimitiveType.INT));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(ResolvedPrimitiveType.LONG));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(ResolvedPrimitiveType.FLOAT));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(ResolvedPrimitiveType.DOUBLE));
+ }
+
+ @Test
+ public void testIsAssignableByBoxedTypes() {
+ assertEquals(true, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(booleanBox));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(characterBox));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(byteBox));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(shortBox));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(integerBox));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(longBox));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(floatBox));
+ assertEquals(false, ResolvedPrimitiveType.BOOLEAN.isAssignableBy(doubleBox));
+
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(booleanBox));
+ assertEquals(true, ResolvedPrimitiveType.CHAR.isAssignableBy(characterBox));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(byteBox));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(shortBox));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(integerBox));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(longBox));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(floatBox));
+ assertEquals(false, ResolvedPrimitiveType.CHAR.isAssignableBy(doubleBox));
+
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(booleanBox));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(characterBox));
+ assertEquals(true, ResolvedPrimitiveType.BYTE.isAssignableBy(byteBox));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(shortBox));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(integerBox));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(longBox));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(floatBox));
+ assertEquals(false, ResolvedPrimitiveType.BYTE.isAssignableBy(doubleBox));
+
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(booleanBox));
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(characterBox));
+ assertEquals(true, ResolvedPrimitiveType.SHORT.isAssignableBy(byteBox));
+ assertEquals(true, ResolvedPrimitiveType.SHORT.isAssignableBy(shortBox));
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(integerBox));
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(longBox));
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(floatBox));
+ assertEquals(false, ResolvedPrimitiveType.SHORT.isAssignableBy(doubleBox));
+
+ assertEquals(false, ResolvedPrimitiveType.INT.isAssignableBy(booleanBox));
+ assertEquals(true, ResolvedPrimitiveType.INT.isAssignableBy(characterBox));
+ assertEquals(true, ResolvedPrimitiveType.INT.isAssignableBy(byteBox));
+ assertEquals(true, ResolvedPrimitiveType.INT.isAssignableBy(shortBox));
+ assertEquals(true, ResolvedPrimitiveType.INT.isAssignableBy(integerBox));
+ assertEquals(false, ResolvedPrimitiveType.INT.isAssignableBy(longBox));
+ assertEquals(false, ResolvedPrimitiveType.INT.isAssignableBy(floatBox));
+ assertEquals(false, ResolvedPrimitiveType.INT.isAssignableBy(doubleBox));
+
+ assertEquals(false, ResolvedPrimitiveType.LONG.isAssignableBy(booleanBox));
+ assertEquals(true, ResolvedPrimitiveType.LONG.isAssignableBy(characterBox));
+ assertEquals(true, ResolvedPrimitiveType.LONG.isAssignableBy(byteBox));
+ assertEquals(true, ResolvedPrimitiveType.LONG.isAssignableBy(shortBox));
+ assertEquals(true, ResolvedPrimitiveType.LONG.isAssignableBy(integerBox));
+ assertEquals(true, ResolvedPrimitiveType.LONG.isAssignableBy(longBox));
+ assertEquals(false, ResolvedPrimitiveType.LONG.isAssignableBy(floatBox));
+ assertEquals(false, ResolvedPrimitiveType.LONG.isAssignableBy(doubleBox));
+
+ assertEquals(false, ResolvedPrimitiveType.FLOAT.isAssignableBy(booleanBox));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(characterBox));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(byteBox));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(shortBox));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(integerBox));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(longBox));
+ assertEquals(true, ResolvedPrimitiveType.FLOAT.isAssignableBy(floatBox));
+ assertEquals(false, ResolvedPrimitiveType.FLOAT.isAssignableBy(doubleBox));
+
+ assertEquals(false, ResolvedPrimitiveType.DOUBLE.isAssignableBy(booleanBox));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(characterBox));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(byteBox));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(shortBox));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(integerBox));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(longBox));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(floatBox));
+ assertEquals(true, ResolvedPrimitiveType.DOUBLE.isAssignableBy(doubleBox));
+ }
+
+ @Test
+ public void testIsAssignableByAnythingElse() {
+ for (ResolvedPrimitiveType ptu : ResolvedPrimitiveType.values()) {
+ assertEquals(false, ptu.isAssignableBy(OBJECT));
+ assertEquals(false, ptu.isAssignableBy(STRING));
+ assertEquals(false, ptu.isAssignableBy(NullType.INSTANCE));
+ assertEquals(false, ptu.isAssignableBy(ResolvedVoidType.INSTANCE));
+ assertEquals(false, ptu.isAssignableBy(arrayOfBooleans));
+ assertEquals(false, ptu.isAssignableBy(arrayOfListOfA));
+ }
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/ReferenceTypeTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/ReferenceTypeTest.java
new file mode 100644
index 000000000..3f4b318a7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/ReferenceTypeTest.java
@@ -0,0 +1,600 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.model.typesystem;
+
+import com.github.javaparser.resolution.declarations.ResolvedClassDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedInterfaceDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.*;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.Serializable;
+import java.util.*;
+import java.util.stream.Stream;
+
+import static org.junit.Assert.*;
+
+public class ReferenceTypeTest {
+
+ private ReferenceTypeImpl listOfA;
+ private ReferenceTypeImpl listOfStrings;
+ private ReferenceTypeImpl linkedListOfString;
+ private ReferenceTypeImpl collectionOfString;
+ private ReferenceTypeImpl listOfWildcardExtendsString;
+ private ReferenceTypeImpl listOfWildcardSuperString;
+ private ReferenceTypeImpl object;
+ private ReferenceTypeImpl string;
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ object = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver);
+ string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+ listOfA = new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(new ResolvedTypeVariable(ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList()))), typeSolver);
+ listOfStrings = new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)), typeSolver);
+ linkedListOfString = new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(LinkedList.class, typeSolver),
+ ImmutableList.of(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)), typeSolver);
+ collectionOfString = new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(Collection.class, typeSolver),
+ ImmutableList.of(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)), typeSolver);
+ listOfWildcardExtendsString = new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(ResolvedWildcard.extendsBound(string)), typeSolver);
+ listOfWildcardSuperString = new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(ResolvedWildcard.superBound(string)), typeSolver);
+ }
+
+ @Test
+ public void testDerivationOfTypeParameters() {
+ ReflectionTypeSolver typeSolver = new ReflectionTypeSolver();
+ ReferenceTypeImpl ref1 = new ReferenceTypeImpl(typeSolver.solveType(LinkedList.class.getCanonicalName()), typeSolver);
+ assertEquals(1, ref1.typeParametersValues().size());
+ assertEquals(true, ref1.typeParametersValues().get(0).isTypeVariable());
+ assertEquals("E", ref1.typeParametersValues().get(0).asTypeParameter().getName());
+ }
+
+ @Test
+ public void testIsArray() {
+ assertEquals(false, object.isArray());
+ assertEquals(false, string.isArray());
+ assertEquals(false, listOfA.isArray());
+ assertEquals(false, listOfStrings.isArray());
+ }
+
+ @Test
+ public void testIsPrimitive() {
+ assertEquals(false, object.isPrimitive());
+ assertEquals(false, string.isPrimitive());
+ assertEquals(false, listOfA.isPrimitive());
+ assertEquals(false, listOfStrings.isPrimitive());
+ }
+
+ @Test
+ public void testIsNull() {
+ assertEquals(false, object.isNull());
+ assertEquals(false, string.isNull());
+ assertEquals(false, listOfA.isNull());
+ assertEquals(false, listOfStrings.isNull());
+ }
+
+ @Test
+ public void testIsReference() {
+ assertEquals(true, object.isReference());
+ assertEquals(true, string.isReference());
+ assertEquals(true, listOfA.isReference());
+ assertEquals(true, listOfStrings.isReference());
+ }
+
+ @Test
+ public void testIsReferenceType() {
+ assertEquals(true, object.isReferenceType());
+ assertEquals(true, string.isReferenceType());
+ assertEquals(true, listOfA.isReferenceType());
+ assertEquals(true, listOfStrings.isReferenceType());
+ }
+
+ @Test
+ public void testIsVoid() {
+ assertEquals(false, object.isVoid());
+ assertEquals(false, string.isVoid());
+ assertEquals(false, listOfA.isVoid());
+ assertEquals(false, listOfStrings.isVoid());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ assertEquals(false, object.isTypeVariable());
+ assertEquals(false, string.isTypeVariable());
+ assertEquals(false, listOfA.isTypeVariable());
+ assertEquals(false, listOfStrings.isTypeVariable());
+ }
+
+ @Test
+ public void testAsReferenceTypeUsage() {
+ assertTrue(object == object.asReferenceType());
+ assertTrue(string == string.asReferenceType());
+ assertTrue(listOfA == listOfA.asReferenceType());
+ assertTrue(listOfStrings == listOfStrings.asReferenceType());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsTypeParameter() {
+ object.asTypeParameter();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsArrayTypeUsage() {
+ object.asArrayType();
+ }
+
+ @Test
+ public void testAsDescribe() {
+ assertEquals("java.lang.Object", object.describe());
+ assertEquals("java.lang.String", string.describe());
+ assertEquals("java.util.List<A>", listOfA.describe());
+ assertEquals("java.util.List<java.lang.String>", listOfStrings.describe());
+ }
+
+ @Test
+ public void testReplaceParam() {
+ ResolvedTypeParameterDeclaration tpA = ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList());
+ assertTrue(object == object.replaceTypeVariables(tpA, object));
+ assertTrue(string == string.replaceTypeVariables(tpA, object));
+ assertEquals(listOfStrings, listOfStrings.replaceTypeVariables(tpA, object));
+ assertEquals(listOfStrings, listOfA.replaceTypeVariables(tpA, string));
+ }
+
+ @Test
+ public void testIsAssignableBySimple() {
+ assertEquals(true, object.isAssignableBy(string));
+ assertEquals(false, string.isAssignableBy(object));
+ assertEquals(false, listOfStrings.isAssignableBy(listOfA));
+ assertEquals(false, listOfA.isAssignableBy(listOfStrings));
+
+ assertEquals(false, object.isAssignableBy(ResolvedVoidType.INSTANCE));
+ assertEquals(false, string.isAssignableBy(ResolvedVoidType.INSTANCE));
+ assertEquals(false, listOfStrings.isAssignableBy(ResolvedVoidType.INSTANCE));
+ assertEquals(false, listOfA.isAssignableBy(ResolvedVoidType.INSTANCE));
+
+ assertEquals(true, object.isAssignableBy(NullType.INSTANCE));
+ assertEquals(true, string.isAssignableBy(NullType.INSTANCE));
+ assertEquals(true, listOfStrings.isAssignableBy(NullType.INSTANCE));
+ assertEquals(true, listOfA.isAssignableBy(NullType.INSTANCE));
+ }
+
+ @Test
+ public void testIsAssignableByBoxedPrimitive(){
+ ResolvedReferenceType numberType = new ReferenceTypeImpl(new ReflectionClassDeclaration(Number.class, typeSolver),typeSolver);
+ ResolvedReferenceType intType = new ReferenceTypeImpl(new ReflectionClassDeclaration(Integer.class, typeSolver),typeSolver);
+ ResolvedReferenceType doubleType = new ReferenceTypeImpl(new ReflectionClassDeclaration(Double.class, typeSolver),typeSolver);
+
+ assertEquals(true, numberType.isAssignableBy(ResolvedPrimitiveType.INT));
+ assertEquals(true, numberType.isAssignableBy(ResolvedPrimitiveType.DOUBLE));
+ assertEquals(true, numberType.isAssignableBy(ResolvedPrimitiveType.SHORT));
+ assertEquals(true, numberType.isAssignableBy(ResolvedPrimitiveType.LONG));
+ assertEquals(true, numberType.isAssignableBy(ResolvedPrimitiveType.FLOAT));
+ assertEquals(false, numberType.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ assertEquals(true, intType.isAssignableBy(ResolvedPrimitiveType.INT));
+ assertEquals(true, doubleType.isAssignableBy(ResolvedPrimitiveType.DOUBLE));
+ }
+
+ @Test
+ public void testIsAssignableByGenerics() {
+ assertEquals(false, listOfStrings.isAssignableBy(listOfWildcardExtendsString));
+ assertEquals(false, listOfStrings.isAssignableBy(listOfWildcardExtendsString));
+ assertEquals(true, listOfWildcardExtendsString.isAssignableBy(listOfStrings));
+ assertEquals(false, listOfWildcardExtendsString.isAssignableBy(listOfWildcardSuperString));
+ assertEquals(true, listOfWildcardSuperString.isAssignableBy(listOfStrings));
+ assertEquals(false, listOfWildcardSuperString.isAssignableBy(listOfWildcardExtendsString));
+ }
+
+ @Test
+ public void testIsAssignableByGenericsInheritance() {
+ assertEquals(true, collectionOfString.isAssignableBy(collectionOfString));
+ assertEquals(true, collectionOfString.isAssignableBy(listOfStrings));
+ assertEquals(true, collectionOfString.isAssignableBy(linkedListOfString));
+
+ assertEquals(false, listOfStrings.isAssignableBy(collectionOfString));
+ assertEquals(true, listOfStrings.isAssignableBy(listOfStrings));
+ assertEquals(true, listOfStrings.isAssignableBy(linkedListOfString));
+
+ assertEquals(false, linkedListOfString.isAssignableBy(collectionOfString));
+ assertEquals(false, linkedListOfString.isAssignableBy(listOfStrings));
+ assertEquals(true, linkedListOfString.isAssignableBy(linkedListOfString));
+ }
+
+ @Test
+ public void testGetAllAncestorsConsideringTypeParameters() {
+ assertTrue(linkedListOfString.getAllAncestors().contains(object));
+ assertTrue(linkedListOfString.getAllAncestors().contains(listOfStrings));
+ assertTrue(linkedListOfString.getAllAncestors().contains(collectionOfString));
+ assertFalse(linkedListOfString.getAllAncestors().contains(listOfA));
+ }
+
+ class Foo {
+
+ }
+
+ class Bar extends Foo {
+
+ }
+
+ class Bazzer<A, B, C> {
+
+ }
+
+ class MoreBazzing<A, B> extends Bazzer<B, String, A> {
+
+ }
+
+ @Test
+ public void testGetAllAncestorsConsideringGenericsCases() {
+ ReferenceTypeImpl foo = new ReferenceTypeImpl(new ReflectionClassDeclaration(Foo.class, typeSolver), typeSolver);
+ ReferenceTypeImpl bar = new ReferenceTypeImpl(new ReflectionClassDeclaration(Bar.class, typeSolver), typeSolver);
+ ReferenceTypeImpl left, right;
+
+ //YES MoreBazzing<Foo, Bar> e1 = new MoreBazzing<Foo, Bar>();
+ assertEquals(true,
+ new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver)
+ .isAssignableBy(new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver))
+ );
+
+ //YES MoreBazzing<? extends Foo, Bar> e2 = new MoreBazzing<Foo, Bar>();
+ assertEquals(true,
+ new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(ResolvedWildcard.extendsBound(foo), bar), typeSolver)
+ .isAssignableBy(new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver))
+ );
+
+ //YES MoreBazzing<Foo, ? extends Bar> e3 = new MoreBazzing<Foo, Bar>();
+ assertEquals(true,
+ new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, ResolvedWildcard.extendsBound(bar)), typeSolver)
+ .isAssignableBy(new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver))
+ );
+
+ //YES MoreBazzing<? extends Foo, ? extends Foo> e4 = new MoreBazzing<Foo, Bar>();
+ assertEquals(true,
+ new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(ResolvedWildcard.extendsBound(foo), ResolvedWildcard.extendsBound(foo)), typeSolver)
+ .isAssignableBy(new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver))
+ );
+
+ //YES MoreBazzing<? extends Foo, ? extends Foo> e5 = new MoreBazzing<Bar, Bar>();
+ left = new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(ResolvedWildcard.extendsBound(foo), ResolvedWildcard.extendsBound(foo)), typeSolver);
+ right = new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(bar, bar), typeSolver);
+ assertEquals(true, left.isAssignableBy(right));
+
+ //YES Bazzer<Object, String, String> e6 = new MoreBazzing<String, Object>();
+ left = new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(object, string, string), typeSolver);
+ right = new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(string, object), typeSolver);
+
+ // To debug the following
+ List<ResolvedReferenceType> ancestors = right.getAllAncestors();
+ ResolvedReferenceType moreBazzingAncestor = ancestors.stream().filter(a -> a.getQualifiedName().endsWith("Bazzer")).findFirst().get();
+
+ assertEquals(true, left.isAssignableBy(right));
+
+ //YES Bazzer<String,String,String> e7 = new MoreBazzing<String, String>();
+ assertEquals(true,
+ new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(string, string, string), typeSolver)
+ .isAssignableBy(new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(string, string), typeSolver))
+ );
+
+ //YES Bazzer<Bar,String,Foo> e8 = new MoreBazzing<Foo, Bar>();
+ assertEquals(true,
+ new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(bar, string, foo), typeSolver)
+ .isAssignableBy(new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver))
+ );
+
+ //YES Bazzer<Foo,String,Bar> e9 = new MoreBazzing<Bar, Foo>();
+ assertEquals(true,
+ new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(foo, string, bar), typeSolver)
+ .isAssignableBy(new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(bar, foo), typeSolver))
+ );
+
+ //NO Bazzer<Bar,String,Foo> n1 = new MoreBazzing<Bar, Foo>();
+ assertEquals(false,
+ new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(bar, string, foo), typeSolver)
+ .isAssignableBy(new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(bar, foo), typeSolver))
+ );
+
+ //NO Bazzer<Bar,String,Bar> n2 = new MoreBazzing<Bar, Foo>();
+ assertEquals(false,
+ new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(bar, string, foo), typeSolver)
+ .isAssignableBy(new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(bar, foo), typeSolver))
+ );
+
+ //NO Bazzer<Foo,Object,Bar> n3 = new MoreBazzing<Bar, Foo>();
+ assertEquals(false,
+ new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(foo, object, bar), typeSolver)
+ .isAssignableBy(new ReferenceTypeImpl(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(bar, foo), typeSolver))
+ );
+ }
+
+ @Test
+ public void charSequenceIsAssignableToObject() {
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ReferenceTypeImpl charSequence = new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(CharSequence.class, typeSolver), typeSolver);
+ ReferenceTypeImpl object = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver);
+ assertEquals(false, charSequence.isAssignableBy(object));
+ assertEquals(true, object.isAssignableBy(charSequence));
+ }
+
+ @Test
+ public void testGetFieldTypeExisting() {
+ class Foo<A> {
+ List<A> elements;
+ }
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ReferenceTypeImpl ref = new ReferenceTypeImpl(new ReflectionClassDeclaration(Foo.class, typeSolver), typeSolver);
+
+ assertEquals(true, ref.getFieldType("elements").isPresent());
+ assertEquals(true, ref.getFieldType("elements").get().isReferenceType());
+ assertEquals(List.class.getCanonicalName(), ref.getFieldType("elements").get().asReferenceType().getQualifiedName());
+ assertEquals(1, ref.getFieldType("elements").get().asReferenceType().typeParametersValues().size());
+ assertEquals(true, ref.getFieldType("elements").get().asReferenceType().typeParametersValues().get(0).isTypeVariable());
+ assertEquals("A", ref.getFieldType("elements").get().asReferenceType().typeParametersValues().get(0).asTypeParameter().getName());
+
+ ref = new ReferenceTypeImpl(new ReflectionClassDeclaration(Foo.class, typeSolver),
+ ImmutableList.of(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)),
+ typeSolver);
+
+ assertEquals(true, ref.getFieldType("elements").isPresent());
+ assertEquals(true, ref.getFieldType("elements").get().isReferenceType());
+ assertEquals(List.class.getCanonicalName(), ref.getFieldType("elements").get().asReferenceType().getQualifiedName());
+ assertEquals(1, ref.getFieldType("elements").get().asReferenceType().typeParametersValues().size());
+ assertEquals(true, ref.getFieldType("elements").get().asReferenceType().typeParametersValues().get(0).isReferenceType());
+ assertEquals(String.class.getCanonicalName(), ref.getFieldType("elements").get().asReferenceType().typeParametersValues().get(0).asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetFieldTypeUnexisting() {
+ class Foo<A> {
+ List<A> elements;
+ }
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ReferenceTypeImpl ref = new ReferenceTypeImpl(new ReflectionClassDeclaration(Foo.class, typeSolver), typeSolver);
+
+ assertEquals(false, ref.getFieldType("bar").isPresent());
+
+ ref = new ReferenceTypeImpl(new ReflectionClassDeclaration(Foo.class, typeSolver),
+ ImmutableList.of(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)),
+ typeSolver);
+
+ assertEquals(false, ref.getFieldType("bar").isPresent());
+ }
+
+ @Test
+ public void testTypeParamValue() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ ResolvedClassDeclaration abstractList = new ReflectionClassDeclaration(AbstractList.class, typeResolver);
+ ResolvedClassDeclaration abstractCollection = new ReflectionClassDeclaration(AbstractCollection.class, typeResolver);
+ ResolvedInterfaceDeclaration list = new ReflectionInterfaceDeclaration(List.class, typeResolver);
+ ResolvedInterfaceDeclaration collection = new ReflectionInterfaceDeclaration(Collection.class, typeResolver);
+ ResolvedInterfaceDeclaration iterable = new ReflectionInterfaceDeclaration(Iterable.class, typeResolver);
+ ResolvedType string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeResolver), typeResolver);
+ ResolvedReferenceType arrayListOfString = new ReferenceTypeImpl(arraylist, ImmutableList.of(string), typeResolver);
+ assertEquals(Optional.of(string), arrayListOfString.typeParamValue(arraylist.getTypeParameters().get(0)));
+ assertEquals(Optional.of(string), arrayListOfString.typeParamValue(abstractList.getTypeParameters().get(0)));
+ assertEquals(Optional.of(string), arrayListOfString.typeParamValue(abstractCollection.getTypeParameters().get(0)));
+ assertEquals(Optional.of(string), arrayListOfString.typeParamValue(list.getTypeParameters().get(0)));
+ assertEquals(Optional.of(string), arrayListOfString.typeParamValue(collection.getTypeParameters().get(0)));
+ assertEquals(Optional.of(string), arrayListOfString.typeParamValue(iterable.getTypeParameters().get(0)));
+ }
+
+ @Test
+ public void testGetAllAncestorsOnRawType() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ ResolvedReferenceType rawArrayList = new ReferenceTypeImpl(arraylist, typeResolver);
+
+ Map<String, ResolvedReferenceType> ancestors = new HashMap<>();
+ rawArrayList.getAllAncestors().forEach(a -> ancestors.put(a.getQualifiedName(), a));
+ assertEquals(9, ancestors.size());
+
+ ResolvedTypeVariable tv = new ResolvedTypeVariable(arraylist.getTypeParameters().get(0));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(RandomAccess.class, typeResolver), typeResolver), ancestors.get("java.util.RandomAccess"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(AbstractCollection.class, typeResolver), ImmutableList.of(tv), typeResolver), ancestors.get("java.util.AbstractCollection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(List.class, typeResolver), ImmutableList.of(tv), typeResolver), ancestors.get("java.util.List"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Cloneable.class, typeResolver), typeResolver), ancestors.get("java.lang.Cloneable"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Collection.class, typeResolver), ImmutableList.of(tv), typeResolver), ancestors.get("java.util.Collection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(AbstractList.class, typeResolver), ImmutableList.of(tv), typeResolver), ancestors.get("java.util.AbstractList"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeResolver), typeResolver), ancestors.get("java.lang.Object"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Iterable.class, typeResolver), ImmutableList.of(tv), typeResolver), ancestors.get("java.lang.Iterable"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Serializable.class, typeResolver), typeResolver), ancestors.get("java.io.Serializable"));
+ }
+
+ @Test
+ public void testGetAllAncestorsOnTypeWithSpecifiedTypeParametersForInterface() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedInterfaceDeclaration list = new ReflectionInterfaceDeclaration(List.class, typeResolver);
+ ResolvedType string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeResolver), typeResolver);
+ ResolvedReferenceType listOfString = new ReferenceTypeImpl(list, ImmutableList.of(string), typeResolver);
+
+ Map<String, ResolvedReferenceType> ancestors = new HashMap<>();
+ listOfString.getAllAncestors().forEach(a -> ancestors.put(a.getQualifiedName(), a));
+ assertEquals(3, ancestors.size());
+
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Collection.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.util.Collection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeResolver), typeResolver), ancestors.get("java.lang.Object"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Iterable.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.lang.Iterable"));
+ }
+
+ @Test
+ public void testGetAllAncestorsOnTypeWithSpecifiedTypeParametersForClassAbstractCollection() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration abstractCollection = new ReflectionClassDeclaration(AbstractCollection.class, typeResolver);
+ ResolvedType string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeResolver), typeResolver);
+ ResolvedReferenceType abstractCollectionOfString = new ReferenceTypeImpl(abstractCollection, ImmutableList.of(string), typeResolver);
+
+ Map<String, ResolvedReferenceType> ancestors = new HashMap<>();
+ abstractCollectionOfString.getAllAncestors().forEach(a -> ancestors.put(a.getQualifiedName(), a));
+ assertEquals(3, ancestors.size());
+
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Collection.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.util.Collection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeResolver), typeResolver), ancestors.get("java.lang.Object"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Iterable.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.lang.Iterable"));
+ }
+
+ @Test
+ public void testGetAllAncestorsOnTypeWithSpecifiedTypeParametersForClassAbstractList() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration abstractList = new ReflectionClassDeclaration(AbstractList.class, typeResolver);
+ ResolvedType string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeResolver), typeResolver);
+ ResolvedReferenceType abstractListOfString = new ReferenceTypeImpl(abstractList, ImmutableList.of(string), typeResolver);
+
+ Map<String, ResolvedReferenceType> ancestors = new HashMap<>();
+ abstractListOfString.getAllAncestors().forEach(a -> ancestors.put(a.getQualifiedName(), a));
+ assertEquals(5, ancestors.size());
+
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(AbstractCollection.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.util.AbstractCollection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(List.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.util.List"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Collection.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.util.Collection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeResolver), typeResolver), ancestors.get("java.lang.Object"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Iterable.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.lang.Iterable"));
+ }
+
+ @Test
+ public void testGetAllAncestorsOnTypeWithSpecifiedTypeParametersForClassArrayList() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ ResolvedType string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeResolver), typeResolver);
+ ResolvedReferenceType arrayListOfString = new ReferenceTypeImpl(arraylist, ImmutableList.of(string), typeResolver);
+
+ Map<String, ResolvedReferenceType> ancestors = new HashMap<>();
+ arrayListOfString.getAllAncestors().forEach(a -> ancestors.put(a.getQualifiedName(), a));
+ assertEquals(9, ancestors.size());
+
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(RandomAccess.class, typeResolver), typeResolver), ancestors.get("java.util.RandomAccess"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(AbstractCollection.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.util.AbstractCollection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(List.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.util.List"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Cloneable.class, typeResolver), typeResolver), ancestors.get("java.lang.Cloneable"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Collection.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.util.Collection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(AbstractList.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.util.AbstractList"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeResolver), typeResolver), ancestors.get("java.lang.Object"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Iterable.class, typeResolver), ImmutableList.of(string), typeResolver), ancestors.get("java.lang.Iterable"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Serializable.class, typeResolver), typeResolver), ancestors.get("java.io.Serializable"));
+ }
+
+ @Test
+ public void testTypeParametersValues() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedReferenceType stream = new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Stream.class, typeResolver), typeResolver);
+ assertEquals(1, stream.typeParametersValues().size());
+ assertEquals(new ResolvedTypeVariable(new ReflectionInterfaceDeclaration(Stream.class, typeResolver).getTypeParameters().get(0)), stream.typeParametersValues().get(0));
+ }
+
+ @Test
+ public void testReplaceTypeVariables() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedInterfaceDeclaration streamInterface = new ReflectionInterfaceDeclaration(Stream.class, typeResolver);
+ ResolvedReferenceType stream = new ReferenceTypeImpl(streamInterface, typeResolver);
+
+ ResolvedMethodDeclaration streamMap = streamInterface.getDeclaredMethods().stream().filter(m -> m.getName().equals("map")).findFirst().get();
+ ResolvedTypeParameterDeclaration streamMapR = streamMap.findTypeParameter("T").get();
+ ResolvedTypeVariable typeVariable = new ResolvedTypeVariable(streamMapR);
+ stream = stream.deriveTypeParameters(stream.typeParametersMap().toBuilder().setValue(stream.getTypeDeclaration().getTypeParameters().get(0), typeVariable).build());
+
+ ResolvedTypeParameterDeclaration tpToReplace = streamInterface.getTypeParameters().get(0);
+ ResolvedType replaced = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeResolver), typeResolver);
+
+ ResolvedType streamReplaced = stream.replaceTypeVariables(tpToReplace, replaced);
+ assertEquals("java.util.stream.Stream<java.lang.String>", streamReplaced.describe());
+ }
+
+ @Test
+ public void testReplaceTypeVariablesWithLambdaInBetween() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedInterfaceDeclaration streamInterface = new ReflectionInterfaceDeclaration(Stream.class, typeResolver);
+ ResolvedReferenceType stream = new ReferenceTypeImpl(streamInterface, typeResolver);
+
+ ResolvedMethodDeclaration streamMap = streamInterface.getDeclaredMethods().stream().filter(m -> m.getName().equals("map")).findFirst().get();
+ ResolvedTypeParameterDeclaration streamMapR = streamMap.findTypeParameter("T").get();
+ ResolvedTypeVariable typeVariable = new ResolvedTypeVariable(streamMapR);
+ stream = stream.deriveTypeParameters(stream.typeParametersMap().toBuilder().setValue(stream.getTypeDeclaration().getTypeParameters().get(0), typeVariable).build());
+
+ ResolvedTypeParameterDeclaration tpToReplace = streamInterface.getTypeParameters().get(0);
+ ResolvedType replaced = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeResolver), typeResolver);
+
+ ResolvedType streamReplaced = stream.replaceTypeVariables(tpToReplace, replaced);
+ assertEquals("java.util.stream.Stream<java.lang.String>", streamReplaced.describe());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/TypeVariableUsageTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/TypeVariableUsageTest.java
new file mode 100644
index 000000000..1808b9c13
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/TypeVariableUsageTest.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.model.typesystem;
+
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedTypeVariable;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.*;
+
+import static org.junit.Assert.*;
+
+public class TypeVariableUsageTest {
+
+ private ResolvedTypeVariable tpA;
+ private ReferenceTypeImpl tpString;
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ tpA = new ResolvedTypeVariable(ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList()));
+
+ typeSolver = new ReflectionTypeSolver();
+ tpString = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+ }
+
+ @Test
+ public void testIsAssignableBySimple() {
+ assertEquals(false, tpString.isAssignableBy(tpA));
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/VoidTypeTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/VoidTypeTest.java
new file mode 100644
index 000000000..2c88ebbb8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/VoidTypeTest.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.model.typesystem;
+
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedArrayType;
+import com.github.javaparser.resolution.types.ResolvedPrimitiveType;
+import com.github.javaparser.resolution.types.ResolvedTypeVariable;
+import com.github.javaparser.resolution.types.ResolvedVoidType;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+public class VoidTypeTest {
+
+ private ResolvedArrayType arrayOfBooleans;
+ private ResolvedArrayType arrayOfListOfA;
+ private ReferenceTypeImpl OBJECT;
+ private ReferenceTypeImpl STRING;
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ OBJECT = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver);
+ STRING = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+ arrayOfBooleans = new ResolvedArrayType(ResolvedPrimitiveType.BOOLEAN);
+ arrayOfListOfA = new ResolvedArrayType(new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(new ResolvedTypeVariable(ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList()))), typeSolver));
+ }
+
+ @Test
+ public void testIsArray() {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isArray());
+ }
+
+ @Test
+ public void testIsPrimitive() {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isPrimitive());
+ }
+
+ @Test
+ public void testIsNull() {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isNull());
+ }
+
+ @Test
+ public void testIsReference() {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isReference());
+ }
+
+ @Test
+ public void testIsReferenceType() {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isReferenceType());
+ }
+
+ @Test
+ public void testIsVoid() {
+ assertEquals(true, ResolvedVoidType.INSTANCE.isVoid());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isTypeVariable());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsReferenceTypeUsage() {
+ ResolvedVoidType.INSTANCE.asReferenceType();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsTypeParameter() {
+ ResolvedVoidType.INSTANCE.asTypeParameter();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsArrayTypeUsage() {
+ ResolvedVoidType.INSTANCE.asArrayType();
+ }
+
+ @Test
+ public void testAsDescribe() {
+ assertEquals("void", ResolvedVoidType.INSTANCE.describe());
+ }
+
+ @Test
+ public void testIsAssignableBy() {
+ try {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isAssignableBy(NullType.INSTANCE));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isAssignableBy(OBJECT));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isAssignableBy(STRING));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, ResolvedVoidType.INSTANCE.isAssignableBy(ResolvedVoidType.INSTANCE));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/WildcardUsageTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/WildcardUsageTest.java
new file mode 100644
index 000000000..705805dd9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/WildcardUsageTest.java
@@ -0,0 +1,422 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.model.typesystem;
+
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedTypeVariable;
+import com.github.javaparser.resolution.types.ResolvedWildcard;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Collections;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class WildcardUsageTest {
+
+ class Foo {
+ }
+
+ class Bar extends Foo {
+ }
+
+ private TypeSolver typeSolver;
+ private ReferenceTypeImpl foo;
+ private ReferenceTypeImpl bar;
+ private ReferenceTypeImpl object;
+ private ReferenceTypeImpl string;
+ private ResolvedWildcard unbounded = ResolvedWildcard.UNBOUNDED;
+ private ResolvedWildcard superFoo;
+ private ResolvedWildcard superBar;
+ private ResolvedWildcard extendsFoo;
+ private ResolvedWildcard extendsBar;
+ private ResolvedWildcard superA;
+ private ResolvedWildcard extendsA;
+ private ResolvedWildcard superString;
+ private ResolvedWildcard extendsString;
+ private ResolvedTypeVariable a;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ foo = new ReferenceTypeImpl(new ReflectionClassDeclaration(Foo.class, typeSolver), typeSolver);
+ bar = new ReferenceTypeImpl(new ReflectionClassDeclaration(Bar.class, typeSolver), typeSolver);
+ object = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver);
+ string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+ superFoo = ResolvedWildcard.superBound(foo);
+ superBar = ResolvedWildcard.superBound(bar);
+ extendsFoo = ResolvedWildcard.extendsBound(foo);
+ extendsBar = ResolvedWildcard.extendsBound(bar);
+ a = new ResolvedTypeVariable(ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList()));
+ superA = ResolvedWildcard.superBound(a);
+ extendsA = ResolvedWildcard.extendsBound(a);
+ superString = ResolvedWildcard.superBound(string);
+ extendsString = ResolvedWildcard.extendsBound(string);
+ }
+
+ @Test
+ public void testIsArray() {
+ assertEquals(false, unbounded.isArray());
+ assertEquals(false, superFoo.isArray());
+ assertEquals(false, superBar.isArray());
+ assertEquals(false, extendsFoo.isArray());
+ assertEquals(false, extendsBar.isArray());
+ }
+
+ @Test
+ public void testIsPrimitive() {
+ assertEquals(false, unbounded.isPrimitive());
+ assertEquals(false, superFoo.isPrimitive());
+ assertEquals(false, superBar.isPrimitive());
+ assertEquals(false, extendsFoo.isPrimitive());
+ assertEquals(false, extendsBar.isPrimitive());
+ }
+
+ @Test
+ public void testIsNull() {
+ assertEquals(false, unbounded.isNull());
+ assertEquals(false, superFoo.isNull());
+ assertEquals(false, superBar.isNull());
+ assertEquals(false, extendsFoo.isNull());
+ assertEquals(false, extendsBar.isNull());
+ }
+
+ @Test
+ public void testIsReference() {
+ assertEquals(true, unbounded.isReference());
+ assertEquals(true, superFoo.isReference());
+ assertEquals(true, superBar.isReference());
+ assertEquals(true, extendsFoo.isReference());
+ assertEquals(true, extendsBar.isReference());
+ }
+
+ @Test
+ public void testIsReferenceType() {
+ assertEquals(false, unbounded.isReferenceType());
+ assertEquals(false, superFoo.isReferenceType());
+ assertEquals(false, superBar.isReferenceType());
+ assertEquals(false, extendsFoo.isReferenceType());
+ assertEquals(false, extendsBar.isReferenceType());
+ }
+
+ @Test
+ public void testIsVoid() {
+ assertEquals(false, unbounded.isVoid());
+ assertEquals(false, superFoo.isVoid());
+ assertEquals(false, superBar.isVoid());
+ assertEquals(false, extendsFoo.isVoid());
+ assertEquals(false, extendsBar.isVoid());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ assertEquals(false, unbounded.isTypeVariable());
+ assertEquals(false, superFoo.isTypeVariable());
+ assertEquals(false, superBar.isTypeVariable());
+ assertEquals(false, extendsFoo.isTypeVariable());
+ assertEquals(false, extendsBar.isTypeVariable());
+ }
+
+ @Test
+ public void testIsWildcard() {
+ assertEquals(true, unbounded.isWildcard());
+ assertEquals(true, superFoo.isWildcard());
+ assertEquals(true, superBar.isWildcard());
+ assertEquals(true, extendsFoo.isWildcard());
+ assertEquals(true, extendsBar.isWildcard());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsArrayTypeUsage() {
+ unbounded.asArrayType();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsReferenceTypeUsage() {
+ unbounded.asReferenceType();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsTypeParameter() {
+ unbounded.asTypeParameter();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsPrimitive() {
+ unbounded.asPrimitive();
+ }
+
+ @Test
+ public void testAsWildcard() {
+ assertTrue(unbounded == unbounded.asWildcard());
+ assertTrue(superFoo == superFoo.asWildcard());
+ assertTrue(superBar == superBar.asWildcard());
+ assertTrue(extendsFoo == extendsFoo.asWildcard());
+ assertTrue(extendsBar == extendsBar.asWildcard());
+ }
+
+ @Test
+ public void testAsDescribe() {
+ assertEquals("?", unbounded.describe());
+ assertEquals("? super com.github.javaparser.symbolsolver.model.typesystem.WildcardUsageTest.Foo", superFoo.describe());
+ assertEquals("? super com.github.javaparser.symbolsolver.model.typesystem.WildcardUsageTest.Bar", superBar.describe());
+ assertEquals("? extends com.github.javaparser.symbolsolver.model.typesystem.WildcardUsageTest.Foo", extendsFoo.describe());
+ assertEquals("? extends com.github.javaparser.symbolsolver.model.typesystem.WildcardUsageTest.Bar", extendsBar.describe());
+ }
+
+ @Test
+ public void testReplaceParam() {
+ ResolvedTypeParameterDeclaration tpA = ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList());
+ ResolvedTypeParameterDeclaration tpB = ResolvedTypeParameterDeclaration.onType("B", "foo.Bar", Collections.emptyList());
+ assertTrue(unbounded == unbounded.replaceTypeVariables(tpA, string));
+ assertTrue(superFoo == superFoo.replaceTypeVariables(tpA, string));
+ assertTrue(extendsFoo == extendsFoo.replaceTypeVariables(tpA, string));
+ assertEquals(superString, superA.replaceTypeVariables(tpA, string));
+ assertEquals(extendsString, extendsA.replaceTypeVariables(tpA, string));
+ assertTrue(superA == superA.replaceTypeVariables(tpB, string));
+ assertTrue(extendsA == extendsA.replaceTypeVariables(tpB, string));
+ }
+
+ @Test
+ public void testIsAssignableBySimple() {
+ assertEquals(false, unbounded.isAssignableBy(object));
+ assertEquals(true, object.isAssignableBy(unbounded));
+ assertEquals(false, string.isAssignableBy(unbounded));
+ assertEquals(true, superFoo.isAssignableBy(foo));
+ assertEquals(false, foo.isAssignableBy(superFoo));
+ assertEquals(false, extendsFoo.isAssignableBy(foo));
+ assertEquals(true, foo.isAssignableBy(extendsFoo));
+ }
+
+ /*@Test
+ public void testIsAssignableByGenerics() {
+ assertEquals(false, listOfStrings.isAssignableBy(listOfWildcardExtendsString));
+ assertEquals(false, listOfStrings.isAssignableBy(listOfWildcardExtendsString));
+ assertEquals(true, listOfWildcardExtendsString.isAssignableBy(listOfStrings));
+ assertEquals(false, listOfWildcardExtendsString.isAssignableBy(listOfWildcardSuperString));
+ assertEquals(true, listOfWildcardSuperString.isAssignableBy(listOfStrings));
+ assertEquals(false, listOfWildcardSuperString.isAssignableBy(listOfWildcardExtendsString));
+ }
+
+ @Test
+ public void testIsAssignableByGenericsInheritance() {
+ assertEquals(true, collectionOfString.isAssignableBy(collectionOfString));
+ assertEquals(true, collectionOfString.isAssignableBy(listOfStrings));
+ assertEquals(true, collectionOfString.isAssignableBy(linkedListOfString));
+
+ assertEquals(false, listOfStrings.isAssignableBy(collectionOfString));
+ assertEquals(true, listOfStrings.isAssignableBy(listOfStrings));
+ assertEquals(true, listOfStrings.isAssignableBy(linkedListOfString));
+
+ assertEquals(false, linkedListOfString.isAssignableBy(collectionOfString));
+ assertEquals(false, linkedListOfString.isAssignableBy(listOfStrings));
+ assertEquals(true, linkedListOfString.isAssignableBy(linkedListOfString));
+ }
+
+ @Test
+ public void testGetAllAncestorsConsideringTypeParameters() {
+ assertTrue(linkedListOfString.getAllAncestors().contains(object));
+ assertTrue(linkedListOfString.getAllAncestors().contains(listOfStrings));
+ assertTrue(linkedListOfString.getAllAncestors().contains(collectionOfString));
+ assertFalse(linkedListOfString.getAllAncestors().contains(listOfA));
+ }
+
+ @Test
+ public void testGetAllAncestorsConsideringGenericsCases() {
+ ReferenceTypeUsage foo = new ReferenceTypeUsage(new ReflectionClassDeclaration(Foo.class, typeSolver), typeSolver);
+ ReferenceTypeUsage bar = new ReferenceTypeUsage(new ReflectionClassDeclaration(Bar.class, typeSolver), typeSolver);
+ ReferenceTypeUsage left, right;
+
+ //YES MoreBazzing<Foo, Bar> e1 = new MoreBazzing<Foo, Bar>();
+ assertEquals(true,
+ new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver)
+ .isAssignableBy(new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver))
+ );
+
+ //YES MoreBazzing<? extends Foo, Bar> e2 = new MoreBazzing<Foo, Bar>();
+ assertEquals(true,
+ new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(WildcardUsage.extendsBound(foo), bar), typeSolver)
+ .isAssignableBy(new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver))
+ );
+
+ //YES MoreBazzing<Foo, ? extends Bar> e3 = new MoreBazzing<Foo, Bar>();
+ assertEquals(true,
+ new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, WildcardUsage.extendsBound(bar)), typeSolver)
+ .isAssignableBy(new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver))
+ );
+
+ //YES MoreBazzing<? extends Foo, ? extends Foo> e4 = new MoreBazzing<Foo, Bar>();
+ assertEquals(true,
+ new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(WildcardUsage.extendsBound(foo), WildcardUsage.extendsBound(foo)), typeSolver)
+ .isAssignableBy(new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver))
+ );
+
+ //YES MoreBazzing<? extends Foo, ? extends Foo> e5 = new MoreBazzing<Bar, Bar>();
+ left = new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(WildcardUsage.extendsBound(foo), WildcardUsage.extendsBound(foo)), typeSolver);
+ right = new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(bar, bar), typeSolver);
+ assertEquals(true, left.isAssignableBy(right));
+
+ //YES Bazzer<Object, String, String> e6 = new MoreBazzing<String, Object>();
+ left = new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(object, string, string), typeSolver);
+ right = new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(string, object), typeSolver);
+ assertEquals(true, left.isAssignableBy(right));
+
+ //YES Bazzer<String,String,String> e7 = new MoreBazzing<String, String>();
+ assertEquals(true,
+ new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(string, string, string), typeSolver)
+ .isAssignableBy(new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(string, string), typeSolver))
+ );
+
+ //YES Bazzer<Bar,String,Foo> e8 = new MoreBazzing<Foo, Bar>();
+ assertEquals(true,
+ new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(bar, string, foo), typeSolver)
+ .isAssignableBy(new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(foo, bar), typeSolver))
+ );
+
+ //YES Bazzer<Foo,String,Bar> e9 = new MoreBazzing<Bar, Foo>();
+ assertEquals(true,
+ new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(foo, string, bar), typeSolver)
+ .isAssignableBy(new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(bar, foo), typeSolver))
+ );
+
+ //NO Bazzer<Bar,String,Foo> n1 = new MoreBazzing<Bar, Foo>();
+ assertEquals(false,
+ new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(bar,string,foo), typeSolver)
+ .isAssignableBy(new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(bar, foo), typeSolver))
+ );
+
+ //NO Bazzer<Bar,String,Bar> n2 = new MoreBazzing<Bar, Foo>();
+ assertEquals(false,
+ new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(bar, string, foo), typeSolver)
+ .isAssignableBy(new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(bar, foo), typeSolver))
+ );
+
+ //NO Bazzer<Foo,Object,Bar> n3 = new MoreBazzing<Bar, Foo>();
+ assertEquals(false,
+ new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(Bazzer.class, typeSolver),
+ ImmutableList.of(foo, object, bar), typeSolver)
+ .isAssignableBy(new ReferenceTypeUsage(
+ new ReflectionClassDeclaration(MoreBazzing.class, typeSolver),
+ ImmutableList.of(bar, foo), typeSolver))
+ );
+ }
+
+ @Test
+ public void charSequenceIsAssignableToObject() {
+ TypeSolver typeSolver = new JreTypeSolver();
+ ReferenceTypeUsage charSequence = new ReferenceTypeUsage(new ReflectionInterfaceDeclaration(CharSequence.class, typeSolver), typeSolver);
+ ReferenceTypeUsage object = new ReferenceTypeUsage(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver);
+ assertEquals(false, charSequence.isAssignableBy(object));
+ assertEquals(true, object.isAssignableBy(charSequence));
+ }
+
+ @Test
+ public void testGetFieldTypeExisting() {
+ class Foo<A> {
+ List<A> elements;
+ }
+
+ TypeSolver typeSolver = new JreTypeSolver();
+ ReferenceTypeUsage ref = new ReferenceTypeUsage(new ReflectionClassDeclaration(Foo.class, typeSolver), typeSolver);
+
+ assertEquals(true, ref.getFieldType("elements").isPresent());
+ assertEquals(true, ref.getFieldType("elements").get().isReferenceType());
+ assertEquals(List.class.getCanonicalName(), ref.getFieldType("elements").get().asReferenceType().getQualifiedName());
+ assertEquals(1, ref.getFieldType("elements").get().asReferenceType().typeParametersValues().size());
+ assertEquals(true, ref.getFieldType("elements").get().asReferenceType().typeParametersValues().get(0).isTypeParameter());
+ assertEquals("A", ref.getFieldType("elements").get().asReferenceType().typeParametersValues().get(0).asTypeParameter().getName());
+
+ ref = new ReferenceTypeUsage(new ReflectionClassDeclaration(Foo.class, typeSolver),
+ ImmutableList.of(new ReferenceTypeUsage(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)),
+ typeSolver);
+
+ assertEquals(true, ref.getFieldType("elements").isPresent());
+ assertEquals(true, ref.getFieldType("elements").get().isReferenceType());
+ assertEquals(List.class.getCanonicalName(), ref.getFieldType("elements").get().asReferenceType().getQualifiedName());
+ assertEquals(1, ref.getFieldType("elements").get().asReferenceType().typeParametersValues().size());
+ assertEquals(true, ref.getFieldType("elements").get().asReferenceType().typeParametersValues().get(0).isReferenceType());
+ assertEquals(String.class.getCanonicalName(), ref.getFieldType("elements").get().asReferenceType().typeParametersValues().get(0).asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetFieldTypeUnexisting() {
+ class Foo<A> {
+ List<A> elements;
+ }
+
+ TypeSolver typeSolver = new JreTypeSolver();
+ ReferenceTypeUsage ref = new ReferenceTypeUsage(new ReflectionClassDeclaration(Foo.class, typeSolver), typeSolver);
+
+ assertEquals(false, ref.getFieldType("bar").isPresent());
+
+ ref = new ReferenceTypeUsage(new ReflectionClassDeclaration(Foo.class, typeSolver),
+ ImmutableList.of(new ReferenceTypeUsage(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)),
+ typeSolver);
+
+ assertEquals(false, ref.getFieldType("bar").isPresent());
+ }*/
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassDeclarationTest.java
new file mode 100644
index 000000000..8de0e2391
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassDeclarationTest.java
@@ -0,0 +1,776 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.reflectionmodel;
+
+import com.github.javaparser.ast.AccessSpecifier;
+import com.github.javaparser.resolution.declarations.*;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.resolution.types.ResolvedTypeVariable;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import org.junit.Test;
+
+import java.io.Serializable;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class ReflectionClassDeclarationTest extends AbstractTest {
+
+ private TypeSolver typeResolver = new ReflectionTypeSolver(false);
+
+ @Test
+ public void testIsClass() {
+ class Foo<E> {
+ E field;
+ }
+ class Bar extends Foo<String> {
+ }
+
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+
+ ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
+ ResolvedClassDeclaration bar = new ReflectionClassDeclaration(Bar.class, typeResolver);
+
+ assertEquals(true, foo.isClass());
+ assertEquals(true, bar.isClass());
+ }
+
+ @Test
+ public void testGetSuperclassSimpleImplicit() {
+ class Foo<E> {
+ E field;
+ }
+
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+
+ ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
+
+ assertEquals(Object.class.getCanonicalName(), foo.getSuperClass().getQualifiedName());
+ assertEquals(Collections.emptyList(), foo.getSuperClass().typeParametersValues());
+ }
+
+ @Test
+ public void testGetSuperclassSimple() {
+ class Bar {
+ }
+ class Foo<E> extends Bar {
+ E field;
+ }
+
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+
+ ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
+
+ assertEquals("Bar", foo.getSuperClass().getTypeDeclaration().getName());
+ assertEquals(Collections.emptyList(), foo.getSuperClass().typeParametersValues());
+ }
+
+ @Test
+ public void testGetSuperclassWithGenericSimple() {
+ class Foo<E> {
+ E field;
+ }
+ class Bar extends Foo<String> {
+ }
+
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+
+ ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
+ ResolvedClassDeclaration bar = new ReflectionClassDeclaration(Bar.class, typeResolver);
+
+ assertEquals("Foo", bar.getSuperClass().getTypeDeclaration().getName());
+ assertEquals(1, bar.getSuperClass().typeParametersValues().size());
+ assertEquals(String.class.getCanonicalName(), bar.getSuperClass().typeParametersValues().get(0).asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetSuperclassWithGenericInheritanceSameName() {
+ class Foo<E> {
+ E field;
+ }
+ class Bar<E> extends Foo<E> {
+ }
+
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+
+ ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
+ ResolvedClassDeclaration bar = new ReflectionClassDeclaration(Bar.class, typeResolver);
+
+ assertEquals("Foo", bar.getSuperClass().getTypeDeclaration().getName());
+ assertEquals(1, bar.getSuperClass().typeParametersValues().size());
+ assertEquals(true, bar.getSuperClass().typeParametersValues().get(0).isTypeVariable());
+ assertEquals("E", bar.getSuperClass().typeParametersValues().get(0).asTypeParameter().getName());
+ assertEquals(true, bar.getSuperClass().typeParametersValues().get(0).asTypeParameter().declaredOnType());
+ assertEquals(false, bar.getSuperClass().typeParametersValues().get(0).asTypeParameter().declaredOnMethod());
+ assertTrue(bar.getSuperClass().typeParametersValues().get(0).asTypeParameter().getQualifiedName().endsWith("Bar.E"));
+ }
+
+ @Test
+ public void testGetSuperclassWithGenericInheritanceDifferentName() {
+ class Foo<E> {
+ E field;
+ }
+ class Bar extends Foo<String> {
+ }
+
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+
+ ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
+ ResolvedClassDeclaration bar = new ReflectionClassDeclaration(Bar.class, typeResolver);
+
+ assertEquals(true, foo.isClass());
+ assertEquals(true, bar.isClass());
+ }
+
+ @Test
+ public void testGetFieldDeclarationTypeVariableInheritance() {
+ class Foo<E> {
+ E field;
+ }
+ class Bar extends Foo<String> {
+ }
+
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+
+ ResolvedReferenceTypeDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
+ ResolvedReferenceTypeDeclaration bar = new ReflectionClassDeclaration(Bar.class, typeResolver);
+
+ ResolvedFieldDeclaration fooField = foo.getField("field");
+ assertEquals(true, fooField.getType().isTypeVariable());
+ assertEquals("E", fooField.getType().asTypeParameter().getName());
+
+ ResolvedFieldDeclaration barField = bar.getField("field");
+ assertEquals(true, barField.getType().isReferenceType());
+ assertEquals(String.class.getCanonicalName(), barField.getType().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetDeclaredMethods() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedReferenceTypeDeclaration string = new ReflectionClassDeclaration(String.class, typeResolver);
+ List<ResolvedMethodDeclaration> methods = string.getDeclaredMethods().stream()
+ .filter(m -> m.accessSpecifier() != AccessSpecifier.PRIVATE && m.accessSpecifier() != AccessSpecifier.DEFAULT)
+ .sorted((a, b) -> a.getName().compareTo(b.getName()))
+ .collect(Collectors.toList());
+ if (isJava9()) {
+ assertEquals(69, methods.size());
+ } else {
+ assertEquals(67, methods.size());
+ }
+ assertEquals("charAt", methods.get(0).getName());
+ assertEquals(false, methods.get(0).isAbstract());
+ assertEquals(1, methods.get(0).getNumberOfParams());
+ assertEquals("int", methods.get(0).getParam(0).getType().describe());
+ if (isJava9()) {
+ assertEquals("compareTo", methods.get(6).getName());
+ assertEquals(false, methods.get(6).isAbstract());
+ assertEquals(1, methods.get(6).getNumberOfParams());
+ assertEquals("java.lang.String", methods.get(6).getParam(0).getType().describe());
+ } else {
+ assertEquals("concat", methods.get(6).getName());
+ assertEquals(false, methods.get(6).isAbstract());
+ assertEquals(1, methods.get(6).getNumberOfParams());
+ assertEquals("java.lang.String", methods.get(6).getParam(0).getType().describe());
+ }
+ }
+
+ @Test
+ public void testGetInterfaces() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ // Serializable, Cloneable, List<E>, RandomAccess
+ assertEquals(ImmutableSet.of(Serializable.class.getCanonicalName(),
+ Cloneable.class.getCanonicalName(),
+ List.class.getCanonicalName(),
+ RandomAccess.class.getCanonicalName()),
+ arraylist.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllInterfaces() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ // Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess
+ assertEquals(ImmutableSet.of(Serializable.class.getCanonicalName(),
+ Cloneable.class.getCanonicalName(),
+ List.class.getCanonicalName(),
+ RandomAccess.class.getCanonicalName(),
+ Collection.class.getCanonicalName(),
+ Iterable.class.getCanonicalName()),
+ arraylist.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllSuperclasses() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ assertEquals(ImmutableSet.of(Object.class.getCanonicalName(),
+ AbstractCollection.class.getCanonicalName(),
+ AbstractList.class.getCanonicalName()),
+ arraylist.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ ResolvedClassDeclaration string = new ReflectionClassDeclaration(String.class, typeResolver);
+ assertEquals(ImmutableSet.of(Object.class.getCanonicalName()),
+ string.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetPackageName() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ assertEquals("java.util", arraylist.getPackageName());
+ ResolvedClassDeclaration string = new ReflectionClassDeclaration(String.class, typeResolver);
+ assertEquals("java.lang", string.getPackageName());
+ }
+
+ @Test
+ public void testGetClassName() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ assertEquals("ArrayList", arraylist.getClassName());
+ ResolvedClassDeclaration string = new ReflectionClassDeclaration(String.class, typeResolver);
+ assertEquals("String", string.getClassName());
+ }
+
+ @Test
+ public void testGetQualifiedName() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ assertEquals("java.util.ArrayList", arraylist.getQualifiedName());
+ ResolvedClassDeclaration string = new ReflectionClassDeclaration(String.class, typeResolver);
+ assertEquals("java.lang.String", string.getQualifiedName());
+ }
+
+ // solveMethod
+ // isAssignableBy
+ // canBeAssignedTo
+ // hasField
+ // solveSymbol
+ // solveType
+ // getDeclaredMethods
+ // getAllMethods
+
+ @Test
+ public void testGetAllFields() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ assertEquals(ImmutableSet.of("modCount", "serialVersionUID", "MAX_ARRAY_SIZE", "size", "elementData", "EMPTY_ELEMENTDATA", "DEFAULTCAPACITY_EMPTY_ELEMENTDATA", "DEFAULT_CAPACITY"),
+ arraylist.getAllFields().stream().map(ResolvedDeclaration::getName).collect(Collectors.toSet()));
+ }
+
+ ///
+ /// Test ancestors
+ ///
+
+ @Test
+ public void testAllAncestors() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
+ Map<String, ResolvedReferenceType> ancestors = new HashMap<>();
+ arraylist.getAllAncestors().forEach(a -> ancestors.put(a.getQualifiedName(), a));
+ assertEquals(9, ancestors.size());
+
+ ResolvedTypeVariable typeVariable = new ResolvedTypeVariable(arraylist.getTypeParameters().get(0));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(RandomAccess.class, typeResolver), typeResolver), ancestors.get("java.util.RandomAccess"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(AbstractCollection.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.util.AbstractCollection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(List.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.util.List"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Cloneable.class, typeResolver), typeResolver), ancestors.get("java.lang.Cloneable"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Collection.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.util.Collection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(AbstractList.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.util.AbstractList"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeResolver), typeResolver), ancestors.get("java.lang.Object"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Iterable.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.lang.Iterable"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Serializable.class, typeResolver), typeResolver), ancestors.get("java.io.Serializable"));
+ }
+
+ @Test
+ public void testGetSuperclassWithoutTypeParameters() {
+ ReflectionClassDeclaration compilationUnit = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals("com.github.javaparser.ast.Node", compilationUnit.getSuperClass().getQualifiedName());
+ }
+
+ @Test
+ public void testGetSuperclassWithTypeParameters() {
+ ReflectionClassDeclaration compilationUnit = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals("com.github.javaparser.ast.body.CallableDeclaration", compilationUnit.getSuperClass().getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", compilationUnit.getSuperClass().typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.CallableDeclaration.T").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllSuperclassesWithoutTypeParameters() {
+ ReflectionClassDeclaration cu = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllSuperclassesWithTypeParameters() {
+ ReflectionClassDeclaration constructorDeclaration = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(4, constructorDeclaration.getAllSuperClasses().size());
+ assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("com.github.javaparser.ast.body.CallableDeclaration")));
+ assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("com.github.javaparser.ast.body.BodyDeclaration")));
+ assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("com.github.javaparser.ast.Node")));
+ assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("java.lang.Object")));
+
+ ResolvedReferenceType ancestor;
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(0);
+ assertEquals("com.github.javaparser.ast.body.CallableDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.CallableDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(1);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(2);
+ assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
+
+ ancestor = constructorDeclaration.getAllSuperClasses().get(3);
+ assertEquals("java.lang.Object", ancestor.getQualifiedName());
+ }
+
+ @Test
+ public void testGetInterfacesWithoutParameters() {
+ ReflectionClassDeclaration compilationUnit = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of(), compilationUnit.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+
+ ReflectionClassDeclaration coid = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.nodeTypes.NodeWithExtends",
+ "com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier",
+ "com.github.javaparser.ast.nodeTypes.NodeWithConstructors",
+ "com.github.javaparser.ast.nodeTypes.NodeWithImplements",
+ "com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier",
+ "com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters",
+ "com.github.javaparser.resolution.Resolvable"),
+ coid.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetInterfacesWithParameters() {
+ ReflectionClassDeclaration constructorDeclaration = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ System.out.println(constructorDeclaration.getInterfaces().stream().map(t -> t.getQualifiedName()).collect(Collectors.toList()));
+ assertEquals(8, constructorDeclaration.getInterfaces().size());
+
+ ResolvedReferenceType interfaze;
+
+ interfaze = constructorDeclaration.getInterfaces().get(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getInterfaces().get(7);
+ assertEquals("com.github.javaparser.resolution.Resolvable", interfaze.getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllInterfacesWithoutParameters() {
+ ReflectionClassDeclaration compilationUnit = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.visitor.Visitable", "com.github.javaparser.ast.observer.Observable",
+ "com.github.javaparser.HasParentNode", "com.github.javaparser.ast.nodeTypes.NodeWithRange",
+ "com.github.javaparser.ast.nodeTypes.NodeWithTokenRange").stream().sorted().collect(Collectors.toList()),
+ compilationUnit.getAllInterfaces().stream().map(i -> i.getQualifiedName()).sorted().collect(Collectors.toList()));
+
+ ReflectionClassDeclaration coid = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
+ assertEquals(ImmutableSet.of("com.github.javaparser.ast.nodeTypes.NodeWithExtends",
+ "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations",
+ "java.lang.Cloneable",
+ "com.github.javaparser.HasParentNode",
+ "com.github.javaparser.ast.visitor.Visitable",
+ "com.github.javaparser.ast.nodeTypes.NodeWithImplements",
+ "com.github.javaparser.ast.nodeTypes.NodeWithSimpleName",
+ "com.github.javaparser.ast.nodeTypes.NodeWithModifiers",
+ "com.github.javaparser.ast.nodeTypes.NodeWithJavadoc",
+ "com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters",
+ "com.github.javaparser.ast.nodeTypes.NodeWithMembers",
+ "com.github.javaparser.ast.observer.Observable",
+ "com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier",
+ "com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier",
+ "com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier",
+ "com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier",
+ "com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier",
+ "com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier",
+ "com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers",
+ "com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier",
+ "com.github.javaparser.ast.nodeTypes.NodeWithRange",
+ "com.github.javaparser.ast.nodeTypes.NodeWithTokenRange",
+ "com.github.javaparser.ast.nodeTypes.NodeWithConstructors",
+ "com.github.javaparser.resolution.Resolvable"), coid.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllInterfacesWithParameters() {
+ ReflectionClassDeclaration constructorDeclaration = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ List<ResolvedReferenceType> interfaces = constructorDeclaration.getAllInterfaces();
+ assertEquals(34, interfaces.size());
+
+ ResolvedReferenceType interfaze;
+ int i = 0;
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.resolution.Resolvable", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("java.lang.Cloneable", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.HasParentNode", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.Node", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.HasParentNode.T").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.observer.Observable", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.visitor.Visitable", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithRange", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.Node", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithRange.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTokenRange", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.Node", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTokenRange.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier.N").get().asReferenceType().getQualifiedName());
+
+ interfaze = constructorDeclaration.getAllInterfaces().get(i++);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier", interfaze.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier.N").get().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void testGetAncestorsWithTypeParameters() {
+ ReflectionClassDeclaration constructorDeclaration = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+ assertEquals(9, constructorDeclaration.getAncestors().size());
+
+ ResolvedReferenceType ancestor;
+ List<ResolvedReferenceType> ancestors = constructorDeclaration.getAncestors();
+ ancestors.sort(Comparator.comparing(ResolvedReferenceType::getQualifiedName));
+
+ ancestor = ancestors.get(0);
+ assertEquals("com.github.javaparser.ast.body.CallableDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.CallableDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.get(1);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.get(2);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.get(3);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.get(4);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.get(5);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.get(6);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.get(7);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.get(8);
+ assertEquals("com.github.javaparser.resolution.Resolvable", ancestor.getQualifiedName());
+ }
+
+ @Test
+ public void testGetAllAncestorsWithoutTypeParameters() {
+ ReflectionClassDeclaration cu = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.CompilationUnit");
+ assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.visitor.Visitable",
+ "com.github.javaparser.ast.observer.Observable", "com.github.javaparser.ast.Node",
+ "com.github.javaparser.ast.nodeTypes.NodeWithTokenRange", "java.lang.Object", "com.github.javaparser.HasParentNode",
+ "com.github.javaparser.ast.nodeTypes.NodeWithRange"), cu.getAllAncestors().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
+ }
+
+ @Test
+ public void testGetAllAncestorsWithTypeParameters() {
+ ReflectionClassDeclaration constructorDeclaration = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ ResolvedReferenceType ancestor;
+ List<ResolvedReferenceType> ancestors = constructorDeclaration.getAllAncestors();
+ ancestors.sort(Comparator.comparing(ResolvedReferenceType::getQualifiedName));
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.HasParentNode", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.Node", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.HasParentNode.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.body.CallableDeclaration", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.CallableDeclaration.T").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavadoc.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithRange", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.Node", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithRange.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTokenRange", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.Node", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTokenRange.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier", ancestor.getQualifiedName());
+ assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier.N").get().asReferenceType().getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.observer.Observable", ancestor.getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.ast.visitor.Visitable", ancestor.getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("com.github.javaparser.resolution.Resolvable", ancestor.getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("java.lang.Cloneable", ancestor.getQualifiedName());
+
+ ancestor = ancestors.remove(0);
+ assertEquals("java.lang.Object", ancestor.getQualifiedName());
+
+ assertTrue(ancestors.isEmpty());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumDeclarationTest.java
new file mode 100644
index 000000000..00379b0ba
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumDeclarationTest.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.reflectionmodel;
+
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class ReflectionEnumDeclarationTest extends AbstractTest {
+
+ private TypeSolver typeSolver = new ReflectionTypeSolver(false);
+
+ ///
+ /// Test misc
+ ///
+
+ @Test
+ public void testIsClass() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(false, modifier.isClass());
+ }
+
+ @Test
+ public void testIsInterface() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(false, modifier.isInterface());
+ }
+
+ @Test
+ public void testIsEnum() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(true, modifier.isEnum());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(false, modifier.isTypeParameter());
+ }
+
+ @Test
+ public void testIsType() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(true, modifier.isType());
+ }
+
+ @Test
+ public void testAsType() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(modifier, modifier.asType());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsClass() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ modifier.asClass();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsInterface() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ modifier.asInterface();
+ }
+
+ @Test
+ public void testAsEnum() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals(modifier, modifier.asEnum());
+ }
+
+ @Test
+ public void testGetPackageName() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals("com.github.javaparser.ast", modifier.getPackageName());
+ }
+
+ @Test
+ public void testGetClassName() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals("Modifier", modifier.getClassName());
+ }
+
+ @Test
+ public void testGetQualifiedName() {
+ ReflectionEnumDeclaration modifier = (ReflectionEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier");
+ assertEquals("com.github.javaparser.ast.Modifier", modifier.getQualifiedName());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionInterfaceDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionInterfaceDeclarationTest.java
new file mode 100644
index 000000000..a52661078
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionInterfaceDeclarationTest.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.reflectionmodel;
+
+import com.github.javaparser.resolution.declarations.ResolvedInterfaceDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.resolution.types.ResolvedTypeVariable;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Test;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertEquals;
+
+public class ReflectionInterfaceDeclarationTest extends AbstractTest {
+
+ @Test
+ public void testGetDeclaredMethods() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedReferenceTypeDeclaration list = new ReflectionInterfaceDeclaration(List.class, typeResolver);
+ List<ResolvedMethodDeclaration> methods = list.getDeclaredMethods().stream()
+ .sorted((a, b) -> a.getName().compareTo(b.getName()))
+ .collect(Collectors.toList());
+ if (isJava9()) {
+ assertEquals(40, methods.size());
+ assertEquals("clear", methods.get(4).getName());
+ assertEquals(true, methods.get(4).isAbstract());
+ assertEquals(0, methods.get(4).getNumberOfParams());
+ assertEquals("contains", methods.get(5).getName());
+ assertEquals(true, methods.get(5).isAbstract());
+ assertEquals(1, methods.get(5).getNumberOfParams());
+ assertEquals(true, methods.get(5).getParam(0).getType().isReferenceType());
+ assertEquals(Object.class.getCanonicalName(), methods.get(5).getParam(0).getType().asReferenceType().getQualifiedName());
+ } else {
+ assertEquals(28, methods.size());
+ assertEquals("clear", methods.get(4).getName());
+ assertEquals(true, methods.get(4).isAbstract());
+ assertEquals(0, methods.get(4).getNumberOfParams());
+ assertEquals("contains", methods.get(5).getName());
+ assertEquals(true, methods.get(5).isAbstract());
+ assertEquals(1, methods.get(5).getNumberOfParams());
+ assertEquals(true, methods.get(5).getParam(0).getType().isReferenceType());
+ assertEquals(Object.class.getCanonicalName(), methods.get(5).getParam(0).getType().asReferenceType().getQualifiedName());
+ }
+ }
+
+ @Test
+ public void testAllAncestors() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+ ResolvedInterfaceDeclaration list = new ReflectionInterfaceDeclaration(List.class, typeResolver);
+ Map<String, ResolvedReferenceType> ancestors = new HashMap<>();
+ list.getAllAncestors().forEach(a -> ancestors.put(a.getQualifiedName(), a));
+ assertEquals(3, ancestors.size());
+
+ ResolvedTypeVariable typeVariable = new ResolvedTypeVariable(list.getTypeParameters().get(0));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Collection.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.util.Collection"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeResolver), typeResolver), ancestors.get("java.lang.Object"));
+ assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Iterable.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.lang.Iterable"));
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodDeclarationTest.java
new file mode 100644
index 000000000..8a5be170f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodDeclarationTest.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.reflectionmodel;
+
+import com.github.javaparser.resolution.declarations.ResolvedClassDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedInterfaceDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+
+public class ReflectionMethodDeclarationTest {
+
+ @Test
+ public void testGetSignature() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+
+ ResolvedClassDeclaration object = new ReflectionClassDeclaration(Object.class, typeResolver);
+ ResolvedInterfaceDeclaration list = new ReflectionInterfaceDeclaration(List.class, typeResolver);
+
+ ResolvedMethodDeclaration hashCode = object.getAllMethods().stream().filter(m -> m.getName().equals("hashCode")).findFirst().get().getDeclaration();
+ ResolvedMethodDeclaration equals = object.getAllMethods().stream().filter(m -> m.getName().equals("equals")).findFirst().get().getDeclaration();
+ ResolvedMethodDeclaration containsAll = list.getAllMethods().stream().filter(m -> m.getName().equals("containsAll")).findFirst().get().getDeclaration();
+ ResolvedMethodDeclaration subList = list.getAllMethods().stream().filter(m -> m.getName().equals("subList")).findFirst().get().getDeclaration();
+
+ assertEquals("hashCode()", hashCode.getSignature());
+ assertEquals("equals(java.lang.Object)", equals.getSignature());
+ assertEquals("containsAll(java.util.Collection<? extends java.lang.Object>)", containsAll.getSignature());
+ assertEquals("subList(int, int)", subList.getSignature());
+ }
+
+ @Test
+ public void testGetGenericReturnType() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+
+ ResolvedInterfaceDeclaration map = new ReflectionInterfaceDeclaration(Map.class, typeResolver);
+
+ ResolvedMethodDeclaration put = map.getAllMethods().stream().filter(m -> m.getName().equals("put")).findFirst().get().getDeclaration();
+ assertEquals(true, put.getReturnType().isTypeVariable());
+ assertEquals(true, put.getReturnType().asTypeParameter().declaredOnType());
+ assertEquals("java.util.Map.V", put.getReturnType().asTypeParameter().getQualifiedName());
+ }
+
+ @Test
+ public void testGetGenericParameters() {
+ TypeSolver typeResolver = new ReflectionTypeSolver();
+
+ ResolvedInterfaceDeclaration map = new ReflectionInterfaceDeclaration(Map.class, typeResolver);
+
+ ResolvedMethodDeclaration put = map.getAllMethods().stream().filter(m -> m.getName().equals("put")).findFirst().get().getDeclaration();
+ assertEquals(true, put.getParam(0).getType().isTypeVariable());
+ assertEquals(true, put.getParam(0).getType().asTypeParameter().declaredOnType());
+ assertEquals("java.util.Map.K", put.getParam(0).getType().asTypeParameter().getQualifiedName());
+
+ assertEquals(true, put.getParam(1).getType().isTypeVariable());
+ assertEquals(true, put.getParam(1).getType().asTypeParameter().declaredOnType());
+ assertEquals("java.util.Map.V", put.getParam(1).getType().asTypeParameter().getQualifiedName());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AbstractResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AbstractResolutionTest.java
new file mode 100644
index 000000000..ded9267d8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AbstractResolutionTest.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.symbolsolver.AbstractTest;
+
+import java.io.InputStream;
+
+/**
+ * @author Federico Tomassetti
+ */
+public abstract class AbstractResolutionTest extends AbstractTest {
+
+ protected CompilationUnit parseSampleWithStandardExtension(String sampleName) {
+ return parseSample(sampleName, "java");
+ }
+
+ protected CompilationUnit parseSample(String sampleName) {
+ return parseSample(sampleName, "java.txt");
+ }
+
+ private CompilationUnit parseSample(String sampleName, String extension) {
+ InputStream is = this.getClass().getClassLoader().getResourceAsStream(sampleName + "." + extension);
+ if (is == null) {
+ throw new RuntimeException("Unable to find sample " + sampleName);
+ }
+ return JavaParser.parse(is);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseJavaParserTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseJavaParserTest.java
new file mode 100644
index 000000000..7b9f61b29
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseJavaParserTest.java
@@ -0,0 +1,267 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.SlowTest;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.SourceFileInfoExtractor;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+@Category(SlowTest.class)
+public class AnalyseJavaParserTest extends AbstractTest {
+
+ private static final File src = adaptPath(new File("src/test/test_sourcecode/javaparser_src/proper_source"));
+
+ private SourceFileInfoExtractor getSourceFileInfoExtractor() {
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ combinedTypeSolver.add(new JavaParserTypeSolver(src));
+ combinedTypeSolver.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_src/generated"))));
+ SourceFileInfoExtractor sourceFileInfoExtractor = new SourceFileInfoExtractor();
+ sourceFileInfoExtractor.setTypeSolver(combinedTypeSolver);
+ sourceFileInfoExtractor.setPrintFileName(false);
+ return sourceFileInfoExtractor;
+ }
+
+ static String readFile(File file)
+ throws IOException {
+ byte[] encoded = Files.readAllBytes(Paths.get(file.getAbsolutePath()));
+ return new String(encoded, StandardCharsets.UTF_8);
+ }
+
+ private static final boolean DEBUG = true;
+
+ private void parse(String fileName) throws IOException, ParseException {
+ File sourceFile = new File(src.getAbsolutePath() + "/" + fileName + ".java");
+ SourceFileInfoExtractor sourceFileInfoExtractor = getSourceFileInfoExtractor();
+ OutputStream outErrStream = new ByteArrayOutputStream();
+ PrintStream outErr = new PrintStream(outErrStream);
+
+ sourceFileInfoExtractor.setOut(outErr);
+ sourceFileInfoExtractor.setErr(outErr);
+ sourceFileInfoExtractor.solve(sourceFile);
+ String output = outErrStream.toString();
+
+ String path = "src/test/resources/javaparser_expected_output/" + fileName.replaceAll("/", "_") + ".txt";
+ File dstFile = adaptPath(new File(path));
+
+ if (DEBUG && (sourceFileInfoExtractor.getKo() != 0 || sourceFileInfoExtractor.getUnsupported() != 0)) {
+ System.err.println(output);
+ }
+
+ assertTrue("No failures expected when analyzing " + path, 0 == sourceFileInfoExtractor.getKo());
+ assertTrue("No UnsupportedOperationException expected when analyzing " + path, 0 == sourceFileInfoExtractor.getUnsupported());
+
+ String expected = readFile(dstFile);
+
+ String[] outputLines = output.split("\n");
+ String[] expectedLines = expected.split("\n");
+
+ for (int i = 0; i < Math.min(outputLines.length, expectedLines.length); i++) {
+ assertEquals("Line " + (i + 1) + " of " + path + " is different from what is expected", expectedLines[i].trim(), outputLines[i].trim());
+ }
+
+ assertEquals(expectedLines.length, outputLines.length);
+
+ JavaParserFacade.clearInstances();
+
+ // If we need to update the file uncomment these lines
+ //PrintWriter writer = new PrintWriter(dstFile.getAbsoluteFile(), "UTF-8");
+ //writer.print(output);
+ //writer.close();
+ }
+
+ @Test
+ public void parsePositionUtils() throws IOException, ParseException {
+ parse("com/github/javaparser/PositionUtils");
+ }
+
+ @Test
+ public void parseJavaParser() throws IOException, ParseException {
+ parse("com/github/javaparser/JavaParser");
+ }
+
+ @Test
+ public void parseStatement() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/stmt/Statement");
+ }
+
+ @Test
+ public void parseCatchClause() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/stmt/CatchClause");
+ }
+
+ @Test
+ public void parseStatements() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/stmt/LabeledStmt");
+ parse("com/github/javaparser/ast/stmt/BreakStmt");
+ parse("com/github/javaparser/ast/stmt/ReturnStmt");
+ parse("com/github/javaparser/ast/stmt/DoStmt");
+ parse("com/github/javaparser/ast/stmt/AssertStmt");
+ parse("com/github/javaparser/ast/stmt/ContinueStmt");
+ parse("com/github/javaparser/ast/stmt/BlockStmt");
+ parse("com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt");
+ parse("com/github/javaparser/ast/stmt/ExpressionStmt");
+ parse("com/github/javaparser/ast/stmt/EmptyStmt");
+ parse("com/github/javaparser/ast/stmt/SwitchStmt");
+ parse("com/github/javaparser/ast/stmt/IfStmt");
+ parse("com/github/javaparser/ast/stmt/SwitchEntryStmt");
+ parse("com/github/javaparser/ast/stmt/SynchronizedStmt");
+ parse("com/github/javaparser/ast/stmt/ForeachStmt");
+ parse("com/github/javaparser/ast/stmt/ForStmt");
+ parse("com/github/javaparser/ast/stmt/WhileStmt");
+ parse("com/github/javaparser/ast/stmt/ThrowStmt");
+ parse("com/github/javaparser/ast/stmt/TryStmt");
+ parse("com/github/javaparser/ast/stmt/TypeDeclarationStmt");
+ }
+
+ @Test
+ public void parseExpressions() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/expr/NameExpr");
+ parse("com/github/javaparser/ast/expr/FieldAccessExpr");
+ parse("com/github/javaparser/ast/expr/CharLiteralExpr");
+ parse("com/github/javaparser/ast/expr/IntegerLiteralMinValueExpr");
+ parse("com/github/javaparser/ast/expr/IntegerLiteralExpr");
+ parse("com/github/javaparser/ast/expr/ArrayCreationExpr");
+ parse("com/github/javaparser/ast/expr/VariableDeclarationExpr");
+ parse("com/github/javaparser/ast/expr/SuperExpr");
+ parse("com/github/javaparser/ast/expr/ArrayInitializerExpr");
+ parse("com/github/javaparser/ast/expr/EnclosedExpr");
+ parse("com/github/javaparser/ast/expr/Expression");
+ parse("com/github/javaparser/ast/expr/SingleMemberAnnotationExpr");
+ parse("com/github/javaparser/ast/expr/MethodReferenceExpr");
+ parse("com/github/javaparser/ast/expr/ThisExpr");
+ parse("com/github/javaparser/ast/expr/LiteralExpr");
+ parse("com/github/javaparser/ast/expr/AnnotationExpr");
+ parse("com/github/javaparser/ast/expr/InstanceOfExpr");
+ parse("com/github/javaparser/ast/expr/LongLiteralExpr");
+ parse("com/github/javaparser/ast/expr/StringLiteralExpr");
+ parse("com/github/javaparser/ast/expr/NullLiteralExpr");
+ parse("com/github/javaparser/ast/expr/ObjectCreationExpr");
+ parse("com/github/javaparser/ast/expr/TypeExpr");
+ parse("com/github/javaparser/ast/expr/DoubleLiteralExpr");
+ parse("com/github/javaparser/ast/expr/LongLiteralMinValueExpr");
+ parse("com/github/javaparser/ast/expr/MarkerAnnotationExpr");
+ parse("com/github/javaparser/ast/expr/LambdaExpr");
+ parse("com/github/javaparser/ast/expr/AssignExpr");
+ parse("com/github/javaparser/ast/expr/NormalAnnotationExpr");
+ parse("com/github/javaparser/ast/expr/QualifiedNameExpr");
+ parse("com/github/javaparser/ast/expr/MemberValuePair");
+ parse("com/github/javaparser/ast/expr/ArrayAccessExpr");
+ parse("com/github/javaparser/ast/expr/ClassExpr");
+ parse("com/github/javaparser/ast/expr/MethodCallExpr");
+ parse("com/github/javaparser/ast/expr/ConditionalExpr");
+ parse("com/github/javaparser/ast/expr/CastExpr");
+ parse("com/github/javaparser/ast/expr/BooleanLiteralExpr");
+ parse("com/github/javaparser/ast/expr/BinaryExpr");
+ parse("com/github/javaparser/ast/expr/UnaryExpr");
+ }
+
+ @Test
+ public void parseTypes() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/type/ClassOrInterfaceType");
+ parse("com/github/javaparser/ast/type/PrimitiveType");
+ parse("com/github/javaparser/ast/type/WildcardType");
+ parse("com/github/javaparser/ast/type/UnknownType");
+ parse("com/github/javaparser/ast/type/ReferenceType");
+ parse("com/github/javaparser/ast/type/VoidType");
+ parse("com/github/javaparser/ast/type/Type");
+ }
+
+ @Test
+ public void parseVisitors() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/visitor/EqualsVisitor");
+ parse("com/github/javaparser/ast/visitor/ModifierVisitorAdapter");
+ parse("com/github/javaparser/ast/visitor/DumpVisitor");
+ parse("com/github/javaparser/ast/visitor/VoidVisitor");
+ parse("com/github/javaparser/ast/visitor/GenericVisitor");
+ parse("com/github/javaparser/ast/visitor/VoidVisitorAdapter");
+ parse("com/github/javaparser/ast/visitor/GenericVisitorAdapter");
+ }
+
+ @Test
+ public void parseCloneVisitor() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/visitor/CloneVisitor");
+ }
+
+ @Test
+ public void parseSourcesHelper() throws IOException, ParseException {
+ parse("com/github/javaparser/SourcesHelper");
+ }
+
+ @Test
+ public void parseComments() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/comments/LineComment");
+ parse("com/github/javaparser/ast/comments/Comment");
+ parse("com/github/javaparser/ast/comments/CommentsParser");
+ parse("com/github/javaparser/ast/comments/JavadocComment");
+ parse("com/github/javaparser/ast/comments/BlockComment");
+ parse("com/github/javaparser/ast/comments/CommentsCollection");
+ }
+
+ @Test
+ public void parseTheRest() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/internal/Utils");
+ parse("com/github/javaparser/ast/body/AnnotationMemberDeclaration");
+ parse("com/github/javaparser/ast/body/EnumDeclaration");
+ parse("com/github/javaparser/ast/body/Parameter");
+ parse("com/github/javaparser/ast/body/EnumConstantDeclaration");
+ parse("com/github/javaparser/ast/body/VariableDeclarator");
+ parse("com/github/javaparser/ast/body/TypeDeclaration");
+ parse("com/github/javaparser/ast/body/EmptyMemberDeclaration");
+ parse("com/github/javaparser/ast/body/ModifierSet");
+ parse("com/github/javaparser/ast/body/VariableDeclaratorId");
+ parse("com/github/javaparser/ast/body/BaseParameter");
+ parse("com/github/javaparser/ast/body/AnnotableNode");
+ parse("com/github/javaparser/ast/body/AnnotationDeclaration");
+ parse("com/github/javaparser/ast/body/MethodDeclaration");
+ parse("com/github/javaparser/ast/body/EmptyTypeDeclaration");
+ parse("com/github/javaparser/ast/body/InitializerDeclaration");
+ parse("com/github/javaparser/ast/body/BodyDeclaration");
+ parse("com/github/javaparser/ast/body/FieldDeclaration");
+ parse("com/github/javaparser/ast/body/ConstructorDeclaration");
+ parse("com/github/javaparser/ast/body/WithDeclaration");
+ parse("com/github/javaparser/ast/body/MultiTypeParameter");
+ parse("com/github/javaparser/ast/body/ClassOrInterfaceDeclaration");
+ parse("com/github/javaparser/ast/TreeVisitor");
+ parse("com/github/javaparser/ast/PackageDeclaration");
+ parse("com/github/javaparser/ast/DocumentableNode");
+ parse("com/github/javaparser/ast/NamedNode");
+ parse("com/github/javaparser/ast/Node");
+ parse("com/github/javaparser/ast/AccessSpecifier");
+ parse("com/github/javaparser/ast/CompilationUnit");
+ parse("com/github/javaparser/ast/TypeParameter");
+ parse("com/github/javaparser/ast/ImportDeclaration");
+ parse("com/github/javaparser/Position");
+ parse("com/github/javaparser/ASTHelper");
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseJavaSymbolSolver060Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseJavaSymbolSolver060Test.java
new file mode 100644
index 000000000..1cce12aa8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseJavaSymbolSolver060Test.java
@@ -0,0 +1,349 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.SlowTest;
+import com.github.javaparser.symbolsolver.SourceFileInfoExtractor;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * We analyze JavaParser version 0.6.0.
+ */
+@Category(SlowTest.class)
+public class AnalyseJavaSymbolSolver060Test extends AbstractResolutionTest {
+
+ private static final File root = adaptPath(new File("src/test/resources/javasymbolsolver_0_6_0"));
+ private static final File src = adaptPath(new File(root + "/src"));
+ private static final File lib = adaptPath(new File(root + "/lib"));
+ private static final File expectedOutput = adaptPath(new File(root + "/expected_output"));
+
+ private static SourceFileInfoExtractor getSourceFileInfoExtractor() {
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ combinedTypeSolver.add(new JavaParserTypeSolver(new File(src + "/java-symbol-solver-core")));
+ combinedTypeSolver.add(new JavaParserTypeSolver(new File(src + "/java-symbol-solver-logic")));
+ combinedTypeSolver.add(new JavaParserTypeSolver(new File(src + "/java-symbol-solver-model")));
+ try {
+ combinedTypeSolver.add(new JarTypeSolver(lib + "/guava-21.0.jar"));
+ combinedTypeSolver.add(new JarTypeSolver(lib + "/javaparser-core-3.3.0.jar"));
+ combinedTypeSolver.add(new JarTypeSolver(lib + "/javaslang-2.0.3.jar"));
+ combinedTypeSolver.add(new JarTypeSolver(lib + "/javassist-3.19.0-GA.jar"));
+ } catch (IOException e) {
+ Assert.fail("one or more jar dependencies could not be found.");
+ e.printStackTrace();
+ }
+ SourceFileInfoExtractor sourceFileInfoExtractor = new SourceFileInfoExtractor();
+ sourceFileInfoExtractor.setTypeSolver(combinedTypeSolver);
+ sourceFileInfoExtractor.setPrintFileName(false);
+ sourceFileInfoExtractor.setVerbose(true);
+ return sourceFileInfoExtractor;
+ }
+
+ private static SourceFileInfoExtractor sourceFileInfoExtractor = getSourceFileInfoExtractor();
+
+ static String readFile(File file)
+ throws IOException {
+ byte[] encoded = Files.readAllBytes(Paths.get(file.getAbsolutePath()));
+ return new String(encoded, StandardCharsets.UTF_8);
+ }
+
+ private static final boolean DEBUG = true;
+
+ /**
+ * @param projectName is one of "java-symbol-solver-core", "java-symbol-solver-logic", "java-symbol-solver-model"
+ * @param fileName describes the file being analyzed
+ * @throws IOException
+ * @throws ParseException
+ */
+ private void parse(String projectName, String fileName) throws IOException, ParseException {
+ File sourceFile = new File(src.getAbsolutePath() + "/" + projectName + "/" + fileName + ".java");
+ OutputStream outErrStream = new ByteArrayOutputStream();
+ PrintStream outErr = new PrintStream(outErrStream);
+
+ sourceFileInfoExtractor.setOut(outErr);
+ sourceFileInfoExtractor.setErr(outErr);
+ sourceFileInfoExtractor.solveMethodCalls(sourceFile);
+ String output = outErrStream.toString();
+
+ String path = adaptPath(expectedOutput).getPath() + "/" + projectName + "/" + fileName.replaceAll("/", "_") + ".txt";
+ File dstFile = new File(path);
+
+ if (isJava9()) {
+ String path9 = adaptPath(expectedOutput).getPath() + "/" + projectName + "/" + fileName.replaceAll("/", "_") + "_J9.txt";
+ File dstFile9 = new File(path9);
+ if (dstFile9.exists()) {
+ path = path9;
+ dstFile = dstFile9;
+ }
+ }
+
+ if (DEBUG && (sourceFileInfoExtractor.getKo() != 0 || sourceFileInfoExtractor.getUnsupported() != 0)) {
+ System.err.println(output);
+ }
+
+ assertTrue("No failures expected when analyzing " + path, 0 == sourceFileInfoExtractor.getKo());
+ assertTrue("No UnsupportedOperationException expected when analyzing " + path, 0 == sourceFileInfoExtractor.getUnsupported());
+
+ if (!dstFile.exists()) {
+ // If we need to update the file uncomment these lines
+// PrintWriter writer = new PrintWriter(dstFile.getAbsoluteFile(), "UTF-8");
+// writer.print(output);
+// writer.close();
+ }
+
+ String expected = readFile(dstFile);
+
+ String[] outputLines = output.split("\n");
+ String[] expectedLines = expected.split("\n");
+
+ for (int i = 0; i < Math.min(outputLines.length, expectedLines.length); i++) {
+ assertEquals("Line " + (i + 1) + " of " + path + " is different from what is expected", expectedLines[i].trim(), outputLines[i].trim());
+ }
+
+ assertEquals(expectedLines.length, outputLines.length);
+
+ JavaParserFacade.clearInstances();
+ }
+
+ @Test
+ public void parseCoreSourceFileInfoExtractor() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/SourceFileInfoExtractor");
+ }
+
+ @Test
+ public void parseCoreCoreResolution() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/core/resolution/Context");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/core/resolution/ContextHelper");
+ }
+
+ @Test
+ public void parseCoreDeclarationsCommon() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/declarations/common/MethodDeclarationCommonLogic");
+ }
+
+ @Test
+ public void parseCoreJavaparserNavigator() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparser/Navigator");
+ }
+
+ @Test
+ public void parseCoreJavaparsermodel() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/DefaultVisitorAdapter");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/JavaParserFacade");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/JavaParserFactory");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/LambdaArgumentTypePlaceholder");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/TypeExtractor");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/UnsolvedSymbolException");
+ }
+
+ @Test
+ public void parseCoreJavaparsermodelContexts() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/AbstractJavaParserContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/AbstractMethodLikeDeclarationContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/AnonymousClassDeclarationContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/CatchClauseContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/ClassOrInterfaceDeclarationContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/CompilationUnitContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/ConstructorContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/ContextHelper");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/EnumDeclarationContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/FieldAccessContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/ForechStatementContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/ForStatementContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/JavaParserTypeDeclarationAdapter");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/LambdaExprContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodCallExprContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/StatementContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/SwitchEntryContext");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/contexts/TryWithResourceContext");
+ }
+
+ @Test
+ public void parseCoreJavaparsermodelDeclarations() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/DefaultConstructorDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/Helper");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnnotationDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnonymousClassDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserClassDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserConstructorDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumConstantDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserFieldDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserMethodDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserParameterDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserSymbolDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeAdapter");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeParameter");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeVariableDeclaration");
+ }
+
+ @Test
+ public void parseCoreJavaparsermodelDeclarators() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarators/AbstractSymbolDeclarator");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarators/FieldSymbolDeclarator");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarators/NoSymbolDeclarator");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarators/ParameterSymbolDeclarator");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javaparsermodel/declarators/VariableSymbolDeclarator");
+ }
+
+ @Test
+ public void parseCoreJavassistmodel() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistClassDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistConstructorDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistFactory");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistFieldDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistInterfaceDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistMethodDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistParameterDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistTypeDeclarationAdapter");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistTypeParameter");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/javassistmodel/JavassistUtils");
+ }
+
+ @Test
+ public void parseCoreModelTypesystem() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/model/typesystem/LazyType");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/model/typesystem/ReferenceTypeImpl");
+ }
+
+ @Test
+ public void parseCoreReflectionmodel() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/MyObjectProvider");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassAdapter");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionConstructorDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionFactory");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionFieldDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionInterfaceDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodResolutionLogic");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionParameterDeclaration");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/ReflectionTypeParameter");
+ }
+
+ @Test
+ public void parseCoreReflectionmodelComparators() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/comparators/ClassComparator");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/comparators/MethodComparator");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/reflectionmodel/comparators/ParameterComparator");
+ }
+
+ @Test
+ public void parseCoreResolution() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/resolution/ConstructorResolutionLogic");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/resolution/MethodResolutionLogic");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/resolution/SymbolDeclarator");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/resolution/SymbolSolver");
+ }
+
+ @Test
+ public void parseCoreResolutionTypesolvers() throws IOException, ParseException {
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/resolution/typesolvers/CombinedTypeSolver");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/resolution/typesolvers/JarTypeSolver");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/resolution/typesolvers/JavaParserTypeSolver");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/resolution/typesolvers/MemoryTypeSolver");
+ parse("java-symbol-solver-core", "com/github/javaparser/symbolsolver/resolution/typesolvers/ReflectionTypeSolver");
+ }
+
+ @Test
+ public void parseLogic() throws IOException, ParseException {
+ parse("java-symbol-solver-logic", "com/github/javaparser/symbolsolver/logic/AbstractClassDeclaration");
+ parse("java-symbol-solver-logic", "com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration");
+ parse("java-symbol-solver-logic", "com/github/javaparser/symbolsolver/logic/ConfilictingGenericTypesException");
+ parse("java-symbol-solver-logic", "com/github/javaparser/symbolsolver/logic/FunctionalInterfaceLogic");
+ parse("java-symbol-solver-logic", "com/github/javaparser/symbolsolver/logic/InferenceContext");
+ parse("java-symbol-solver-logic", "com/github/javaparser/symbolsolver/logic/InferenceVariableType");
+ parse("java-symbol-solver-logic", "com/github/javaparser/symbolsolver/logic/ObjectProvider");
+ }
+
+ @Test
+ public void parseModelDeclarations() throws IOException, ParseException {
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/AccessLevel");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/AnnotationDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/ClassDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/ConstructorDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/Declaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/EnumDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/FieldDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/HasAccessLevel");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/InterfaceDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/MethodAmbiguityException");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/MethodDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/MethodLikeDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/ParameterDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/ReferenceTypeDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/TypeDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/TypeParameterDeclaration");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/TypeParametrizable");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/declarations/ValueDeclaration");
+ }
+
+ @Test
+ public void parseModelMethodsMethodUsage() throws IOException, ParseException {
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/methods/MethodUsage");
+ }
+
+ @Test
+ public void parseModelResolution() throws IOException, ParseException {
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/resolution/SymbolReference");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/resolution/TypeSolver");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/resolution/UnsolvedSymbolException");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/resolution/Value");
+ }
+
+ @Test
+ public void parseModelTypesystem() throws IOException, ParseException {
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/ArrayType");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/LambdaConstraintType");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/NullType");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/PrimitiveType");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/ReferenceType");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/Type");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/TypeTransformer");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/TypeVariable");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/VoidType");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/Wildcard");
+ }
+
+ @Test
+ public void parseModelTypesystemParametrization() throws IOException, ParseException {
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/parametrization/TypeParametersMap");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/parametrization/TypeParameterValueProvider");
+ parse("java-symbol-solver-model", "com/github/javaparser/symbolsolver/model/typesystem/parametrization/TypeParametrized");
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseNewJavaParserHelpersTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseNewJavaParserHelpersTest.java
new file mode 100644
index 000000000..254609e0c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseNewJavaParserHelpersTest.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * We analize a more recent version of JavaParser, after the project moved to Java 8.
+ */
+public class AnalyseNewJavaParserHelpersTest extends AbstractResolutionTest {
+
+ private static final File src = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core"));
+
+ private static TypeSolver TYPESOLVER = typeSolver();
+
+ private static TypeSolver typeSolver() {
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ combinedTypeSolver.add(new JavaParserTypeSolver(src));
+ combinedTypeSolver.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources"))));
+ return combinedTypeSolver;
+ }
+
+ private CompilationUnit parse(String fileName) throws IOException {
+ File sourceFile = new File(src.getAbsolutePath() + "/" + fileName + ".java");
+ return JavaParser.parse(sourceFile);
+ }
+
+// @Test
+// public void o1TypeIsCorrect() throws IOException, ParseException {
+// CompilationUnit cu = parse("com/github/javaparser/utils/PositionUtils");
+// NameExpr o1 = Navigator.findAllNodesOfGivenClass(cu, NameExpr.class).stream().filter(it -> it.getName()!=null && it.getName().equals("o1")).findFirst().get();
+// System.out.println(JavaParserFacade.get(TYPESOLVER).solve(o1).getCorrespondingDeclaration().getType());
+// }
+//
+// @Test
+// public void o2TypeIsCorrect() throws IOException, ParseException {
+// CompilationUnit cu = parse("com/github/javaparser/utils/PositionUtils");
+// NameExpr o2 = Navigator.findAllNodesOfGivenClass(cu, NameExpr.class).stream().filter(it -> it.getName()!=null && it.getName().equals("o2")).findFirst().get();
+// System.out.println(JavaParserFacade.get(TYPESOLVER).solve(o2).getCorrespondingDeclaration().getType());
+// }
+//
+// // To calculate the type of o1 and o2 I need to first calculate the type of the lambda
+// @Test
+// public void lambdaTypeIsCorrect() throws IOException, ParseException {
+// CompilationUnit cu = parse("com/github/javaparser/utils/PositionUtils");
+// LambdaExpr lambda = Navigator.findAllNodesOfGivenClass(cu, LambdaExpr.class).stream().filter(it -> it.getRange().begin.line == 50).findFirst().get();
+// System.out.println(JavaParserFacade.get(TYPESOLVER).getType(lambda));
+// }
+
+ @Test
+ public void nodesTypeIsCorrect() throws IOException {
+ CompilationUnit cu = parse("com/github/javaparser/utils/PositionUtils");
+ NameExpr nodes = cu.findAll(NameExpr.class).stream().filter(it -> it.getName() != null && it.getName().getId().equals("nodes")).findFirst().get();
+ ResolvedType type = JavaParserFacade.get(TYPESOLVER).solve(nodes).getCorrespondingDeclaration().getType();
+ assertEquals("java.util.List<T>", type.describe());
+ assertEquals(1, type.asReferenceType().typeParametersValues().size());
+ assertEquals(true, type.asReferenceType().typeParametersValues().get(0).isTypeVariable());
+ assertEquals("T", type.asReferenceType().typeParametersValues().get(0).asTypeParameter().getName());
+ assertEquals("com.github.javaparser.utils.PositionUtils.sortByBeginPosition(java.util.List<T>).T", type.asReferenceType().typeParametersValues().get(0).asTypeParameter().getQualifiedName());
+ assertEquals(1, type.asReferenceType().typeParametersValues().get(0).asTypeParameter().getBounds().size());
+ ResolvedTypeParameterDeclaration.Bound bound = type.asReferenceType().typeParametersValues().get(0).asTypeParameter().getBounds().get(0);
+ assertEquals(true, bound.isExtends());
+ assertEquals("com.github.javaparser.ast.Node", bound.getType().describe());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseNewJavaParserTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseNewJavaParserTest.java
new file mode 100644
index 000000000..53c0e040e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnalyseNewJavaParserTest.java
@@ -0,0 +1,328 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.SlowTest;
+import com.github.javaparser.symbolsolver.SourceFileInfoExtractor;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * We analyze a more recent version of JavaParser, after the project moved to Java 8.
+ */
+@Category(SlowTest.class)
+public class AnalyseNewJavaParserTest extends AbstractResolutionTest {
+
+ private static final File src = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core"));
+
+ private static SourceFileInfoExtractor getSourceFileInfoExtractor() {
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ combinedTypeSolver.add(new JavaParserTypeSolver(src));
+ combinedTypeSolver.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources"))));
+ SourceFileInfoExtractor sourceFileInfoExtractor = new SourceFileInfoExtractor();
+ sourceFileInfoExtractor.setTypeSolver(combinedTypeSolver);
+ sourceFileInfoExtractor.setPrintFileName(false);
+ sourceFileInfoExtractor.setVerbose(true);
+ return sourceFileInfoExtractor;
+ }
+
+ private static SourceFileInfoExtractor sourceFileInfoExtractor = getSourceFileInfoExtractor();
+
+ static String readFile(File file)
+ throws IOException {
+ byte[] encoded = Files.readAllBytes(Paths.get(file.getAbsolutePath()));
+ return new String(encoded, StandardCharsets.UTF_8);
+ }
+
+ private static final boolean DEBUG = true;
+
+ private void parse(String fileName) throws IOException, ParseException {
+ File sourceFile = new File(src.getAbsolutePath() + "/" + fileName + ".java");
+ OutputStream outErrStream = new ByteArrayOutputStream();
+ PrintStream outErr = new PrintStream(outErrStream);
+
+ sourceFileInfoExtractor.setOut(outErr);
+ sourceFileInfoExtractor.setErr(outErr);
+ sourceFileInfoExtractor.solveMethodCalls(sourceFile);
+ String output = outErrStream.toString();
+
+ File expectedOutput = new File("src/test/resources/javaparser_methodcalls_expected_output");
+ String path = adaptPath(expectedOutput).getPath() + "/" + fileName.replaceAll("/", "_") + ".txt";
+ File dstFile = new File(path);
+
+ if (isJava9()) {
+ String path9 = adaptPath(expectedOutput).getPath() + "/" + fileName.replaceAll("/", "_") + "_J9.txt";
+ File dstFile9 = new File(path9);
+ if (dstFile9.exists()) {
+ path = path9;
+ dstFile = dstFile9;
+ }
+ }
+
+ if (DEBUG && (sourceFileInfoExtractor.getKo() != 0 || sourceFileInfoExtractor.getUnsupported() != 0)) {
+ System.err.println(output);
+ }
+
+ assertTrue("No failures expected when analyzing " + path, 0 == sourceFileInfoExtractor.getKo());
+ assertTrue("No UnsupportedOperationException expected when analyzing " + path, 0 == sourceFileInfoExtractor.getUnsupported());
+
+ if (!dstFile.exists()) {
+ // If we need to update the file uncomment these lines
+ PrintWriter writer = new PrintWriter(dstFile.getAbsoluteFile(), "UTF-8");
+ writer.print(output);
+ writer.close();
+ }
+
+ String expected = readFile(dstFile);
+
+ String[] outputLines = output.split("\n");
+ String[] expectedLines = expected.split("\n");
+
+ for (int i = 0; i < Math.min(outputLines.length, expectedLines.length); i++) {
+ assertEquals("Line " + (i + 1) + " of " + path + " is different from what is expected", expectedLines[i].trim(), outputLines[i].trim());
+ }
+
+ assertEquals(expectedLines.length, outputLines.length);
+
+ JavaParserFacade.clearInstances();
+ }
+
+ @Test
+ public void parseUtilsUtils() throws IOException, ParseException {
+ parse("com/github/javaparser/utils/Utils");
+ }
+
+ @Test
+ public void parseCommentsInserter() throws IOException, ParseException {
+ parse("com/github/javaparser/CommentsInserter");
+ }
+
+ @Test
+ public void parsePositionUtils() throws IOException, ParseException {
+ parse("com/github/javaparser/utils/PositionUtils");
+ }
+
+ @Test
+ public void parseModifier() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/Modifier");
+ }
+
+ @Test
+ public void parseNodeWithMembers() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithMembers");
+ }
+
+ @Test
+ public void parseAstStmts() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/stmt/AssertStmt");
+ parse("com/github/javaparser/ast/stmt/BlockStmt");
+ parse("com/github/javaparser/ast/stmt/BreakStmt");
+ parse("com/github/javaparser/ast/stmt/CatchClause");
+ parse("com/github/javaparser/ast/stmt/ContinueStmt");
+ parse("com/github/javaparser/ast/stmt/DoStmt");
+ parse("com/github/javaparser/ast/stmt/EmptyStmt");
+ parse("com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt");
+ parse("com/github/javaparser/ast/stmt/ExpressionStmt");
+ parse("com/github/javaparser/ast/stmt/ForStmt");
+ parse("com/github/javaparser/ast/stmt/ForeachStmt");
+ parse("com/github/javaparser/ast/stmt/IfStmt");
+ parse("com/github/javaparser/ast/stmt/LabeledStmt");
+ parse("com/github/javaparser/ast/stmt/ReturnStmt");
+ parse("com/github/javaparser/ast/stmt/Statement");
+ parse("com/github/javaparser/ast/stmt/SwitchEntryStmt");
+ parse("com/github/javaparser/ast/stmt/SwitchStmt");
+ parse("com/github/javaparser/ast/stmt/SynchronizedStmt");
+ parse("com/github/javaparser/ast/stmt/ThrowStmt");
+ parse("com/github/javaparser/ast/stmt/TryStmt");
+ parse("com/github/javaparser/ast/stmt/TypeDeclarationStmt");
+ parse("com/github/javaparser/ast/stmt/WhileStmt");
+ }
+
+ @Test
+ public void parseAstExprs() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/expr/AnnotationExpr");
+ parse("com/github/javaparser/ast/expr/ArrayAccessExpr");
+ parse("com/github/javaparser/ast/expr/ArrayCreationExpr");
+ parse("com/github/javaparser/ast/expr/ArrayInitializerExpr");
+ parse("com/github/javaparser/ast/expr/AssignExpr");
+ parse("com/github/javaparser/ast/expr/BinaryExpr");
+ parse("com/github/javaparser/ast/expr/BooleanLiteralExpr");
+ parse("com/github/javaparser/ast/expr/CastExpr");
+ parse("com/github/javaparser/ast/expr/CharLiteralExpr");
+ parse("com/github/javaparser/ast/expr/ClassExpr");
+ parse("com/github/javaparser/ast/expr/ConditionalExpr");
+ parse("com/github/javaparser/ast/expr/DoubleLiteralExpr");
+ parse("com/github/javaparser/ast/expr/EnclosedExpr");
+ parse("com/github/javaparser/ast/expr/Expression");
+ parse("com/github/javaparser/ast/expr/FieldAccessExpr");
+ parse("com/github/javaparser/ast/expr/InstanceOfExpr");
+ parse("com/github/javaparser/ast/expr/IntegerLiteralExpr");
+ parse("com/github/javaparser/ast/expr/IntegerLiteralMinValueExpr");
+ parse("com/github/javaparser/ast/expr/LambdaExpr");
+ parse("com/github/javaparser/ast/expr/LiteralExpr");
+ parse("com/github/javaparser/ast/expr/LongLiteralExpr");
+ parse("com/github/javaparser/ast/expr/LongLiteralMinValueExpr");
+ parse("com/github/javaparser/ast/expr/MarkerAnnotationExpr");
+ parse("com/github/javaparser/ast/expr/MemberValuePair");
+ parse("com/github/javaparser/ast/expr/MethodCallExpr");
+ parse("com/github/javaparser/ast/expr/MethodReferenceExpr");
+ parse("com/github/javaparser/ast/expr/NameExpr");
+ parse("com/github/javaparser/ast/expr/NormalAnnotationExpr");
+ parse("com/github/javaparser/ast/expr/NullLiteralExpr");
+ parse("com/github/javaparser/ast/expr/ObjectCreationExpr");
+ parse("com/github/javaparser/ast/expr/QualifiedNameExpr");
+ parse("com/github/javaparser/ast/expr/SingleMemberAnnotationExpr");
+ parse("com/github/javaparser/ast/expr/StringLiteralExpr");
+ parse("com/github/javaparser/ast/expr/SuperExpr");
+ parse("com/github/javaparser/ast/expr/ThisExpr");
+ parse("com/github/javaparser/ast/expr/TypeExpr");
+ parse("com/github/javaparser/ast/expr/UnaryExpr");
+ }
+
+ @Test
+ public void parseVariableDeclarationExpr() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/expr/VariableDeclarationExpr");
+ }
+
+ @Test
+ public void parseAstBody() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/body/AnnotationDeclaration");
+ parse("com/github/javaparser/ast/body/AnnotationMemberDeclaration");
+ parse("com/github/javaparser/ast/body/BodyDeclaration");
+ parse("com/github/javaparser/ast/body/ClassOrInterfaceDeclaration");
+ parse("com/github/javaparser/ast/body/ConstructorDeclaration");
+ parse("com/github/javaparser/ast/body/EmptyMemberDeclaration");
+ parse("com/github/javaparser/ast/body/EmptyTypeDeclaration");
+ parse("com/github/javaparser/ast/body/EnumConstantDeclaration");
+ parse("com/github/javaparser/ast/body/EnumDeclaration");
+ parse("com/github/javaparser/ast/body/FieldDeclaration");
+ parse("com/github/javaparser/ast/body/InitializerDeclaration");
+ parse("com/github/javaparser/ast/body/MethodDeclaration");
+ parse("com/github/javaparser/ast/body/Parameter");
+ parse("com/github/javaparser/ast/body/TypeDeclaration");
+ parse("com/github/javaparser/ast/body/VariableDeclarator");
+ parse("com/github/javaparser/ast/body/VariableDeclaratorId");
+ }
+
+ @Test
+ public void parseAstComments() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/comments/BlockComment");
+ parse("com/github/javaparser/ast/comments/Comment");
+ parse("com/github/javaparser/ast/comments/CommentsCollection");
+ parse("com/github/javaparser/ast/comments/JavadocComment");
+ parse("com/github/javaparser/ast/comments/LineComment");
+ }
+
+ @Test
+ public void parseAstRest() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/AccessSpecifier");
+ parse("com/github/javaparser/ast/ArrayBracketPair");
+ parse("com/github/javaparser/ast/ArrayCreationLevel");
+ parse("com/github/javaparser/ast/CompilationUnit");
+ parse("com/github/javaparser/ast/Example");
+ parse("com/github/javaparser/ast/ImportDeclaration");
+ parse("com/github/javaparser/ast/Node");
+ parse("com/github/javaparser/ast/PackageDeclaration");
+ parse("com/github/javaparser/ast/UserDataKey");
+ }
+
+ @Test
+ public void parseAstNodeTypes() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithAnnotations");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithBlockStmt");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithBody");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithDeclaration");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithElementType");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithExtends");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithImplements");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithJavaDoc");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithModifiers");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithName");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithParameters");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithStatements");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithThrowable");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithType");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithTypeArguments");
+ parse("com/github/javaparser/ast/nodeTypes/NodeWithVariables");
+ }
+
+ @Test
+ public void parseAstTypes() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/type/ArrayType");
+ parse("com/github/javaparser/ast/type/ClassOrInterfaceType");
+ parse("com/github/javaparser/ast/type/IntersectionType");
+ parse("com/github/javaparser/ast/type/PrimitiveType");
+ parse("com/github/javaparser/ast/type/ReferenceType");
+ parse("com/github/javaparser/ast/type/Type");
+ parse("com/github/javaparser/ast/type/TypeParameter");
+ parse("com/github/javaparser/ast/type/UnionType");
+ parse("com/github/javaparser/ast/type/UnknownType");
+ parse("com/github/javaparser/ast/type/VoidType");
+ parse("com/github/javaparser/ast/type/WildcardType");
+ }
+
+ @Test
+ public void parseAstVisitor() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/visitor/CloneVisitor");
+ parse("com/github/javaparser/ast/visitor/EqualsVisitor");
+ parse("com/github/javaparser/ast/visitor/GenericVisitor");
+ parse("com/github/javaparser/ast/visitor/GenericVisitorAdapter");
+ parse("com/github/javaparser/ast/visitor/ModifierVisitorAdapter");
+ parse("com/github/javaparser/ast/visitor/TreeVisitor");
+ parse("com/github/javaparser/ast/visitor/VoidVisitor");
+ parse("com/github/javaparser/ast/visitor/VoidVisitorAdapter");
+ }
+
+ @Test
+ public void parseDumpVisitor() throws IOException, ParseException {
+ parse("com/github/javaparser/ast/visitor/DumpVisitor");
+ }
+
+ @Test
+ public void parseUtils() throws IOException, ParseException {
+ parse("com/github/javaparser/utils/ClassUtils");
+ parse("com/github/javaparser/utils/Pair");
+ }
+
+ @Test
+ public void parseAllOtherNodes() throws IOException, ParseException {
+ parse("com/github/javaparser/JavaParser");
+ parse("com/github/javaparser/ParseProblemException");
+ parse("com/github/javaparser/ParseResult");
+ parse("com/github/javaparser/ParseStart");
+ parse("com/github/javaparser/ParserConfiguration");
+ parse("com/github/javaparser/Position");
+ parse("com/github/javaparser/Problem");
+ parse("com/github/javaparser/Providers");
+ parse("com/github/javaparser/Range");
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/ArrayExprTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/ArrayExprTest.java
new file mode 100644
index 000000000..92b973396
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/ArrayExprTest.java
@@ -0,0 +1,26 @@
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * See issue #17
+ */
+public class ArrayExprTest {
+
+ @Test
+ public void verifyAnArrayAccessExprTypeIsCalculatedProperly() {
+ String code = "class A { String[] arrSQL; String toExamine = arrSQL[1]; }";
+ FieldDeclaration field = JavaParser.parse(code).getClassByName("A").get().getFieldByName("toExamine").get();
+
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(field.getVariables().get(0).getInitializer().get());
+ assertEquals(true, type.isReferenceType());
+ assertEquals("java.lang.String", type.asReferenceType().getQualifiedName());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/ContextTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/ContextTest.java
new file mode 100644
index 000000000..45cc56ea6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/ContextTest.java
@@ -0,0 +1,475 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.expr.AssignExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.declarations.ResolvedClassDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.*;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collections;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class ContextTest extends AbstractTest {
+
+ private TypeSolver typeSolver = new CombinedTypeSolver(new MemoryTypeSolver(), new ReflectionTypeSolver());
+
+ private CompilationUnit parseSample(String sampleName) {
+ InputStream is = ContextTest.class.getClassLoader().getResourceAsStream(sampleName + ".java.txt");
+ return JavaParser.parse(is);
+ }
+
+ @Test
+ public void resolveDeclaredFieldReference() {
+ CompilationUnit cu = parseSample("ReferencesToField");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "ReferencesToField");
+ MethodDeclaration method1 = Navigator.demandMethod(referencesToField, "method1");
+ ExpressionStmt stmt = (ExpressionStmt) method1.getBody().get().getStatements().get(0);
+ AssignExpr assignExpr = (AssignExpr) stmt.getExpression();
+
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+ SymbolReference symbolReference = symbolSolver.solveSymbol("i", assignExpr.getTarget());
+
+ assertEquals(true, symbolReference.isSolved());
+ assertEquals("i", symbolReference.getCorrespondingDeclaration().getName());
+ assertEquals(true, symbolReference.getCorrespondingDeclaration().isField());
+ }
+
+ @Test
+ public void resolveInheritedFieldReference() {
+ CompilationUnit cu = parseSample("ReferencesToField");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "ReferencesToFieldExtendingClass");
+ MethodDeclaration method1 = Navigator.demandMethod(referencesToField, "method2");
+ ExpressionStmt stmt = (ExpressionStmt) method1.getBody().get().getStatements().get(0);
+ AssignExpr assignExpr = (AssignExpr) stmt.getExpression();
+
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+ SymbolReference symbolReference = symbolSolver.solveSymbol("i", assignExpr.getTarget());
+
+ assertEquals(true, symbolReference.isSolved());
+ assertEquals("i", symbolReference.getCorrespondingDeclaration().getName());
+ assertEquals(true, symbolReference.getCorrespondingDeclaration().isField());
+ }
+
+ @Test
+ public void resolveParameterReference() {
+ CompilationUnit cu = parseSample("ReferencesToParameter");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "ReferenceToParameter");
+ MethodDeclaration method1 = Navigator.demandMethod(referencesToField, "aMethod");
+ NameExpr foo = Navigator.findNameExpression(method1, "foo").get();
+
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+ SymbolReference symbolReference = symbolSolver.solveSymbol("foo", foo);
+
+ assertEquals(true, symbolReference.isSolved());
+ assertEquals("foo", symbolReference.getCorrespondingDeclaration().getName());
+ assertEquals(true, symbolReference.getCorrespondingDeclaration().isParameter());
+ }
+
+ @Test
+ public void resolveReferenceToImportedType() {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "findType");
+ Parameter param = method.getParameters().get(0);
+
+ ResolvedClassDeclaration compilationUnitDecl = mock(ResolvedClassDeclaration.class);
+ when(compilationUnitDecl.getName()).thenReturn("CompilationUnit");
+ when(compilationUnitDecl.getQualifiedName()).thenReturn("com.github.javaparser.ast.CompilationUnit");
+ TypeSolver typeSolver = mock(TypeSolver.class);
+ when(typeSolver.getRoot()).thenReturn(typeSolver);
+ when(typeSolver.solveType("java.lang.Object")).thenReturn(new ReflectionClassDeclaration(Object.class, typeSolver));
+ when(typeSolver.tryToSolveType("com.github.javaparser.ast.CompilationUnit")).thenReturn(SymbolReference.solved(compilationUnitDecl));
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+
+ SymbolReference<? extends ResolvedTypeDeclaration> ref = symbolSolver.solveType("CompilationUnit", param);
+
+ assertEquals(true, ref.isSolved());
+ assertEquals("CompilationUnit", ref.getCorrespondingDeclaration().getName());
+ assertEquals("com.github.javaparser.ast.CompilationUnit", ref.getCorrespondingDeclaration().getQualifiedName());
+ }
+
+ @Test
+ public void resolveReferenceUsingQualifiedName() {
+ CompilationUnit cu = parseSample("Navigator2");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "findType");
+ Parameter param = method.getParameters().get(0);
+
+ ResolvedClassDeclaration compilationUnitDecl = mock(ResolvedClassDeclaration.class);
+ when(compilationUnitDecl.getName()).thenReturn("CompilationUnit");
+ when(compilationUnitDecl.getQualifiedName()).thenReturn("com.github.javaparser.ast.CompilationUnit");
+ TypeSolver typeSolver = mock(TypeSolver.class);
+ //when(typeSolver.tryToSolveType("java.lang.com.github.javaparser.ast.CompilationUnit")).thenReturn(SymbolReference.unsolved(ClassDeclaration.class));
+ when(typeSolver.getRoot()).thenReturn(typeSolver);
+ when(typeSolver.solveType("java.lang.Object")).thenReturn(new ReflectionClassDeclaration(Object.class, typeSolver));
+ when(typeSolver.tryToSolveType("com.github.javaparser.ast.CompilationUnit")).thenReturn(SymbolReference.solved(compilationUnitDecl));
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+
+ SymbolReference<? extends ResolvedTypeDeclaration> ref = symbolSolver.solveType("com.github.javaparser.ast.CompilationUnit", param);
+
+ assertEquals(true, ref.isSolved());
+ assertEquals("CompilationUnit", ref.getCorrespondingDeclaration().getName());
+ assertEquals("com.github.javaparser.ast.CompilationUnit", ref.getCorrespondingDeclaration().getQualifiedName());
+ }
+
+ @Test
+ public void resolveReferenceToClassesInTheSamePackage() {
+ CompilationUnit cu = parseSample("Navigator3");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "findType");
+ Parameter param = method.getParameters().get(0);
+
+ ResolvedClassDeclaration compilationUnitDecl = mock(ResolvedClassDeclaration.class);
+ when(compilationUnitDecl.getName()).thenReturn("CompilationUnit");
+ when(compilationUnitDecl.getQualifiedName()).thenReturn("my.packagez.CompilationUnit");
+ TypeSolver typeSolver = mock(TypeSolver.class);
+ when(typeSolver.getRoot()).thenReturn(typeSolver);
+ when(typeSolver.solveType("java.lang.Object")).thenReturn(new ReflectionClassDeclaration(Object.class, typeSolver));
+ when(typeSolver.tryToSolveType("my.packagez.CompilationUnit")).thenReturn(SymbolReference.solved(compilationUnitDecl));
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+
+ SymbolReference<? extends ResolvedTypeDeclaration> ref = symbolSolver.solveType("CompilationUnit", param);
+
+ assertEquals(true, ref.isSolved());
+ assertEquals("CompilationUnit", ref.getCorrespondingDeclaration().getName());
+ assertEquals("my.packagez.CompilationUnit", ref.getCorrespondingDeclaration().getQualifiedName());
+ }
+
+ @Test
+ public void resolveReferenceToClassInJavaLang() {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "findType");
+ Parameter param = method.getParameters().get(1);
+
+ ResolvedClassDeclaration stringDecl = mock(ResolvedClassDeclaration.class);
+ when(stringDecl.getName()).thenReturn("String");
+ when(stringDecl.getQualifiedName()).thenReturn("java.lang.String");
+ TypeSolver typeSolver = mock(TypeSolver.class);
+ when(typeSolver.tryToSolveType("me.tomassetti.symbolsolver.javaparser.String")).thenReturn(SymbolReference.unsolved(ResolvedReferenceTypeDeclaration.class));
+ when(typeSolver.getRoot()).thenReturn(typeSolver);
+ when(typeSolver.solveType("java.lang.Object")).thenReturn(new ReflectionClassDeclaration(Object.class, typeSolver));
+ when(typeSolver.tryToSolveType("java.lang.String")).thenReturn(SymbolReference.solved(stringDecl));
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+
+ SymbolReference<? extends ResolvedTypeDeclaration> ref = symbolSolver.solveType("String", param);
+
+ assertEquals(true, ref.isSolved());
+ assertEquals("String", ref.getCorrespondingDeclaration().getName());
+ assertEquals("java.lang.String", ref.getCorrespondingDeclaration().getQualifiedName());
+ }
+
+ @Test
+ public void resolveReferenceToMethod() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "findType");
+ MethodCallExpr callToGetTypes = Navigator.findMethodCall(method, "getTypes").get();
+
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ TypeSolver typeSolver = new CombinedTypeSolver(new JarTypeSolver(pathToJar), new ReflectionTypeSolver(true));
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+
+ MethodUsage ref = symbolSolver.solveMethod("getTypes", Collections.emptyList(), callToGetTypes);
+
+ assertEquals("getTypes", ref.getName());
+ assertEquals("com.github.javaparser.ast.CompilationUnit", ref.declaringType().getQualifiedName());
+
+ //verify(typeSolver);
+ }
+
+ @Test
+ public void resolveCascadeOfReferencesToMethod() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "findType");
+ MethodCallExpr callToStream = Navigator.findMethodCall(method, "stream").get();
+
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ TypeSolver typeSolver = new CombinedTypeSolver(new JarTypeSolver(pathToJar), new ReflectionTypeSolver(true));
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+ MethodUsage ref = symbolSolver.solveMethod("stream", Collections.emptyList(), callToStream);
+
+ assertEquals("stream", ref.getName());
+ assertEquals("java.util.Collection", ref.declaringType().getQualifiedName());
+ }
+
+ @Test
+ public void resolveReferenceToMethodCalledOnArrayAccess() {
+ CompilationUnit cu = parseSample("ArrayAccess");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "ArrayAccess");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "access");
+ MethodCallExpr callToTrim = Navigator.findMethodCall(method, "trim").get();
+
+ File src = adaptPath(new File("src/test/resources"));
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JavaParserTypeSolver(src));
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+ MethodUsage ref = symbolSolver.solveMethod("trim", Collections.emptyList(), callToTrim);
+
+ assertEquals("trim", ref.getName());
+ assertEquals("java.lang.String", ref.declaringType().getQualifiedName());
+ }
+
+ @Test
+ public void resolveReferenceToJreType() {
+ CompilationUnit cu = parseSample("NavigatorSimplified");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "foo");
+ com.github.javaparser.ast.type.Type streamJavaParserType = method.getParameters().get(0).getType();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ResolvedType streamType = JavaParserFacade.get(typeSolver).convert(streamJavaParserType, method);
+
+ assertEquals("java.util.stream.Stream<java.lang.String>", streamType.describe());
+ }
+
+ @Test
+ public void resolveReferenceToMethodWithLambda() {
+ CompilationUnit cu = parseSample("NavigatorSimplified");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "findType");
+ MethodCallExpr methodCallExpr = Navigator.findMethodCall(method, "filter").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ResolvedType ref = JavaParserFacade.get(typeSolver).getType(methodCallExpr);
+
+ assertEquals("java.util.stream.Stream<java.lang.String>", ref.describe());
+ assertEquals(1, ref.asReferenceType().typeParametersValues().size());
+ assertEquals("java.lang.String", ref.asReferenceType().typeParametersValues().get(0).describe());
+ }
+
+ @Test
+ public void resolveReferenceToLambdaParamBase() {
+ CompilationUnit cu = parseSample("NavigatorSimplified");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "findType");
+ NameExpr refToT = Navigator.findNameExpression(method, "t").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ ResolvedType ref = javaParserFacade.getType(refToT);
+
+ assertEquals("? super java.lang.String", ref.describe());
+ }
+
+ @Test
+ public void resolveReferenceToLambdaParamSimplified() {
+ CompilationUnit cu = parseSample("NavigatorSimplified");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "findType");
+ MethodCallExpr call = Navigator.findMethodCall(method, "isEmpty").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+ MethodUsage ref = symbolSolver.solveMethod("isEmpty", Collections.emptyList(), call);
+
+ assertEquals("isEmpty", ref.getName());
+ assertEquals("java.lang.String", ref.declaringType().getQualifiedName());
+ }
+
+ @Test
+ public void resolveGenericReturnTypeOfMethodInJar() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "findType");
+ MethodCallExpr call = Navigator.findMethodCall(method, "getTypes").get();
+
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JarTypeSolver(pathToJar));
+ MethodUsage methodUsage = JavaParserFacade.get(typeSolver).solveMethodAsUsage(call);
+
+ assertEquals("getTypes", methodUsage.getName());
+ assertEquals("java.util.List<com.github.javaparser.ast.body.TypeDeclaration>", methodUsage.returnType().describe());
+ assertEquals(1, methodUsage.returnType().asReferenceType().typeParametersValues().size());
+ assertEquals("com.github.javaparser.ast.body.TypeDeclaration", methodUsage.returnType().asReferenceType().typeParametersValues().get(0).describe());
+ }
+
+ @Test
+ public void resolveTypeUsageOfFirstMethodInGenericClass() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "findType");
+ MethodCallExpr callToGetTypes = Navigator.findMethodCall(method, "getTypes").get();
+
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JarTypeSolver(pathToJar));
+ MethodUsage filterUsage = JavaParserFacade.get(typeSolver).solveMethodAsUsage(callToGetTypes);
+
+ assertEquals("java.util.List<com.github.javaparser.ast.body.TypeDeclaration>", filterUsage.returnType().describe());
+ assertEquals(1, filterUsage.returnType().asReferenceType().typeParametersValues().size());
+ assertEquals("com.github.javaparser.ast.body.TypeDeclaration", filterUsage.returnType().asReferenceType().typeParametersValues().get(0).describe());
+ }
+
+ @Test
+ public void resolveTypeUsageOfMethodInGenericClass() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "findType");
+ MethodCallExpr callToStream = Navigator.findMethodCall(method, "stream").get();
+
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JarTypeSolver(pathToJar));
+ MethodUsage filterUsage = JavaParserFacade.get(typeSolver).solveMethodAsUsage(callToStream);
+
+ assertEquals("java.util.stream.Stream<com.github.javaparser.ast.body.TypeDeclaration>", filterUsage.returnType().describe());
+ }
+
+ @Test
+ public void resolveTypeUsageOfCascadeMethodInGenericClass() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "findType");
+ MethodCallExpr callToFilter = Navigator.findMethodCall(method, "filter").get();
+
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JarTypeSolver(pathToJar));
+ MethodUsage filterUsage = JavaParserFacade.get(typeSolver).solveMethodAsUsage(callToFilter);
+
+ assertEquals("java.util.stream.Stream<com.github.javaparser.ast.body.TypeDeclaration>", filterUsage.returnType().describe());
+ }
+
+ @Test
+ public void resolveLambdaType() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "findType");
+ MethodCallExpr callToFilter = Navigator.findMethodCall(method, "filter").get();
+ Expression lambdaExpr = callToFilter.getArguments().get(0);
+
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JarTypeSolver(pathToJar));
+ ResolvedType typeOfLambdaExpr = JavaParserFacade.get(typeSolver).getType(lambdaExpr);
+
+ assertEquals("java.util.function.Predicate<? super com.github.javaparser.ast.body.TypeDeclaration>", typeOfLambdaExpr.describe());
+ }
+
+ @Test
+ public void resolveReferenceToLambdaParam() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "findType");
+ MethodCallExpr callToGetName = Navigator.findMethodCall(method, "getName").get();
+ Expression referenceToT = callToGetName.getScope().get();
+
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JarTypeSolver(pathToJar));
+ ResolvedType typeOfT = JavaParserFacade.get(typeSolver).getType(referenceToT);
+
+ assertEquals("? super com.github.javaparser.ast.body.TypeDeclaration", typeOfT.describe());
+ }
+
+ @Test
+ public void resolveReferenceToCallOnLambdaParam() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("Navigator");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Navigator");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "findType");
+ MethodCallExpr callToGetName = Navigator.findMethodCall(method, "getName").get();
+
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JarTypeSolver(pathToJar));
+ MethodUsage methodUsage = JavaParserFacade.get(typeSolver).solveMethodAsUsage(callToGetName);
+
+ assertEquals("getName", methodUsage.getName());
+ assertEquals("com.github.javaparser.ast.body.TypeDeclaration", methodUsage.declaringType().getQualifiedName());
+ }
+
+ @Test
+ public void resolveReferenceToOverloadMethodWithNullParam() {
+ CompilationUnit cu = parseSample("OverloadedMethods");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "OverloadedMethods");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "m1");
+ MethodCallExpr call = Navigator.findMethodCall(method, "overloaded").get();
+
+ ReflectionTypeSolver typeSolver = new ReflectionTypeSolver();
+ MethodUsage ref = JavaParserFacade.get(typeSolver).solveMethodAsUsage(call);
+
+ assertEquals("overloaded", ref.getName());
+ assertEquals(1, ref.getNoParams());
+ assertEquals("java.lang.String", ref.getParamTypes().get(0).describe());
+ }
+
+ @Test
+ public void resolveReferenceToOverloadMethodFindStricter() {
+ CompilationUnit cu = parseSample("OverloadedMethods");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "OverloadedMethods");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "m2");
+ MethodCallExpr call = Navigator.findMethodCall(method, "overloaded").get();
+
+ ReflectionTypeSolver typeSolver = new ReflectionTypeSolver();
+ MethodUsage ref = JavaParserFacade.get(typeSolver).solveMethodAsUsage(call);
+
+ assertEquals("overloaded", ref.getName());
+ assertEquals(1, ref.getNoParams());
+ assertEquals("java.lang.String", ref.getParamTypes().get(0).describe());
+ }
+
+ @Test
+ public void resolveInheritedMethodFromInterface() {
+ CompilationUnit cu = parseSample("InterfaceInheritance");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Test");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "test");
+ MethodCallExpr call = Navigator.findMethodCall(method, "foobar").get();
+
+ File src = adaptPath(new File("src/test/resources"));
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JavaParserTypeSolver(src));
+ ResolvedType type = JavaParserFacade.get(typeSolver).getType(call);
+
+ assertEquals("double", type.describe());
+ }
+
+ @Test
+ public void resolveReferenceToOverloadMethodFindOnlyCompatible() {
+ CompilationUnit cu = parseSample("OverloadedMethods");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "OverloadedMethods");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "m3");
+ MethodCallExpr call = Navigator.findMethodCall(method, "overloaded").get();
+
+ ReflectionTypeSolver typeSolver = new ReflectionTypeSolver();
+ MethodUsage ref = JavaParserFacade.get(typeSolver).solveMethodAsUsage(call);
+
+ assertEquals("overloaded", ref.getName());
+ assertEquals(1, ref.getNoParams());
+ assertEquals("java.lang.Object", ref.getParamTypes().get(0).describe());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/DefaultPackageTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/DefaultPackageTest.java
new file mode 100644
index 000000000..5fcead08f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/DefaultPackageTest.java
@@ -0,0 +1,158 @@
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.AccessSpecifier;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.resolution.UnsolvedSymbolException;
+import com.github.javaparser.resolution.declarations.*;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.logic.AbstractClassDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.MemoryTypeSolver;
+import org.junit.Test;
+
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * See issue #16
+ */
+public class DefaultPackageTest {
+
+ private class MyClassDeclaration extends AbstractClassDeclaration {
+
+ private String qualifiedName;
+
+ private MyClassDeclaration(String qualifiedName) {
+ this.qualifiedName = qualifiedName;
+ }
+
+ @Override
+ public AccessSpecifier accessSpecifier() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public List<ResolvedTypeParameterDeclaration> getTypeParameters() {
+ return new LinkedList<>();
+ }
+
+ @Override
+ public Set<ResolvedReferenceTypeDeclaration> internalTypes() {
+ return new HashSet<>();
+ }
+
+ @Override
+ public String getName() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public List<ResolvedReferenceType> getAncestors() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public List<ResolvedFieldDeclaration> getAllFields() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Set<ResolvedMethodDeclaration> getDeclaredMethods() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isAssignableBy(ResolvedType type) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isAssignableBy(ResolvedReferenceTypeDeclaration other) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean hasDirectlyAnnotation(String qualifiedName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public ResolvedReferenceType getSuperClass() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public List<ResolvedReferenceType> getInterfaces() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public List<ResolvedConstructorDeclaration> getConstructors() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ protected ResolvedReferenceType object() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getPackageName() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getClassName() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getQualifiedName() {
+ return qualifiedName;
+ }
+
+ @Override
+ public Optional<ResolvedReferenceTypeDeclaration> containerType() {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ @Test
+ public void aClassInDefaultPackageCanBeAccessedFromTheDefaultPackage() {
+ String code = "class A extends B {}";
+ MemoryTypeSolver memoryTypeSolver = new MemoryTypeSolver();
+ memoryTypeSolver.addDeclaration("B", new MyClassDeclaration("B"));
+
+ ClassOrInterfaceType jpType = JavaParser.parse(code).getClassByName("A").get().getExtendedTypes(0);
+ ResolvedType resolvedType = JavaParserFacade.get(memoryTypeSolver).convertToUsage(jpType);
+ assertEquals("B", resolvedType.asReferenceType().getQualifiedName());
+ }
+
+ @Test(expected = UnsolvedSymbolException.class)
+ public void aClassInDefaultPackageCanBeAccessedFromOutsideTheDefaultPackageImportingIt() {
+ String code = "package myPackage; import B; class A extends B {}";
+ MemoryTypeSolver memoryTypeSolver = new MemoryTypeSolver();
+ memoryTypeSolver.addDeclaration("B", new MyClassDeclaration("B"));
+
+ ClassOrInterfaceType jpType = JavaParser.parse(code).getClassByName("A").get().getExtendedTypes(0);
+ ResolvedType resolvedType = JavaParserFacade.get(memoryTypeSolver).convertToUsage(jpType);
+ assertEquals("B", resolvedType.asReferenceType().getQualifiedName());
+ }
+
+ @Test(expected = UnsolvedSymbolException.class)
+ public void aClassInDefaultPackageCanBeAccessedFromOutsideTheDefaultPackageWithoutImportingIt() {
+ String code = "package myPackage; class A extends B {}";
+ MemoryTypeSolver memoryTypeSolver = new MemoryTypeSolver();
+ memoryTypeSolver.addDeclaration("B", new MyClassDeclaration("B"));
+
+ ResolvedType resolvedType = JavaParserFacade.get(memoryTypeSolver).convertToUsage(JavaParser.parse(code).getClassByName("A").get().getExtendedTypes(0));
+ assertEquals("B", resolvedType.asReferenceType().getQualifiedName());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/EnumResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/EnumResolutionTest.java
new file mode 100644
index 000000000..edeaf8043
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/EnumResolutionTest.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class EnumResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void switchOnEnum() {
+ CompilationUnit cu = parseSample("SwitchOnEnum");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "SwitchOnEnum");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "foo");
+ SwitchStmt switchStmt = Navigator.findSwitch(method);
+ Expression expression = switchStmt.getEntries().get(0).getLabel().get();
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertTrue(ref.isSolved());
+ assertEquals("SwitchOnEnum.MyEnum", ref.getCorrespondingDeclaration().getType().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void enumAndStaticInitializer() {
+ CompilationUnit cu = parseSample("EnumAndStaticInitializer");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MyClass");
+ MethodCallExpr call = Navigator.findMethodCall(clazz, "put").get();
+
+ ResolvedType ref = JavaParserFacade.get(new ReflectionTypeSolver()).getType(call);
+ assertEquals("MyClass.Primitive", ref.describe());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/FieldsResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/FieldsResolutionTest.java
new file mode 100644
index 000000000..fd95e7314
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/FieldsResolutionTest.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class FieldsResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void accessClassFieldThroughThis() {
+ CompilationUnit cu = parseSample("AccessClassMemberThroughThis");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "AccessClassMemberThroughThis");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "getLabel2");
+ ReturnStmt returnStmt = (ReturnStmt) method.getBody().get().getStatements().get(0);
+ Expression expression = returnStmt.getExpression().get();
+
+ ResolvedType ref = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression);
+ assertEquals("java.lang.String", ref.describe());
+ }
+
+ @Test
+ public void accessClassFieldThroughThisWithCompetingSymbolInParentContext() {
+ CompilationUnit cu = parseSample("AccessClassMemberThroughThis");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "AccessClassMemberThroughThis");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "setLabel");
+ ExpressionStmt expressionStmt = (ExpressionStmt) method.getBody().get().getStatements().get(0);
+ AssignExpr assignExpr = (AssignExpr) expressionStmt.getExpression();
+ FieldAccessExpr fieldAccessExpr = (FieldAccessExpr) assignExpr.getTarget();
+
+ File src = adaptPath(new File("src/test/resources"));
+ CombinedTypeSolver typeSolver = new CombinedTypeSolver(new JavaParserTypeSolver(src), new ReflectionTypeSolver());
+ SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
+ SymbolReference<? extends ResolvedValueDeclaration> ref = symbolSolver.solveSymbol(fieldAccessExpr.getName().getId(), fieldAccessExpr);
+
+ assertTrue(ref.isSolved());
+ assertTrue(ref.getCorrespondingDeclaration().isField());
+ }
+
+ @Test
+ public void accessEnumFieldThroughThis() {
+ CompilationUnit cu = parseSample("AccessEnumMemberThroughThis");
+ com.github.javaparser.ast.body.EnumDeclaration enumDecl = Navigator.demandEnum(cu, "AccessEnumMemberThroughThis");
+ MethodDeclaration method = Navigator.demandMethod(enumDecl, "getLabel");
+ SimpleName expression = Navigator.findSimpleName(method, "label").get();
+
+ SymbolReference ref = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertTrue(ref.isSolved());
+ assertEquals("label", ref.getCorrespondingDeclaration().getName());
+ }
+
+ @Test
+ public void accessEnumMethodThroughThis() {
+ CompilationUnit cu = parseSample("AccessEnumMemberThroughThis");
+ com.github.javaparser.ast.body.EnumDeclaration enumDecl = Navigator.demandEnum(cu, "AccessEnumMemberThroughThis");
+ MethodDeclaration method = Navigator.demandMethod(enumDecl, "getLabel2");
+ ReturnStmt returnStmt = (ReturnStmt) method.getBody().get().getStatements().get(0);
+ Expression expression = returnStmt.getExpression().get();
+
+ ResolvedType ref = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression);
+ assertEquals("java.lang.String", ref.describe());
+ }
+
+ @Test
+ public void accessFieldThroughSuper() {
+ CompilationUnit cu = parseSample("AccessThroughSuper");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "AccessThroughSuper.SubClass");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "fieldTest");
+ ReturnStmt returnStmt = (ReturnStmt) method.getBody().get().getStatements().get(0);
+ Expression expression = returnStmt.getExpression().get();
+
+ ResolvedType ref = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression);
+ assertEquals("java.lang.String", ref.describe());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/GenericsResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/GenericsResolutionTest.java
new file mode 100644
index 000000000..bfc4bfd58
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/GenericsResolutionTest.java
@@ -0,0 +1,440 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.expr.ThisExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.resolution.Value;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.util.List;
+import java.util.Optional;
+
+import static org.junit.Assert.assertEquals;
+
+public class GenericsResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void resolveFieldWithGenericTypeToString() {
+ CompilationUnit cu = parseSample("Generics");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Generics");
+ VariableDeclarator fieldS = Navigator.demandField(clazz, "s");
+
+ SymbolSolver symbolSolver = new SymbolSolver(new ReflectionTypeSolver());
+ Optional<Value> symbolReference = symbolSolver.solveSymbolAsValue("s", fieldS);
+
+ assertEquals(true, symbolReference.isPresent());
+ assertEquals("s", symbolReference.get().getName());
+
+ ResolvedType type = symbolReference.get().getType();
+ assertEquals(1, type.asReferenceType().typeParametersValues().size());
+ assertEquals("java.lang.String", type.asReferenceType().typeParametersValues().get(0).describe());
+ }
+
+ @Test
+ public void resolveFieldWithGenericTypeToDeclaredClass() {
+ CompilationUnit cu = parseSample("Generics");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Generics");
+ VariableDeclarator fieldS = Navigator.demandField(clazz, "g");
+
+ SymbolSolver symbolSolver = new SymbolSolver(new ReflectionTypeSolver());
+ Optional<Value> symbolReference = symbolSolver.solveSymbolAsValue("g", fieldS);
+
+ assertEquals(true, symbolReference.isPresent());
+ assertEquals("g", symbolReference.get().getName());
+
+ ResolvedType type = symbolReference.get().getType();
+ assertEquals(1, type.asReferenceType().typeParametersValues().size());
+ assertEquals("me.tomassetti.symbolsolver.javaparser.Generics", type.asReferenceType().typeParametersValues().get(0).describe());
+ }
+
+ @Test
+ public void resolveFieldWithGenericTypeToInteger() {
+ CompilationUnit cu = parseSample("Generics");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Generics");
+ VariableDeclarator fieldS = Navigator.demandField(clazz, "i");
+
+ SymbolSolver symbolSolver = new SymbolSolver(new ReflectionTypeSolver());
+ Optional<Value> symbolReference = symbolSolver.solveSymbolAsValue("i", fieldS);
+
+ assertEquals(true, symbolReference.isPresent());
+ assertEquals("i", symbolReference.get().getName());
+
+ ResolvedType type = symbolReference.get().getType();
+ assertEquals(1, type.asReferenceType().typeParametersValues().size());
+ assertEquals("java.lang.Integer", type.asReferenceType().typeParametersValues().get(0).describe());
+ }
+
+ @Test
+ public void resolveFieldOfVariableType() {
+ CompilationUnit cu = parseSample("Generics");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "SomeCollection");
+ VariableDeclarator field = Navigator.demandField(clazz, "a");
+
+ SymbolSolver symbolSolver = new SymbolSolver(new ReflectionTypeSolver());
+ Optional<Value> symbolReference = symbolSolver.solveSymbolAsValue("a", field);
+
+ assertEquals(true, symbolReference.isPresent());
+ assertEquals("a", symbolReference.get().getName());
+
+ ResolvedType type = symbolReference.get().getType();
+ assertEquals(true, type.isTypeVariable());
+ assertEquals("A", type.describe());
+ }
+
+ @Test
+ public void resolveFieldOfGenericReferringToVariableType() {
+ CompilationUnit cu = parseSample("Generics");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "SomeCollection");
+ VariableDeclarator field = Navigator.demandField(clazz, "as");
+
+ SymbolSolver symbolSolver = new SymbolSolver(new ReflectionTypeSolver());
+ Optional<Value> symbolReference = symbolSolver.solveSymbolAsValue("as", field);
+
+ assertEquals(true, symbolReference.isPresent());
+ assertEquals("as", symbolReference.get().getName());
+
+ ResolvedType type = symbolReference.get().getType();
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("java.util.List<A>", type.describe());
+ assertEquals(1, type.asReferenceType().typeParametersValues().size());
+ ResolvedType typeParam = type.asReferenceType().typeParametersValues().get(0);
+ assertEquals(true, typeParam.isTypeVariable());
+ assertEquals("A", typeParam.describe());
+ }
+
+ @Test
+ public void resolveUsageOfGenericFieldSimpleCase() {
+ CompilationUnit cu = parseSample("Generics");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "SomeCollection");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "foo1");
+
+ ExpressionStmt stmt = (ExpressionStmt) method.getBody().get().getStatements().get(0);
+ Expression expression = stmt.getExpression();
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("java.lang.String", type.describe());
+ }
+
+ //PRIMA UN TEST CHE DICA CHE IL TIPO DEL CAMPO AS e' LIST<A> NON LIST<E>
+ @Test
+ public void resolveUsageOfGenericFieldIntermediateCase() {
+ CompilationUnit cu = parseSample("Generics");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "SomeCollection");
+
+ VariableDeclarator field = Navigator.demandField(clazz, "as");
+
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(field);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("java.util.List<A>", type.describe());
+ assertEquals(1, type.asReferenceType().typeParametersValues().size());
+ assertEquals(true, type.asReferenceType().typeParametersValues().get(0).isTypeVariable());
+ assertEquals("A", type.asReferenceType().typeParametersValues().get(0).describe());
+ }
+
+ @Test
+ public void resolveUsageOfGenericFieldAdvancedCase() {
+ CompilationUnit cu = parseSample("Generics");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "SomeCollection");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "foo2");
+
+ ExpressionStmt stmt = (ExpressionStmt) method.getBody().get().getStatements().get(0);
+ Expression expression = stmt.getExpression();
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("java.util.List<java.lang.String>", type.describe());
+ assertEquals(1, type.asReferenceType().typeParametersValues().size());
+ assertEquals(false, type.asReferenceType().typeParametersValues().get(0).isTypeVariable());
+ assertEquals("java.lang.String", type.asReferenceType().typeParametersValues().get(0).describe());
+ }
+
+ @Test
+ public void resolveUsageOfMethodOfGenericClass() {
+ CompilationUnit cu = parseSample("Generics");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "GenericMethodCalls.Derived");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "caller");
+ MethodCallExpr expression = Navigator.findMethodCall(method, "callee").get();
+
+ MethodUsage methodUsage = JavaParserFacade.get(new ReflectionTypeSolver()).solveMethodAsUsage(expression);
+
+ assertEquals("callee", methodUsage.getName());
+ }
+
+ @Test
+ public void resolveElementOfList() {
+ CompilationUnit cu = parseSample("ElementOfList");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "ElementOfList");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "foo");
+ VariableDeclarator variableDeclarator = Navigator.demandVariableDeclaration(method, "a").get();
+ Expression expression = variableDeclarator.getInitializer().get();
+
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("Comment", type.describe());
+ }
+
+ @Test
+ public void resolveElementOfListAdvancedExample() {
+ CompilationUnit cu = parseSample("ElementOfList");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "ElementOfList");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "annotations");
+ VariableDeclarator variableDeclarator = Navigator.demandVariableDeclaration(method, "a").get();
+ Expression expression = variableDeclarator.getInitializer().get();
+
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("AnnotationExpr", type.describe());
+ }
+
+ @Test
+ public void genericsInheritance() {
+ CompilationUnit cu = parseSample("MethodTypeParams");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "VoidVisitorAdapter");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "visit");
+ MethodCallExpr call = Navigator.findMethodCall(method, "accept").get();
+ Expression thisRef = call.getArguments().get(0);
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ ResolvedType voidVisitorAdapterOfA = javaParserFacade.getType(thisRef);
+ List<ResolvedReferenceType> allAncestors = voidVisitorAdapterOfA.asReferenceType().getAllAncestors();
+ assertEquals(2, allAncestors.size());
+ }
+
+ @Test
+ public void methodTypeParams() {
+ CompilationUnit cu = parseSample("MethodTypeParams");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "VoidVisitorAdapter");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "visit");
+ MethodCallExpr call = Navigator.findMethodCall(method, "accept").get();
+
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(call);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("void", type.describe());
+ }
+
+ @Test
+ public void classCastScope() {
+ CompilationUnit cu = parseSample("ClassCast");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "ClassCast");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "getNodesByType");
+ MethodCallExpr call = Navigator.findMethodCall(method, "cast").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ Expression scope = call.getScope().get();
+ ResolvedType type = JavaParserFacade.get(typeSolver).getType(scope);
+
+ //System.out.println(typeUsage);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("java.lang.Class<N>", type.describe());
+ }
+
+ @Test
+ public void classCast() {
+ CompilationUnit cu = parseSample("ClassCast");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "ClassCast");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "getNodesByType");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(returnStmt.getExpression().get());
+
+ assertEquals(true, type.isTypeVariable());
+ assertEquals("N", type.describe());
+ }
+
+ @Test
+ public void typeParamOnReturnTypeStep1() {
+ CompilationUnit cu = parseSample("TypeParamOnReturnType");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypeParamOnReturnType");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "nodeEquals");
+ ThisExpr thisExpr = Navigator.findNodeOfGivenClass(method, ThisExpr.class);
+
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(thisExpr);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("TypeParamOnReturnType", type.describe());
+ }
+
+ @Test
+ public void typeParamOnReturnTypeStep2() {
+ CompilationUnit cu = parseSample("TypeParamOnReturnType");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypeParamOnReturnType");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "nodeEquals");
+ NameExpr n1 = Navigator.findNameExpression(method, "n1").get();
+
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(n1);
+
+ assertEquals(true, type.isTypeVariable());
+ assertEquals("T", type.describe());
+ }
+
+ @Test
+ public void typeParamOnReturnTypeStep3() {
+ CompilationUnit cu = parseSample("TypeParamOnReturnType");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypeParamOnReturnType");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "nodeEquals");
+ MethodCallExpr call = Navigator.findMethodCall(method, "accept").get();
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type = javaParserFacade.getType(call);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("java.lang.Boolean", type.describe());
+ }
+
+ @Test
+ public void typeParamOnReturnType() {
+ CompilationUnit cu = parseSample("TypeParamOnReturnType");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypeParamOnReturnType");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "nodeEquals");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(returnStmt.getExpression().get());
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("boolean", type.describe());
+ }
+
+ /*@Test
+ public void genericCollectionWithWildcardsAndExtensionsPrep() {
+ CompilationUnit cu = parseSample("GenericCollectionWithExtension");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Foo");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "bar");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+
+ TypeSolver typeSolver = new JreTypeSolver();
+ MethodCallExpr call = (MethodCallExpr) returnStmt.getExpr();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ List<TypeUsage> params = new ArrayList<>();
+ if (call.getArgs() != null) {
+ for (Expression param : call.getArgs()) {
+ params.add(javaParserFacade.getType(param, false));
+ }
+ }
+ Context context = JavaParserFactory.getContext(call, typeSolver);
+
+ ReferenceTypeUsage typeOfScope = javaParserFacade.getType(call.getScope()).asReferenceType();
+ me.tomassetti.symbolsolver.model.declarations.TypeDeclaration typeDeclaration = typeOfScope.getTypeDeclaration();
+ List<TypeUsage> typeParametersValues = typeOfScope.typeParametersValues();
+
+ List<MethodUsage> methods = new ArrayList<>();
+ for (Method m : List.class.getMethods()) {
+ if (m.getName().equals("addAll") && !m.isBridge() && !m.isSynthetic()) {
+ me.tomassetti.symbolsolver.model.declarations.MethodDeclaration methodDeclaration = new ReflectionMethodDeclaration(m, typeSolver);
+ if (methods.size() == 0) {
+ // ok, e' il primo
+ ReferenceTypeUsage paramType = methodDeclaration.getParam(0).getType(typeSolver).asReferenceType();
+ assertTrue(paramType.asReferenceType().typeParametersValues().get(0).isWildcard());
+ }
+ MethodUsage mu = new MethodUsage(methodDeclaration, typeSolver);
+ int i = 0;
+ for (TypeParameter tp : typeDeclaration.getTypeParameters()) {
+ mu = mu.replaceTypeParameter(tp.getName(), typeParametersValues.get(i));
+ i++;
+ }
+ methods.add(mu);
+ }
+
+ }
+
+ assertTrue(MethodResolutionLogic.isApplicable(methods.get(0), "addAll", params, typeSolver));
+ //Optional<MethodUsage> methodUsage = MethodResolutionLogic.findMostApplicableUsage(methods, "addAll", params, typeSolver);
+
+ //Optional<MethodUsage> methodUsage = typeDeclaration.solveMethodAsUsage("addAll", params, typeSolver, context, typeParametersValues);
+
+ //Optional<MethodUsage> methodUsage = context.solveMethodAsUsage("addAll", params, typeSolver);
+
+ //assertTrue(methodUsage.isPresent());
+
+ }*/
+
+ @Test
+ public void genericCollectionWithWildcardsAndExtensions() {
+ CompilationUnit cu = parseSample("GenericCollectionWithExtension");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Foo");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "bar");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ Expression returnStmtExpr = returnStmt.getExpression().get();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ ResolvedType type = javaParserFacade.getType(returnStmtExpr);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("boolean", type.describe());
+ }
+
+ @Test
+ public void methodWithGenericParameterTypes() {
+ CompilationUnit cu = parseSample("GenericCollectionWithExtension");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Foo");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "bar");
+ MethodCallExpr methodCall = Navigator.findMethodCall(method, "foo").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ MethodUsage methodUsage = javaParserFacade.solveMethodAsUsage(methodCall);
+
+ assertEquals("foo", methodUsage.getName());
+ }
+
+ @Test
+ public void genericCollectionWithWildcards() {
+ CompilationUnit cu = parseSample("GenericCollection");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Foo");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "bar");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ Expression returnStmtExpr = returnStmt.getExpression().get();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+
+ ResolvedType type = javaParserFacade.getType(returnStmtExpr);
+
+ assertEquals(false, type.isTypeVariable());
+ assertEquals("boolean", type.describe());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/JavaParserFacadeResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/JavaParserFacadeResolutionTest.java
new file mode 100644
index 000000000..37fec2647
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/JavaParserFacadeResolutionTest.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.*;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.resolution.types.ResolvedUnionType;
+import com.github.javaparser.symbolsolver.JavaSymbolSolver;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+
+public class JavaParserFacadeResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void typeDeclarationSuperClassImplicitlyIncludeObject() {
+ CompilationUnit cu = parseSample("Generics");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Generics");
+ ResolvedTypeDeclaration typeDeclaration = JavaParserFacade.get(new ReflectionTypeSolver()).getTypeDeclaration(clazz);
+ ResolvedReferenceType superclass = typeDeclaration.asClass().getSuperClass();
+ assertEquals(Object.class.getCanonicalName(), superclass.getQualifiedName());
+ }
+
+ // See issue 42
+ @Test
+ public void solvingReferenceToUnsupportedOperationException() {
+ String code = "public class Bla {\n" +
+ " public void main()\n" +
+ " {\n" +
+ " try\n" +
+ " {\n" +
+ " int i = 0;\n" +
+ " }\n" +
+ " catch (UnsupportedOperationException e)\n" +
+ " {\n" +
+ " String s;\n" +
+ " e.getMessage();\n" +
+ " }\n" +
+ " }\n" +
+ "}";
+ MethodCallExpr methodCallExpr = Navigator.findNodeOfGivenClass(JavaParser.parse(code), MethodCallExpr.class);
+ MethodUsage methodUsage = JavaParserFacade.get(new ReflectionTypeSolver()).solveMethodAsUsage(methodCallExpr);
+ assertEquals("java.lang.Throwable.getMessage()", methodUsage.getQualifiedSignature());
+ }
+
+ // See issue 46
+ @Test
+ public void solvingReferenceToCatchClauseParam() {
+ String code = "public class Bla {\n" +
+ " public void main()\n" +
+ " {\n" +
+ " try\n" +
+ " {\n" +
+ " int i = 0;\n" +
+ " }\n" +
+ " catch (UnsupportedOperationException e)\n" +
+ " {\n" +
+ " String s;\n" +
+ " e.getMessage();\n" +
+ " }\n" +
+ " }\n" +
+ "}";
+ MethodCallExpr methodCallExpr = Navigator.findNodeOfGivenClass(JavaParser.parse(code), MethodCallExpr.class);
+ NameExpr nameE = (NameExpr)methodCallExpr.getScope().get();
+ SymbolReference<? extends ResolvedValueDeclaration> symbolReference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(nameE);
+ assertEquals(true, symbolReference.isSolved());
+ assertEquals(true, symbolReference.getCorrespondingDeclaration().isParameter());
+ assertEquals("e", symbolReference.getCorrespondingDeclaration().asParameter().getName());
+ assertEquals("java.lang.UnsupportedOperationException", symbolReference.getCorrespondingDeclaration().asParameter().getType().asReferenceType().getQualifiedName());
+ }
+
+ // See issue 47
+ @Test
+ public void solvingReferenceToAnAncestorInternalClass() {
+ String code = "public class Foo {\n" +
+ " public class Base {\n" +
+ " public class X {\n" +
+ " }\n" +
+ " }\n" +
+ "\n" +
+ " public class Derived extends Base {\n" +
+ " public X x = null;\n" +
+ " }\n" +
+ "}";
+ FieldDeclaration fieldDeclaration = Navigator.findNodeOfGivenClass(JavaParser.parse(code), FieldDeclaration.class);
+ Type jpType = fieldDeclaration.getCommonType();
+ ResolvedType jssType = JavaParserFacade.get(new ReflectionTypeSolver()).convertToUsage(jpType);
+ assertEquals("Foo.Base.X", jssType.asReferenceType().getQualifiedName());
+ }
+
+ // See issue 119
+ @Test
+ public void solveTryWithResourceVariable() {
+ String code = "import java.util.Scanner; class A { void foo() { try (Scanner sc = new Scanner(System.in)) {\n" +
+ " sc.nextLine();\n" +
+ "} } }";
+ CompilationUnit cu = JavaParser.parse(code);
+ MethodCallExpr methodCallExpr = Navigator.findMethodCall(cu, "nextLine").get();
+ Expression scope = methodCallExpr.getScope().get();
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(scope);
+ assertEquals(true, type.isReferenceType());
+ assertEquals("java.util.Scanner", type.asReferenceType().getQualifiedName());
+ }
+
+ private CompilationUnit parseWithTypeSolver(String code) {
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ParserConfiguration parserConfiguration = new ParserConfiguration();
+ parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
+ JavaParser javaParser = new JavaParser(parserConfiguration);
+ return javaParser.parse(ParseStart.COMPILATION_UNIT, new StringProvider(code)).getResult().get();
+ }
+
+ @Test
+ public void solveMultiCatchType() {
+ String code = "class A {\n" +
+ " public void foo() {\n" +
+ " try {\n" +
+ " \n" +
+ " } catch (IllegalStateException | IllegalArgumentException e) {\n" +
+ " \n" +
+ " }\n" +
+ " }\n" +
+ " }";
+ CompilationUnit cu = parseWithTypeSolver(code);
+ CatchClause catchClause = Navigator.findNodeOfGivenClass(cu, CatchClause.class);
+ Type jpType = catchClause.getParameter().getType();
+ ResolvedType jssType = jpType.resolve();
+ assertEquals(true, jssType instanceof ResolvedUnionType);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/LambdaResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/LambdaResolutionTest.java
new file mode 100644
index 000000000..3620c5230
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/LambdaResolutionTest.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.LambdaExpr;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class LambdaResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void lambdaMapParameter() {
+ CompilationUnit cu = parseSample("Lambda");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "lambdaMap");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ MethodCallExpr methodCallExpr = (MethodCallExpr) returnStmt.getExpression().get();
+ Expression expression = methodCallExpr.getArguments().get(0);
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type = javaParserFacade.getType(expression);
+ assertEquals("java.util.function.Function<? super java.lang.String, ? extends java.lang.String>", type.describe());
+ }
+
+ @Test
+ public void personsStream() {
+ CompilationUnit cu = parseSample("Lambda");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "lambdaMap");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ Expression expression = returnStmt.getExpression().get();
+ expression = Navigator.findMethodCall(expression, "stream").get();
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type = javaParserFacade.getType(expression);
+ assertEquals("java.util.stream.Stream<java.lang.String>", type.describe());
+ }
+
+ @Test
+ public void lambdaMap() {
+ CompilationUnit cu = parseSample("Lambda");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration m1 = Navigator.demandMethod(clazz, "lambdaMap");
+ MethodDeclaration m2 = Navigator.demandMethod(clazz, "lambdaMap2");
+ ReturnStmt returnStmt1 = Navigator.findReturnStmt(m1);
+ ReturnStmt returnStmt2 = Navigator.findReturnStmt(m2);
+ Expression e1 = returnStmt1.getExpression().get();
+ Expression e2 = returnStmt2.getExpression().get();
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type1 = javaParserFacade.getType(e1);
+ ResolvedType type2 = javaParserFacade.getType(e2);
+ assertEquals("java.util.stream.Stream<java.lang.String>", type1.describe());
+ assertEquals("java.util.stream.Stream<java.util.stream.IntStream>", type2.describe());
+ }
+
+ @Test
+ public void lambdaReduce() {
+ CompilationUnit cu = parseSample("Lambda");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "reduce");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ Expression expr = returnStmt.getExpression().get();
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type1 = javaParserFacade.getType(expr);
+ assertEquals("java.util.Optional<java.lang.Integer>", type1.describe());
+ }
+
+ @Test
+ public void lambdaBifunc() {
+ CompilationUnit cu = parseSample("Lambda");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "bifunc");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ Expression expr = returnStmt.getExpression().get();
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type1 = javaParserFacade.getType(expr);
+ assertEquals("double", type1.describe());
+ }
+
+ @Test
+ public void lambdaCollectParam() {
+ CompilationUnit cu = parseSample("LambdaCollect");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "lambdaMap");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ MethodCallExpr methodCallExpr = (MethodCallExpr) returnStmt.getExpression().get();
+ // Collectors.toList()
+ Expression expression = methodCallExpr.getArguments().get(0);
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type = javaParserFacade.getType(expression);
+ assertEquals("java.util.stream.Collector<T, ? extends java.lang.Object, java.util.List<T>>", type.describe());
+ }
+
+ @Test
+ public void lambdaCollect() {
+ CompilationUnit cu = parseSample("LambdaCollect");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "lambdaMap");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ Expression expression = returnStmt.getExpression().get();
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type = javaParserFacade.getType(expression);
+ assertEquals("java.util.List<java.lang.String>", type.describe());
+ }
+
+ @Test
+ public void lambdaBlockExplicitReturn() {
+ CompilationUnit cu = parseSample("LambdaMulti");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "lambdaSingleReturn");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ Expression expression = returnStmt.getExpression().get();
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type = javaParserFacade.getType(expression);
+ assertEquals("java.lang.String", type.describe());
+ }
+
+ @Test
+ public void lambdaBlockMultiLineReturn() {
+ CompilationUnit cu = parseSample("LambdaMulti");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "multiLineReturn");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ Expression expression = returnStmt.getExpression().get();
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type = javaParserFacade.getType(expression);
+ assertEquals("java.lang.String", type.describe());
+ }
+
+ @Test
+ public void typeOfVoidLambda() {
+ CompilationUnit cu = parseSample("LambdaVoid");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "lambdaEmpty");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ Expression expression = returnStmt.getExpression().get();
+ LambdaExpr lambdaExpr = Navigator.findNodeOfGivenClass(expression, LambdaExpr.class);
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type = javaParserFacade.getType(lambdaExpr);
+ assertEquals("void", type.describe());
+ }
+
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionLogicTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionLogicTest.java
new file mode 100644
index 000000000..b53607dbd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionLogicTest.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+
+public class MethodsResolutionLogicTest extends AbstractResolutionTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ File srcNewCode = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core"));
+ CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver();
+ combinedTypeSolverNewCode.add(new ReflectionTypeSolver());
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(srcNewCode));
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources"))));
+ typeSolver = combinedTypeSolverNewCode;
+ }
+
+ @Test
+ public void compatibilityShouldConsiderAlsoTypeVariablesNegative() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ ResolvedReferenceType stringType = (ResolvedReferenceType) ReflectionFactory.typeUsageFor(String.class, typeSolver);
+ ResolvedReferenceType rawClassType = (ResolvedReferenceType) ReflectionFactory.typeUsageFor(Class.class, typeSolver);
+ assertEquals(true, rawClassType.isRawType());
+ ResolvedReferenceType classOfStringType = (ResolvedReferenceType) rawClassType.replaceTypeVariables(rawClassType.getTypeDeclaration().getTypeParameters().get(0), stringType);
+ MethodUsage mu = constructorDeclaration.getAllMethods().stream().filter(m -> m.getDeclaration().getSignature().equals("isThrows(java.lang.Class<? extends java.lang.Throwable>)")).findFirst().get();
+
+ assertEquals(false, MethodResolutionLogic.isApplicable(mu, "isThrows", ImmutableList.of(classOfStringType), typeSolver));
+ }
+
+ @Test
+ public void compatibilityShouldConsiderAlsoTypeVariablesRaw() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ ResolvedReferenceType rawClassType = (ResolvedReferenceType) ReflectionFactory.typeUsageFor(Class.class, typeSolver);
+ MethodUsage mu = constructorDeclaration.getAllMethods().stream().filter(m -> m.getDeclaration().getSignature().equals("isThrows(java.lang.Class<? extends java.lang.Throwable>)")).findFirst().get();
+
+ assertEquals(true, MethodResolutionLogic.isApplicable(mu, "isThrows", ImmutableList.of(rawClassType), typeSolver));
+ }
+
+ @Test
+ public void compatibilityShouldConsiderAlsoTypeVariablesPositive() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ ResolvedReferenceType runtimeException = (ResolvedReferenceType) ReflectionFactory.typeUsageFor(RuntimeException.class, typeSolver);
+ ResolvedReferenceType rawClassType = (ResolvedReferenceType) ReflectionFactory.typeUsageFor(Class.class, typeSolver);
+ ResolvedReferenceType classOfRuntimeType = (ResolvedReferenceType) rawClassType.replaceTypeVariables(rawClassType.getTypeDeclaration().getTypeParameters().get(0), runtimeException);
+ MethodUsage mu = constructorDeclaration.getAllMethods().stream().filter(m -> m.getDeclaration().getSignature().equals("isThrows(java.lang.Class<? extends java.lang.Throwable>)")).findFirst().get();
+
+ assertEquals(true, MethodResolutionLogic.isApplicable(mu, "isThrows", ImmutableList.of(classOfRuntimeType), typeSolver));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionTest.java
new file mode 100644
index 000000000..2e6dc946d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionTest.java
@@ -0,0 +1,361 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.ThisExpr;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class MethodsResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void solveMethodAccessThroughSuper() {
+ CompilationUnit cu = parseSample("AccessThroughSuper");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "AccessThroughSuper.SubClass");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "methodTest");
+ ReturnStmt returnStmt = (ReturnStmt) method.getBody().get().getStatements().get(0);
+ Expression expression = returnStmt.getExpression().get();
+
+ ResolvedType ref = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression);
+ assertEquals("java.lang.String", ref.describe());
+ }
+
+ @Test
+ public void solveMethodWithClassExpressionAsParameter() {
+ CompilationUnit cu = parseSample("ClassExpression");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "ClassExpression");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "foo");
+ MethodCallExpr expression = Navigator.findMethodCall(method, "noneOf").get();
+
+ MethodUsage methodUsage = JavaParserFacade.get(new ReflectionTypeSolver()).solveMethodAsUsage(expression);
+ assertEquals("noneOf", methodUsage.getName());
+ }
+
+ @Test
+ public void solveMethodInInterfaceParent() {
+ CompilationUnit cu = parseSample("MethodCalls");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodCalls");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "inheritedInterfaceMethod");
+ MethodCallExpr expression = Navigator.findMethodCall(method, "toString").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ MethodUsage call1 = javaParserFacade.solveMethodAsUsage(expression);
+ assertEquals("java.lang.Object.toString()", call1.getQualifiedSignature());
+ }
+
+ @Test
+ public void solveMethodWithTypePromotionsToLong() {
+ CompilationUnit cu = parseSample("Issue338");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypePromotions");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "callingLong");
+
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(0).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("longParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(1).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("longParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(2).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("longParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(3).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("longParam", reference.getCorrespondingDeclaration().getName());
+ }
+
+ }
+
+ @Test
+ public void solveMethodWithTypePromotionsToInt() {
+ CompilationUnit cu = parseSample("Issue338");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypePromotions");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "callingInt");
+
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(0).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("intParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(1).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("intParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(2).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("intParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(3).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+
+ }
+
+ @Test
+ public void solveMethodWithTypePromotionsToShort() {
+ CompilationUnit cu = parseSample("Issue338");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypePromotions");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "callingShort");
+
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(0).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("shortParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(1).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("shortParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(2).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(3).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+
+ }
+
+ @Test
+ public void solveMethodWithTypePromotionsToByte() {
+ CompilationUnit cu = parseSample("Issue338");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypePromotions");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "callingByte");
+
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(0).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("byteParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(1).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(2).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(3).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+
+ }
+
+ @Test
+ public void solveMethodWithTypePromotionsToLongWithExtraParam() {
+ CompilationUnit cu = parseSample("Issue338");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypePromotionsWithExtraParam");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "callingLong");
+
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(0).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("longParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(1).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("longParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(2).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("longParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(3).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("longParam", reference.getCorrespondingDeclaration().getName());
+ }
+
+ }
+
+ @Test
+ public void solveMethodWithTypePromotionsToIntWithExtraParam() {
+ CompilationUnit cu = parseSample("Issue338");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypePromotionsWithExtraParam");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "callingInt");
+
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(0).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("intParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(1).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("intParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(2).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("intParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(3).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+
+ }
+
+ @Test
+ public void solveMethodWithTypePromotionsToShortWithExtraParam() {
+ CompilationUnit cu = parseSample("Issue338");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypePromotionsWithExtraParam");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "callingShort");
+
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(0).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("shortParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(1).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("shortParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(2).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(3).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+
+ }
+
+ @Test
+ public void solveMethodWithTypePromotionsToByteWithExtraParam() {
+ CompilationUnit cu = parseSample("Issue338");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypePromotionsWithExtraParam");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "callingByte");
+
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(0).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(true, reference.isSolved());
+ assertEquals("byteParam", reference.getCorrespondingDeclaration().getName());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(1).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(2).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+ {
+ MethodCallExpr expression = method.getBody().get().getStatements().get(3).asExpressionStmt().getExpression().asMethodCallExpr();
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression);
+ assertEquals(false, reference.isSolved());
+ }
+
+ }
+
+ @Test
+ public void callOnThisInAnonymousClass() {
+ CompilationUnit cu = parseSample("ThisInAnonymousClass");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Bar");
+
+ MethodCallExpr fooCall = Navigator.findMethodCall(clazz, "foo").get();
+
+ SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(fooCall);
+ assertEquals(true, reference.isSolved());
+ }
+
+ @Test
+ public void thisInAnonymousClass() {
+ CompilationUnit cu = parseSample("ThisInAnonymousClass");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Bar");
+
+ ThisExpr thisExpression = Navigator.findNodeOfGivenClass(clazz, ThisExpr.class);
+
+ ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(thisExpression);
+ assertEquals(true, type.isReferenceType());
+ assertEquals(true, type.asReferenceType().getTypeDeclaration() instanceof JavaParserAnonymousClassDeclaration);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/QualifiedNameResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/QualifiedNameResolutionTest.java
new file mode 100644
index 000000000..906ac68e6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/QualifiedNameResolutionTest.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class QualifiedNameResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void resolveLocalVariableInParentOfParent() {
+ CompilationUnit cu = parseSample("QualifiedNameTest");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "QualifiedNameTest");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "foo1");
+ NameExpr nameExpr = Navigator.findNameExpression(method, "s").get();
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = JavaParserFacade.get(new ReflectionTypeSolver()).solve(nameExpr);
+ assertTrue(ref.isSolved());
+ assertEquals("java.util.Scanner", ref.getCorrespondingDeclaration().getType().asReferenceType().getQualifiedName());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/StatementContextResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/StatementContextResolutionTest.java
new file mode 100644
index 000000000..b96abf721
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/StatementContextResolutionTest.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class StatementContextResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void resolveLocalVariableInParentOfParent() {
+ CompilationUnit cu = parseSample("LocalVariableInParent");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "LocalVariableInParent");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "foo1");
+ NameExpr nameExpr = Navigator.findNameExpression(method, "s").get();
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = JavaParserFacade.get(new ReflectionTypeSolver()).solve(nameExpr);
+ assertTrue(ref.isSolved());
+ assertEquals("java.lang.String", ref.getCorrespondingDeclaration().getType().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void resolveLocalVariableInParent() {
+ CompilationUnit cu = parseSample("LocalVariableInParent");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "LocalVariableInParent");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "foo3");
+ NameExpr nameExpr = Navigator.findNameExpression(method, "s").get();
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = JavaParserFacade.get(new ReflectionTypeSolver()).solve(nameExpr);
+ assertTrue(ref.isSolved());
+ assertEquals("java.lang.String", ref.getCorrespondingDeclaration().getType().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void resolveLocalVariableInSameParent() {
+ CompilationUnit cu = parseSample("LocalVariableInParent");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "LocalVariableInParent");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "foo2");
+ NameExpr nameExpr = Navigator.findNameExpression(method, "s").get();
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = JavaParserFacade.get(new ReflectionTypeSolver()).solve(nameExpr);
+ assertTrue(ref.isSolved());
+ assertEquals("java.lang.String", ref.getCorrespondingDeclaration().getType().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void resolveLocalAndSeveralAnnidatedLevels() {
+ CompilationUnit cu = parseSample("LocalVariableInParent");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "LocalVariableInParent");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "foo4");
+ MethodCallExpr call = Navigator.findMethodCall(method, "add").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = JavaParserFacade.get(typeSolver).solve(call.getScope().get());
+ assertTrue(ref.isSolved());
+ assertEquals("java.util.List<Comment>", ref.getCorrespondingDeclaration().getType().describe());
+
+ MethodUsage methodUsage = JavaParserFacade.get(typeSolver).solveMethodAsUsage(call);
+ assertEquals("add", methodUsage.getName());
+ }
+
+ @Test
+ public void resolveMethodOnGenericClass() {
+ CompilationUnit cu = parseSample("LocalVariableInParent");
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "LocalVariableInParent");
+ MethodDeclaration method = Navigator.demandMethod(referencesToField, "foo5");
+ MethodCallExpr call = Navigator.findMethodCall(method, "add").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = JavaParserFacade.get(typeSolver).solve(call.getScope().get());
+ assertTrue(ref.isSolved());
+ assertEquals("java.util.List<Comment>", ref.getCorrespondingDeclaration().getType().describe());
+
+ MethodUsage methodUsage = JavaParserFacade.get(typeSolver).solveMethodAsUsage(call);
+ assertEquals("add", methodUsage.getName());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverTest.java
new file mode 100644
index 000000000..eafe60122
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverTest.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * @author Federico Tomassetti
+ */
+public class SymbolSolverTest extends AbstractTest {
+
+ private TypeSolver typeSolverNewCode;
+ private SymbolSolver symbolSolver;
+
+ @Before
+ public void setup() {
+
+ File srcNewCode = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core"));
+ CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver();
+ combinedTypeSolverNewCode.add(new ReflectionTypeSolver());
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(srcNewCode));
+ combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources"))));
+ typeSolverNewCode = combinedTypeSolverNewCode;
+
+ symbolSolver = new SymbolSolver(typeSolverNewCode);
+ }
+
+ @Test
+ public void testSolveSymbolUnexisting() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ResolvedValueDeclaration> res = symbolSolver.solveSymbolInType(constructorDeclaration, "unexisting");
+ assertEquals(false, res.isSolved());
+ }
+
+ @Test
+ public void testSolveSymbolToDeclaredField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ResolvedValueDeclaration> res = symbolSolver.solveSymbolInType(constructorDeclaration, "name");
+ assertEquals(true, res.isSolved());
+ assertEquals(true, res.getCorrespondingDeclaration().isField());
+ }
+
+ @Test
+ public void testSolveSymbolToInheritedPublicField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ResolvedValueDeclaration> res = symbolSolver.solveSymbolInType(constructorDeclaration, "NODE_BY_BEGIN_POSITION");
+ assertEquals(true, res.isSolved());
+ assertEquals(true, res.getCorrespondingDeclaration().isField());
+ }
+
+ @Test
+ public void testSolveSymbolToInheritedPrivateField() {
+ JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
+
+ SymbolReference<? extends ResolvedValueDeclaration> res = symbolSolver.solveSymbolInType(constructorDeclaration, "parentNode");
+ assertEquals(false, res.isSolved());
+ }
+
+ @Test
+ public void testSolvePackageLocalClass() {
+ assertTrue(typeSolverNewCode.solveType("com.github.javaparser.FooClass").isClass());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistClassTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistClassTest.java
new file mode 100644
index 000000000..cf103f156
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistClassTest.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.resolution.UnsolvedSymbolException;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.*;
+
+public class SymbolSolverWithJavassistClassTest extends AbstractTest {
+ private TypeSolver typeSolver;
+ private SymbolSolver symbolSolver;
+ private JavassistClassDeclaration classDeclarationConcreteClass;
+ private JavassistClassDeclaration classDeclarationSubClassOwnJar;
+ private JavassistClassDeclaration classDeclarationInterfaceUserOwnJar;
+ private JavassistClassDeclaration classDeclarationSubClassIncludedJar;
+ private JavassistClassDeclaration classDeclarationInterfaceUserIncludedJar;
+ private JavassistClassDeclaration classDeclarationSubClassExcludedJar;
+ private JavassistClassDeclaration classDeclarationInterfaceUserExcludedJar;
+
+ @Before
+ public void setup() throws IOException {
+ final String pathToMainJar = adaptPath("src/test/resources/javassist_symbols/main_jar/main_jar.jar");
+ final String pathToIncludedJar = adaptPath("src/test/resources/javassist_symbols/included_jar/included_jar.jar");
+ typeSolver = new CombinedTypeSolver(new JarTypeSolver(pathToIncludedJar), new JarTypeSolver(pathToMainJar), new ReflectionTypeSolver());
+
+ symbolSolver = new SymbolSolver(typeSolver);
+
+ classDeclarationConcreteClass = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.ConcreteClass");
+ classDeclarationSubClassOwnJar = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.SubClassOwnJar");
+ classDeclarationSubClassIncludedJar = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.SubClassIncludedJar");
+ classDeclarationSubClassExcludedJar = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.SubClassExcludedJar");
+ classDeclarationInterfaceUserOwnJar = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.InterfaceUserOwnJar");
+ classDeclarationInterfaceUserIncludedJar = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.InterfaceUserIncludedJar");
+ classDeclarationInterfaceUserExcludedJar = (JavassistClassDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.InterfaceUserExcludedJar");
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanSolveFirstOwnField() {
+ assertCanSolveSymbol("STATIC_STRING", classDeclarationConcreteClass);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanSolveSecondOwnField() {
+ assertCanSolveSymbol("SECOND_STRING", classDeclarationConcreteClass);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCantResolveNonExistentField() {
+ SymbolReference<? extends ResolvedValueDeclaration> solvedSymbol = symbolSolver.solveSymbolInType(classDeclarationConcreteClass, "FIELD_THAT_DOES_NOT_EXIST");
+
+ assertFalse(solvedSymbol.isSolved());
+
+ try {
+ solvedSymbol.getCorrespondingDeclaration();
+ } catch (Exception e) {
+ assertTrue(e instanceof UnsupportedOperationException);
+ assertEquals("CorrespondingDeclaration not available for unsolved symbol.", e.getMessage());
+ return;
+ }
+ fail("Expected UnsupportedOperationException when requesting CorrespondingDeclaration on unsolved SymbolRefernce");
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFieldInSuper() {
+ assertCanSolveSymbol("SUPER_FIELD", classDeclarationSubClassOwnJar);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFieldInSuperIncludedJar() {
+ assertCanSolveSymbol("SUPER_FIELD", classDeclarationSubClassIncludedJar);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeThrowsExceptionOnResolveFieldInSuperExcludedJar() {
+ try {
+ symbolSolver.solveSymbolInType(classDeclarationSubClassExcludedJar, "SUPER_FIELD");
+ } catch (Exception e) {
+ assertTrue(e instanceof UnsolvedSymbolException);
+ assertEquals("Unsolved symbol : com.github.javaparser.javasymbolsolver.javassist_symbols.excluded_jar.SuperClassExcludedJar", e.getMessage());
+ return;
+ }
+ fail("Excepted NotFoundException wrapped in a RuntimeException, but got no exception.");
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFieldInInterface() {
+ assertCanSolveSymbol("INTERFACE_FIELD", classDeclarationInterfaceUserOwnJar);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFieldInInterfaceIncludedJar() {
+ assertCanSolveSymbol("INTERFACE_FIELD", classDeclarationInterfaceUserIncludedJar);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeThrowsExceptionOnResolveFieldInInterfaceExcludedJar() {
+ try {
+ symbolSolver.solveSymbolInType(classDeclarationInterfaceUserExcludedJar, "INTERFACE_FIELD");
+ } catch (Exception e) {
+ assertTrue(e instanceof UnsolvedSymbolException);
+ assertEquals("Unsolved symbol : com.github.javaparser.javasymbolsolver.javassist_symbols.excluded_jar.InterfaceExcludedJar", e.getMessage());
+ return;
+ }
+ fail("Excepted NotFoundException wrapped in a RuntimeException, but got no exception.");
+ }
+
+ private void assertCanSolveSymbol(String symbolName, JavassistClassDeclaration classDeclaration) {
+ SymbolReference<? extends ResolvedValueDeclaration> solvedSymbol = symbolSolver.solveSymbolInType(classDeclaration, symbolName);
+
+ assertTrue(solvedSymbol.isSolved());
+ assertEquals(symbolName, solvedSymbol.getCorrespondingDeclaration().asField().getName());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistEnumTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistEnumTest.java
new file mode 100644
index 000000000..120d2f14d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistEnumTest.java
@@ -0,0 +1,106 @@
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.resolution.UnsolvedSymbolException;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.javassistmodel.JavassistEnumDeclaration;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.*;
+import static org.junit.Assert.fail;
+
+public class SymbolSolverWithJavassistEnumTest extends AbstractTest {
+ private TypeSolver typeSolver;
+ private SymbolSolver symbolSolver;
+ private JavassistEnumDeclaration enumDeclarationConcrete;
+ private JavassistEnumDeclaration enumDeclarationInterfaceUserOwnJar;
+ private JavassistEnumDeclaration enumDeclarationInterfaceUserIncludedJar;
+ private JavassistEnumDeclaration enumDeclarationInterfaceUserExcludedJar;
+
+ @Before
+ public void setup() throws IOException {
+ final String pathToMainJar = adaptPath("src/test/resources/javassist_symbols/main_jar/main_jar.jar");
+ final String pathToIncludedJar = adaptPath("src/test/resources/javassist_symbols/included_jar/included_jar.jar");
+ typeSolver = new CombinedTypeSolver(new JarTypeSolver(pathToIncludedJar), new JarTypeSolver(pathToMainJar), new ReflectionTypeSolver());
+
+ symbolSolver = new SymbolSolver(typeSolver);
+
+ enumDeclarationConcrete = (JavassistEnumDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.ConcreteEnum");
+ enumDeclarationInterfaceUserOwnJar = (JavassistEnumDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.EnumInterfaceUserOwnJar");
+ enumDeclarationInterfaceUserIncludedJar = (JavassistEnumDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.EnumInterfaceUserIncludedJar");
+ enumDeclarationInterfaceUserExcludedJar = (JavassistEnumDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.EnumInterfaceUserExcludedJar");
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFirstEnumValue() {
+ assertCanSolveSymbol("ENUM_VAL_ONE", enumDeclarationConcrete);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveSecondEnumValue() {
+ assertCanSolveSymbol("ENUM_VAL_TWO", enumDeclarationConcrete);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFirstNormalField() {
+ assertCanSolveSymbol("STATIC_STRING", enumDeclarationConcrete);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveSecondNormalField() {
+ assertCanSolveSymbol("SECOND_STRING", enumDeclarationConcrete);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCantResolveNonExistentField() {
+ SymbolReference<? extends ResolvedValueDeclaration> solvedSymbol = symbolSolver.solveSymbolInType(enumDeclarationConcrete, "FIELD_THAT_DOES_NOT_EXIST");
+
+ assertFalse(solvedSymbol.isSolved());
+
+ try {
+ solvedSymbol.getCorrespondingDeclaration();
+ } catch (Exception e) {
+ assertTrue(e instanceof UnsupportedOperationException);
+ assertEquals("CorrespondingDeclaration not available for unsolved symbol.", e.getMessage());
+ return;
+ }
+ fail("Expected UnsupportedOperationException when requesting CorrespondingDeclaration on unsolved SymbolRefernce");
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFieldInInterface() {
+ assertCanSolveSymbol("INTERFACE_FIELD", enumDeclarationInterfaceUserOwnJar);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFieldInInterfaceIncludedJar() {
+ assertCanSolveSymbol("INTERFACE_FIELD", enumDeclarationInterfaceUserIncludedJar);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeThrowsExceptionOnResolveFieldInInterfaceExcludedJar() {
+ try {
+ symbolSolver.solveSymbolInType(enumDeclarationInterfaceUserExcludedJar, "INTERFACE_FIELD");
+ } catch (Exception e) {
+ assertTrue(e instanceof UnsolvedSymbolException);
+ assertEquals("Unsolved symbol : com.github.javaparser.javasymbolsolver.javassist_symbols.excluded_jar.InterfaceExcludedJar", e.getMessage());
+ return;
+ }
+ fail("Excepted NotFoundException wrapped in a RuntimeException, but got no exception.");
+ }
+
+ private void assertCanSolveSymbol(String symbolName, JavassistEnumDeclaration enumDeclaration) {
+ SymbolReference<? extends ResolvedValueDeclaration> solvedSymbol = symbolSolver.solveSymbolInType(enumDeclaration, symbolName);
+
+ assertTrue(solvedSymbol.isSolved());
+ assertEquals(symbolName, solvedSymbol.getCorrespondingDeclaration().asField().getName());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistInterfaceTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistInterfaceTest.java
new file mode 100644
index 000000000..7745e813f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/SymbolSolverWithJavassistInterfaceTest.java
@@ -0,0 +1,96 @@
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.resolution.UnsolvedSymbolException;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.symbolsolver.AbstractTest;
+import com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.*;
+
+public class SymbolSolverWithJavassistInterfaceTest extends AbstractTest {
+ private TypeSolver typeSolver;
+ private SymbolSolver symbolSolver;
+ private JavassistInterfaceDeclaration interfaceDeclarationStandalone;
+ private JavassistInterfaceDeclaration interfaceDeclarationSubInterfaceOwnJar;
+ private JavassistInterfaceDeclaration interfaceDeclarationSubInterfaceIncludedJar;
+ private JavassistInterfaceDeclaration interfaceDeclarationSubInterfaceExcludedJar;
+
+ @Before
+ public void setup() throws IOException {
+ final String pathToMainJar = adaptPath("src/test/resources/javassist_symbols/main_jar/main_jar.jar");
+ final String pathToIncludedJar = adaptPath("src/test/resources/javassist_symbols/included_jar/included_jar.jar");
+ typeSolver = new CombinedTypeSolver(new JarTypeSolver(pathToIncludedJar), new JarTypeSolver(pathToMainJar), new ReflectionTypeSolver());
+
+ symbolSolver = new SymbolSolver(typeSolver);
+
+ interfaceDeclarationStandalone = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.StandaloneInterface");
+ interfaceDeclarationSubInterfaceOwnJar = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.SubInterfaceOwnJar");
+ interfaceDeclarationSubInterfaceIncludedJar = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.SubInterfaceIncludedJar");
+ interfaceDeclarationSubInterfaceExcludedJar = (JavassistInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar.SubInterfaceExcludedJar");
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFirstNormalField() {
+ assertCanSolveSymbol("STATIC_STRING", interfaceDeclarationStandalone);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveSecondNormalField() {
+ assertCanSolveSymbol("SECOND_STRING", interfaceDeclarationStandalone);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCantResolveNonExistentField() {
+ SymbolReference<? extends ResolvedValueDeclaration> solvedSymbol = symbolSolver.solveSymbolInType(interfaceDeclarationStandalone, "FIELD_THAT_DOES_NOT_EXIST");
+
+ assertFalse(solvedSymbol.isSolved());
+
+ try {
+ solvedSymbol.getCorrespondingDeclaration();
+ } catch (Exception e) {
+ assertTrue(e instanceof UnsupportedOperationException);
+ assertEquals("CorrespondingDeclaration not available for unsolved symbol.", e.getMessage());
+ return;
+ }
+ fail("Expected UnsupportedOperationException when requesting CorrespondingDeclaration on unsolved SymbolRefernce");
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFieldInExtendedInterfaceOwnJar() {
+ assertCanSolveSymbol("INTERFACE_FIELD", interfaceDeclarationSubInterfaceOwnJar);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeCanResolveFieldInExtendedInterfaceIncludedJar() {
+ assertCanSolveSymbol("INTERFACE_FIELD", interfaceDeclarationSubInterfaceIncludedJar);
+ }
+
+ @Test
+ public void testSolveSymbolInTypeThrowsExceptionOnResolveFieldInExtendedInterfaceExcludedJar() {
+ try {
+ symbolSolver.solveSymbolInType(interfaceDeclarationSubInterfaceExcludedJar, "INTERFACE_FIELD");
+ } catch (Exception e) {
+ assertTrue(e instanceof UnsolvedSymbolException);
+ assertEquals("Unsolved symbol : com.github.javaparser.javasymbolsolver.javassist_symbols.excluded_jar.InterfaceExcludedJar", e.getMessage());
+ return;
+ }
+ fail("Excepted NotFoundException wrapped in a RuntimeException, but got no exception.");
+ }
+
+ private void assertCanSolveSymbol(String symbolName, JavassistInterfaceDeclaration interfaceDeclaration) {
+ SymbolReference<? extends ResolvedValueDeclaration> solvedSymbol = symbolSolver.solveSymbolInType(interfaceDeclaration, symbolName);
+
+ assertTrue(solvedSymbol.isSolved());
+ assertEquals(symbolName, solvedSymbol.getCorrespondingDeclaration().asField().getName());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/VariadicResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/VariadicResolutionTest.java
new file mode 100644
index 000000000..48c0ca708
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/VariadicResolutionTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class VariadicResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void issue7() {
+ CompilationUnit cu = parseSample("Generics_issue7");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "SomeCollection");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "foo3");
+
+ ReturnStmt stmt = (ReturnStmt) method.getBody().get().getStatements().get(0);
+ Expression expression = stmt.getExpression().get();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver());
+ ResolvedType type = javaParserFacade.getType(expression);
+ assertEquals(true, type.isReferenceType());
+ assertEquals(List.class.getCanonicalName(), type.asReferenceType().getQualifiedName());
+ assertEquals("java.util.List<java.lang.Long>", type.describe());
+ }
+
+ @Test
+ public void methodCallWithReferenceTypeAsVaridicArgumentIsSolved() {
+ CompilationUnit cu = parseSample("MethodCalls");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodCalls");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "variadicMethod");
+ MethodCallExpr callExpr = Navigator.findMethodCall(method, "variadicMethod").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ MethodUsage callee = javaParserFacade.solveMethodAsUsage(callExpr);
+ assertEquals("variadicMethod", callee.getName());
+ }
+
+ @Test
+ public void resolveVariadicMethodWithGenericArgument() {
+ CompilationUnit cu = parseSample("MethodCalls");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodCalls");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "genericMethodTest");
+ MethodCallExpr callExpr = Navigator.findMethodCall(method, "variadicWithGenericArg").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ MethodUsage callee = javaParserFacade.solveMethodAsUsage(callExpr);
+ assertEquals("variadicWithGenericArg", callee.getName());
+ }
+
+ @Test
+ public void selectMostSpecificVariadic() {
+ CompilationUnit cu = parseSample("MethodCalls");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodCalls");
+
+ MethodDeclaration method = Navigator.demandMethod(clazz, "variadicTest");
+ List<MethodCallExpr> calls = method.findAll(MethodCallExpr.class);
+
+ File src = adaptPath(new File("src/test/resources"));
+ TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JavaParserTypeSolver(src));
+
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ MethodUsage call1 = javaParserFacade.solveMethodAsUsage(calls.get(0));
+ MethodUsage call2 = javaParserFacade.solveMethodAsUsage(calls.get(1));
+ assertEquals("int", call1.returnType().describe());
+ assertEquals("void", call2.returnType().describe());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/VarTypeTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/VarTypeTest.java
new file mode 100644
index 000000000..d8d0eafe0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/VarTypeTest.java
@@ -0,0 +1,62 @@
+package com.github.javaparser.symbolsolver.resolution.javaparser;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseStart;
+import com.github.javaparser.ParserConfiguration;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.type.VarType;
+import com.github.javaparser.resolution.types.ResolvedPrimitiveType;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.JavaSymbolSolver;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static com.github.javaparser.ParserConfiguration.LanguageLevel.JAVA_10;
+import static com.github.javaparser.Providers.provider;
+import static org.junit.Assert.assertEquals;
+
+public class VarTypeTest {
+ private final TypeSolver typeSolver = new ReflectionTypeSolver();
+ private final JavaParser javaParser = new JavaParser(new ParserConfiguration()
+ .setLanguageLevel(JAVA_10)
+ .setSymbolResolver(new JavaSymbolSolver(typeSolver)));
+
+ @Test
+ public void resolveAPrimitive() {
+ CompilationUnit ast = javaParser.parse(ParseStart.COMPILATION_UNIT, provider("class X{void x(){var abc = 1;}}")).getResult().get();
+ VarType varType = ast.findFirst(VarType.class).get();
+
+ ResolvedType resolvedType = varType.resolve();
+
+ assertEquals(ResolvedPrimitiveType.INT, resolvedType);
+ }
+
+ @Test
+ public void resolveAReferenceType() {
+ CompilationUnit ast = javaParser.parse(ParseStart.COMPILATION_UNIT, provider("class X{void x(){var abc = \"\";}}")).getResult().get();
+ VarType varType = ast.findFirst(VarType.class).get();
+
+ ResolvedType resolvedType = varType.resolve();
+
+ assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver), resolvedType);
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void failResolveNoInitializer() {
+ CompilationUnit ast = javaParser.parse(ParseStart.COMPILATION_UNIT, provider("class X{void x(){var abc;}}")).getResult().get();
+ VarType varType = ast.findFirst(VarType.class).get();
+
+ varType.resolve();
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void failResolveWrongLocation() {
+ CompilationUnit ast = javaParser.parse(ParseStart.COMPILATION_UNIT, provider("class X{void x(var x){};}")).getResult().get();
+ VarType varType = ast.findFirst(VarType.class).get();
+
+ varType.resolve();
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/ClassOrInterfaceDeclarationContextResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/ClassOrInterfaceDeclarationContextResolutionTest.java
new file mode 100644
index 000000000..a55941808
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/ClassOrInterfaceDeclarationContextResolutionTest.java
@@ -0,0 +1,490 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.javaparser.contexts;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.resolution.MethodAmbiguityException;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.resolution.types.ResolvedPrimitiveType;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.core.resolution.Context;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.contexts.ClassOrInterfaceDeclarationContext;
+import com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.resolution.Value;
+import com.github.javaparser.symbolsolver.model.typesystem.NullType;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.MemoryTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Optional;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * @author Federico Tomassetti
+ */
+public class ClassOrInterfaceDeclarationContextResolutionTest extends AbstractResolutionTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ }
+
+ @Test
+ public void getParentForTopClass() {
+ CompilationUnit cu = parseSample("ClassWithTypeVariables");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ assertFalse(null == context.getParent());
+ assertEquals(new CompilationUnitContext(cu, typeSolver), context.getParent());
+ }
+
+ @Test
+ public void solveExistingGenericType() {
+ CompilationUnit cu = parseSample("ClassWithTypeVariables");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<ResolvedType> a = context.solveGenericType("A", new MemoryTypeSolver());
+ Optional<ResolvedType> b = context.solveGenericType("B", new MemoryTypeSolver());
+ Optional<ResolvedType> c = context.solveGenericType("C", new MemoryTypeSolver());
+
+ assertEquals(true, a.isPresent());
+ assertEquals("A", a.get().describe());
+ assertEquals(true, a.get().isTypeVariable());
+ assertEquals(true, b.isPresent());
+ assertEquals("B", b.get().describe());
+ assertEquals(true, b.get().isTypeVariable());
+ assertEquals(true, c.isPresent());
+ assertEquals("C", c.get().describe());
+ assertEquals(true, c.get().isTypeVariable());
+ }
+
+ @Test
+ public void solveUnexistingGenericType() {
+ CompilationUnit cu = parseSample("ClassWithTypeVariables");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<ResolvedType> d = context.solveGenericType("D", new MemoryTypeSolver());
+
+ assertEquals(false, d.isPresent());
+ }
+
+ @Test
+ public void solveSymbolReferringToDeclaredInstanceField() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("i", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("int", ref.getCorrespondingDeclaration().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolReferringToDeclaredStaticField() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("j", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("long", ref.getCorrespondingDeclaration().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolReferringToInheritedInstanceField() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("k", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("boolean", ref.getCorrespondingDeclaration().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolReferringToInterfaceInheritedInstanceField() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("o", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("int", ref.getCorrespondingDeclaration().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolReferringToInheritedStaticField() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("m", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("char", ref.getCorrespondingDeclaration().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolReferringToUnknownElement() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("zzz", new MemoryTypeSolver());
+ assertEquals(false, ref.isSolved());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToDeclaredInstanceField() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("i", new MemoryTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("int", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToDeclaredStaticField() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("j", new MemoryTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("long", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToInheritedInstanceField() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("k", new MemoryTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("boolean", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToInterfaceInheritedInstanceField() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ ClassOrInterfaceDeclarationContext context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("o", new MemoryTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("int", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToInheritedStaticField() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("m", new MemoryTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("char", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToUnknownElement() {
+ CompilationUnit cu = parseSample("ClassWithSymbols");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("zzz", new MemoryTypeSolver());
+ assertEquals(false, ref.isPresent());
+ }
+
+ @Test
+ public void solveTypeRefToItself() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("A", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ }
+
+ @Test
+ public void solveTypeRefToUnexisting() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("Foo", new MemoryTypeSolver());
+ assertEquals(false, ref.isSolved());
+ }
+
+ @Test
+ public void solveTypeRefToObject() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("Object", new ReflectionTypeSolver());
+ assertEquals(true, ref.isSolved());
+ }
+
+ @Test
+ public void solveTypeRefToJavaLangObject() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("java.lang.Object", new ReflectionTypeSolver());
+ assertEquals(true, ref.isSolved());
+ }
+
+ @Test
+ public void solveTypeRefToInternalClass() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("B", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ }
+
+ @Test
+ public void solveTypeRefToInternalEnum() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("E", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ }
+
+ @Test
+ public void solveTypeRefToInternalOfInternalClass() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("C", new MemoryTypeSolver());
+ assertEquals(false, ref.isSolved());
+ }
+
+ @Test
+ public void solveTypeRefToAnotherClassInFile() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("Super", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ }
+
+ @Test
+ public void solveTypeRefToQualifiedInternalClass() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("A.B", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ }
+
+ @Test
+ public void solveTypeRefToQualifiedInternalOfInternalClass() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("B.C", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ }
+
+ @Test
+ public void solveTypeRefToMoreQualifiedInternalOfInternalClass() {
+ CompilationUnit cu = parseSample("ClassWithTypes");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("A.B.C", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ }
+
+ @Test
+ public void solveMethodSimpleCase() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedMethodDeclaration> ref = context.solveMethod("foo0", ImmutableList.of(), false, new ReflectionTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("A", ref.getCorrespondingDeclaration().declaringType().getName());
+ assertEquals(0, ref.getCorrespondingDeclaration().getNumberOfParams());
+ }
+
+ @Test
+ public void solveMethodOverrideCase() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedMethodDeclaration> ref = context.solveMethod("foo1", ImmutableList.of(), false, new ReflectionTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("A", ref.getCorrespondingDeclaration().declaringType().getName());
+ assertEquals(0, ref.getCorrespondingDeclaration().getNumberOfParams());
+ }
+
+ @Test
+ public void solveMethodInheritedCase() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedMethodDeclaration> ref = context.solveMethod("foo2", ImmutableList.of(), false, new ReflectionTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("Super", ref.getCorrespondingDeclaration().declaringType().getName());
+ assertEquals(0, ref.getCorrespondingDeclaration().getNumberOfParams());
+ }
+
+ @Test
+ public void solveMethodWithPrimitiveParameters() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ ResolvedType intType = ResolvedPrimitiveType.INT;
+
+ SymbolReference<ResolvedMethodDeclaration> ref = context.solveMethod("foo3", ImmutableList.of(intType), false, new ReflectionTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("A", ref.getCorrespondingDeclaration().declaringType().getName());
+ assertEquals(1, ref.getCorrespondingDeclaration().getNumberOfParams());
+ }
+
+ @Test
+ public void solveMethodWithMoreSpecializedParameter() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ ResolvedType stringType = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+
+ SymbolReference<ResolvedMethodDeclaration> ref = context.solveMethod("foo4", ImmutableList.of(stringType), false, new ReflectionTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("A", ref.getCorrespondingDeclaration().declaringType().getName());
+ assertEquals(1, ref.getCorrespondingDeclaration().getNumberOfParams());
+ }
+
+ @Test(expected = MethodAmbiguityException.class)
+ public void solveMethodWithAmbiguosCall() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ SymbolReference<ResolvedMethodDeclaration> ref = context.solveMethod("foo5", ImmutableList.of(NullType.INSTANCE), false, new ReflectionTypeSolver());
+ }
+
+ @Test
+ public void solveMethodAsUsageSimpleCase() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<MethodUsage> ref = context.solveMethodAsUsage("foo0", ImmutableList.of(), new ReflectionTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("A", ref.get().declaringType().getName());
+ assertEquals(0, ref.get().getNoParams());
+ }
+
+ @Test
+ public void solveMethodAsUsageOverrideCase() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<MethodUsage> ref = context.solveMethodAsUsage("foo1", ImmutableList.of(), new ReflectionTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("A", ref.get().declaringType().getName());
+ assertEquals(0, ref.get().getNoParams());
+ }
+
+ @Test
+ public void solveMethodAsUsageInheritedCase() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<MethodUsage> ref = context.solveMethodAsUsage("foo2", ImmutableList.of(), new ReflectionTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("Super", ref.get().declaringType().getName());
+ assertEquals(0, ref.get().getNoParams());
+ }
+
+ @Test
+ public void solveMethodAsUsageWithPrimitiveParameters() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ ResolvedType intType = ResolvedPrimitiveType.INT;
+
+ Optional<MethodUsage> ref = context.solveMethodAsUsage("foo3", ImmutableList.of(intType), new ReflectionTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("A", ref.get().declaringType().getName());
+ assertEquals(1, ref.get().getNoParams());
+ }
+
+ @Test
+ public void solveMethodAsUsageWithMoreSpecializedParameter() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ ResolvedType stringType = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+
+ Optional<MethodUsage> ref = context.solveMethodAsUsage("foo4", ImmutableList.of(stringType), new ReflectionTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("A", ref.get().declaringType().getName());
+ assertEquals(1, ref.get().getNoParams());
+ }
+
+ @Test(expected = MethodAmbiguityException.class)
+ public void solveMethodAsUsageWithAmbiguosCall() {
+ CompilationUnit cu = parseSample("ClassWithMethods");
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A");
+ Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver);
+
+ Optional<MethodUsage> ref = context.solveMethodAsUsage("foo5", ImmutableList.of(NullType.INSTANCE), new ReflectionTypeSolver());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/CompilationUnitContextResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/CompilationUnitContextResolutionTest.java
new file mode 100644
index 000000000..c079e5982
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/CompilationUnitContextResolutionTest.java
@@ -0,0 +1,236 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.javaparser.contexts;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.resolution.types.ResolvedPrimitiveType;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.core.resolution.Context;
+import com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.resolution.Value;
+import com.github.javaparser.symbolsolver.model.typesystem.NullType;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.MemoryTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.Optional;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * @author Federico Tomassetti
+ */
+public class CompilationUnitContextResolutionTest extends AbstractResolutionTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ }
+
+ @Test
+ public void getParent() {
+ CompilationUnit cu = parseSample("ClassWithTypeVariables");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ assertTrue(null == context.getParent());
+ }
+
+ @Test
+ public void solveExistingGenericType() {
+ CompilationUnit cu = parseSample("ClassWithTypeVariables");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ Optional<ResolvedType> a = context.solveGenericType("A", new MemoryTypeSolver());
+ Optional<ResolvedType> b = context.solveGenericType("B", new MemoryTypeSolver());
+ Optional<ResolvedType> c = context.solveGenericType("C", new MemoryTypeSolver());
+
+ assertEquals(false, a.isPresent());
+ assertEquals(false, b.isPresent());
+ assertEquals(false, c.isPresent());
+ }
+
+ @Test
+ public void solveUnexistingGenericType() {
+ CompilationUnit cu = parseSample("ClassWithTypeVariables");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ Optional<ResolvedType> d = context.solveGenericType("D", new MemoryTypeSolver());
+
+ assertEquals(false, d.isPresent());
+ }
+
+ @Test
+ public void solveSymbolReferringToStaticallyImportedValue() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("CompilationUnitSymbols");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ CombinedTypeSolver typeSolver = new CombinedTypeSolver();
+ typeSolver.add(new ReflectionTypeSolver());
+ typeSolver.add(new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar")));
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("out", typeSolver);
+ assertEquals(true, ref.isSolved());
+ assertEquals("java.io.PrintStream", ref.getCorrespondingDeclaration().getType().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void solveSymbolReferringToStaticallyImportedUsingAsteriskValue() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("CompilationUnitSymbols");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ CombinedTypeSolver typeSolver = new CombinedTypeSolver();
+ typeSolver.add(new ReflectionTypeSolver());
+ typeSolver.add(new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar")));
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("err", typeSolver);
+ assertEquals(true, ref.isSolved());
+ assertEquals("java.io.PrintStream", ref.getCorrespondingDeclaration().getType().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void solveSymbolReferringToStaticField() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("CompilationUnitSymbols");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("java.lang.System.out", new ReflectionTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("java.io.PrintStream", ref.getCorrespondingDeclaration().getType().asReferenceType().getQualifiedName());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToStaticallyImportedValue() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("CompilationUnitSymbols");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ CombinedTypeSolver typeSolver = new CombinedTypeSolver();
+ typeSolver.add(new ReflectionTypeSolver());
+ typeSolver.add(new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar")));
+ Optional<Value> ref = context.solveSymbolAsValue("out", typeSolver);
+ assertEquals(true, ref.isPresent());
+ assertEquals("java.io.PrintStream", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToStaticallyImportedUsingAsteriskValue() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("CompilationUnitSymbols");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ CombinedTypeSolver typeSolver = new CombinedTypeSolver();
+ typeSolver.add(new ReflectionTypeSolver());
+ typeSolver.add(new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar")));
+ Optional<Value> ref = context.solveSymbolAsValue("err", typeSolver);
+ assertEquals(true, ref.isPresent());
+ assertEquals("java.io.PrintStream", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToStaticField() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("CompilationUnitSymbols");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("java.lang.System.out", new ReflectionTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("java.io.PrintStream", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveTypeInSamePackage() {
+ CompilationUnit cu = parseSample("CompilationUnitWithImports");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ ResolvedReferenceTypeDeclaration otherClass = mock(ResolvedReferenceTypeDeclaration.class);
+ when(otherClass.getQualifiedName()).thenReturn("com.foo.OtherClassInSamePackage");
+ MemoryTypeSolver memoryTypeSolver = new MemoryTypeSolver();
+ memoryTypeSolver.addDeclaration("com.foo.OtherClassInSamePackage", otherClass);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("OtherClassInSamePackage", memoryTypeSolver);
+ assertEquals(true, ref.isSolved());
+ assertEquals("com.foo.OtherClassInSamePackage", ref.getCorrespondingDeclaration().getQualifiedName());
+ }
+
+ @Test
+ public void solveTypeImported() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("CompilationUnitWithImports");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("Assert", new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar")));
+ assertEquals(true, ref.isSolved());
+ assertEquals("org.junit.Assert", ref.getCorrespondingDeclaration().getQualifiedName());
+ }
+
+ @Test
+ public void solveTypeNotImported() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("CompilationUnitWithImports");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("org.junit.Assume", new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar")));
+ assertEquals(true, ref.isSolved());
+ assertEquals("org.junit.Assume", ref.getCorrespondingDeclaration().getQualifiedName());
+ }
+
+ @Test
+ public void solveMethodStaticallyImportedWithAsterisk() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("CompilationUnitWithImports");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ CombinedTypeSolver typeSolver = new CombinedTypeSolver();
+ typeSolver.add(new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar")));
+ typeSolver.add(new ReflectionTypeSolver());
+
+ SymbolReference<ResolvedMethodDeclaration> ref = context.solveMethod("assertFalse", ImmutableList.of(ResolvedPrimitiveType.BOOLEAN), false, typeSolver);
+ assertEquals(true, ref.isSolved());
+ assertEquals("assertFalse", ref.getCorrespondingDeclaration().getName());
+ assertEquals(1, ref.getCorrespondingDeclaration().getNumberOfParams());
+ assertEquals("boolean", ref.getCorrespondingDeclaration().getParam(0).getType().describe());
+ assertEquals(true, ref.getCorrespondingDeclaration().getParam(0).getType().isPrimitive());
+ }
+
+ @Test
+ public void solveMethodStaticallyImportedWithoutAsterisk() throws ParseException, IOException {
+ CompilationUnit cu = parseSample("CompilationUnitSymbols");
+ Context context = new CompilationUnitContext(cu, typeSolver);
+
+ CombinedTypeSolver typeSolver = new CombinedTypeSolver();
+ typeSolver.add(new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar")));
+ typeSolver.add(new ReflectionTypeSolver());
+
+ SymbolReference<ResolvedMethodDeclaration> ref = context.solveMethod("assertEquals", ImmutableList.of(NullType.INSTANCE, NullType.INSTANCE), false, typeSolver);
+ assertEquals(true, ref.isSolved());
+ assertEquals("assertEquals", ref.getCorrespondingDeclaration().getName());
+ assertEquals(2, ref.getCorrespondingDeclaration().getNumberOfParams());
+ assertEquals("java.lang.Object", ref.getCorrespondingDeclaration().getParam(0).getType().asReferenceType().getQualifiedName());
+ assertEquals("java.lang.Object", ref.getCorrespondingDeclaration().getParam(1).getType().asReferenceType().getQualifiedName());
+
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/EnumDeclarationContextResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/EnumDeclarationContextResolutionTest.java
new file mode 100644
index 000000000..93af30e48
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/EnumDeclarationContextResolutionTest.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.javaparser.contexts;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
+import com.github.javaparser.symbolsolver.core.resolution.Context;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.contexts.EnumDeclarationContext;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.resolution.Value;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.MemoryTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Optional;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author Federico Tomassetti
+ */
+public class EnumDeclarationContextResolutionTest extends AbstractResolutionTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ }
+
+ @Test
+ public void solveSymbolReferringToDeclaredInstanceField() {
+ CompilationUnit cu = parseSample("AnEnum");
+ com.github.javaparser.ast.body.EnumDeclaration enumDeclaration = Navigator.demandEnum(cu, "MyEnum");
+ Context context = new EnumDeclarationContext(enumDeclaration, typeSolver);
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("i", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("int", ref.getCorrespondingDeclaration().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolReferringToDeclaredStaticField() {
+ CompilationUnit cu = parseSample("AnEnum");
+ com.github.javaparser.ast.body.EnumDeclaration enumDeclaration = Navigator.demandEnum(cu, "MyEnum");
+ Context context = new EnumDeclarationContext(enumDeclaration, typeSolver);
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("j", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("long", ref.getCorrespondingDeclaration().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolReferringToValue() {
+ CompilationUnit cu = parseSample("AnEnum");
+ com.github.javaparser.ast.body.EnumDeclaration enumDeclaration = Navigator.demandEnum(cu, "MyEnum");
+ Context context = new EnumDeclarationContext(enumDeclaration, typeSolver);
+
+ SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("E1", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ assertEquals("MyEnum", ref.getCorrespondingDeclaration().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToDeclaredInstanceField() {
+ CompilationUnit cu = parseSample("AnEnum");
+ com.github.javaparser.ast.body.EnumDeclaration enumDeclaration = Navigator.demandEnum(cu, "MyEnum");
+ Context context = new EnumDeclarationContext(enumDeclaration, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("i", new MemoryTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("int", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToDeclaredStaticField() {
+ CompilationUnit cu = parseSample("AnEnum");
+ com.github.javaparser.ast.body.EnumDeclaration enumDeclaration = Navigator.demandEnum(cu, "MyEnum");
+ Context context = new EnumDeclarationContext(enumDeclaration, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("j", new MemoryTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("long", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveSymbolAsValueReferringToValue() {
+ CompilationUnit cu = parseSample("AnEnum");
+ com.github.javaparser.ast.body.EnumDeclaration enumDeclaration = Navigator.demandEnum(cu, "MyEnum");
+ Context context = new EnumDeclarationContext(enumDeclaration, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("E1", new MemoryTypeSolver());
+ assertEquals(true, ref.isPresent());
+ assertEquals("MyEnum", ref.get().getType().describe());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/FieldAccessContextResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/FieldAccessContextResolutionTest.java
new file mode 100644
index 000000000..b13737e51
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/FieldAccessContextResolutionTest.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.javaparser.contexts;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author Malte Langkabel
+ */
+public class FieldAccessContextResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void solveMethodCallInFieldAccessContext() {
+ CompilationUnit cu = parseSample("MethodCalls");
+
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodCalls");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "bar2");
+ MethodCallExpr methodCallExpr = Navigator.findMethodCall(method, "getSelf").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ MethodUsage methodUsage = JavaParserFacade.get(typeSolver).solveMethodAsUsage(methodCallExpr);
+
+ assertEquals(methodUsage.getName(), "getSelf");
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/LambdaExprContextResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/LambdaExprContextResolutionTest.java
new file mode 100644
index 000000000..63e513c7a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/LambdaExprContextResolutionTest.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.javaparser.contexts;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.expr.LambdaExpr;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.symbolsolver.core.resolution.Context;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.contexts.LambdaExprContext;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.resolution.Value;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.Optional;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * @author Malte Langkabel
+ */
+public class LambdaExprContextResolutionTest extends AbstractResolutionTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ }
+
+ @Test
+ public void solveParameterOfLambdaInMethodCallExpr() {
+ CompilationUnit cu = parseSample("Lambda");
+
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "lambdaMap");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ MethodCallExpr methodCallExpr = (MethodCallExpr) returnStmt.getExpression().get();
+ LambdaExpr lambdaExpr = (LambdaExpr) methodCallExpr.getArguments().get(0);
+
+ Context context = new LambdaExprContext(lambdaExpr, typeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("p", typeSolver);
+ assertTrue(ref.isPresent());
+ assertEquals("? super java.lang.String", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveParameterOfLambdaInFieldDecl() {
+ CompilationUnit cu = parseSample("Lambda");
+
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ VariableDeclarator field = Navigator.demandField(clazz, "functional");
+ LambdaExpr lambdaExpr = (LambdaExpr) field.getInitializer().get();
+
+ File src = new File("src/test/resources");
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ combinedTypeSolver.add(new JavaParserTypeSolver(adaptPath(src)));
+
+ Context context = new LambdaExprContext(lambdaExpr, combinedTypeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("p", typeSolver);
+ assertTrue(ref.isPresent());
+ assertEquals("java.lang.String", ref.get().getType().describe());
+ }
+
+ @Test
+ public void solveParameterOfLambdaInVarDecl() {
+ CompilationUnit cu = parseSample("Lambda");
+
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "testFunctionalVar");
+ VariableDeclarator varDecl = Navigator.demandVariableDeclaration(method, "a").get();
+ LambdaExpr lambdaExpr = (LambdaExpr) varDecl.getInitializer().get();
+
+ File src = adaptPath(new File("src/test/resources"));
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ combinedTypeSolver.add(new JavaParserTypeSolver(src));
+
+ Context context = new LambdaExprContext(lambdaExpr, combinedTypeSolver);
+
+ Optional<Value> ref = context.solveSymbolAsValue("p", typeSolver);
+ assertTrue(ref.isPresent());
+ assertEquals("java.lang.String", ref.get().getType().describe());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/MethodCallExprContextResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/MethodCallExprContextResolutionTest.java
new file mode 100644
index 000000000..7fdaf73fd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/MethodCallExprContextResolutionTest.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.javaparser.contexts;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.core.resolution.Context;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * @author Malte Langkabel
+ */
+public class MethodCallExprContextResolutionTest extends AbstractResolutionTest {
+ private MethodCallExpr getMethodCallExpr(String methodName, String callingMethodName) {
+ CompilationUnit cu = parseSample("MethodCalls");
+
+ com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodCalls");
+ MethodDeclaration method = Navigator.demandMethod(clazz, methodName);
+ return Navigator.findMethodCall(method, callingMethodName).get();
+ }
+
+ private CombinedTypeSolver createTypeSolver() {
+ File src = adaptPath(new File("src/test/resources"));
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver());
+ combinedTypeSolver.add(new JavaParserTypeSolver(src));
+ return combinedTypeSolver;
+ }
+
+ @Test
+ public void solveNestedMethodCallExprContextWithoutScope() {
+ MethodCallExpr methodCallExpr = getMethodCallExpr("bar1", "foo");
+ CombinedTypeSolver typeSolver = createTypeSolver();
+
+ Context context = new MethodCallExprContext(methodCallExpr, typeSolver);
+
+ Optional<MethodUsage> ref = context.solveMethodAsUsage("foo", Collections.emptyList(), typeSolver);
+ assertTrue(ref.isPresent());
+ assertEquals("MethodCalls", ref.get().declaringType().getQualifiedName());
+ }
+
+ @Test
+ public void solveGenericMethodCallMustUseProvidedTypeArgs() {
+ assertCanSolveGenericMethodCallMustUseProvidedTypeArgs("genericMethod0");
+ }
+
+ @Test
+ public void solveStaticGenericMethodCallMustUseProvidedTypeArgs() {
+ assertCanSolveGenericMethodCallMustUseProvidedTypeArgs("staticGenericMethod0");
+ }
+
+ private void assertCanSolveGenericMethodCallMustUseProvidedTypeArgs(String callMethodName) {
+ MethodCallExpr methodCallExpr = getMethodCallExpr("genericMethodTest", callMethodName);
+ CombinedTypeSolver typeSolver = createTypeSolver();
+
+ MethodCallExprContext context = new MethodCallExprContext(methodCallExpr, typeSolver);
+
+ Optional<MethodUsage> ref = context.solveMethodAsUsage(callMethodName, Collections.emptyList(), typeSolver);
+ assertTrue(ref.isPresent());
+ assertEquals("MethodCalls", ref.get().declaringType().getQualifiedName());
+ assertEquals(Collections.singletonList("java.lang.Integer"), ref.get().typeParametersMap().getTypes().stream().map(ty -> ty.asReferenceType().describe()).collect(Collectors.toList()));
+ }
+
+ @Test
+ public void solveGenericMethodCallCanInferFromArguments() {
+ assertCanSolveGenericMethodCallCanInferFromArguments("genericMethod1");
+ }
+
+ @Test
+ public void solveStaticGenericMethodCallCanInferFromArguments() {
+ assertCanSolveGenericMethodCallCanInferFromArguments("staticGenericMethod1");
+ }
+
+ private void assertCanSolveGenericMethodCallCanInferFromArguments(String callMethodName) {
+ MethodCallExpr methodCallExpr = getMethodCallExpr("genericMethodTest", callMethodName);
+ CombinedTypeSolver typeSolver = createTypeSolver();
+
+ MethodCallExprContext context = new MethodCallExprContext(methodCallExpr, typeSolver);
+
+ ResolvedReferenceTypeDeclaration stringType = typeSolver.solveType("java.lang.String");
+
+ List<ResolvedType> argumentsTypes = new ArrayList<>();
+ argumentsTypes.add(new ReferenceTypeImpl(stringType, typeSolver));
+
+ Optional<MethodUsage> ref = context.solveMethodAsUsage(callMethodName, argumentsTypes, typeSolver);
+ assertTrue(ref.isPresent());
+ assertEquals("MethodCalls", ref.get().declaringType().getQualifiedName());
+ assertEquals(Collections.singletonList("java.lang.String"), ref.get().typeParametersMap().getTypes().stream().map(ty -> ty.asReferenceType().describe()).collect(Collectors.toList()));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/MethodContextResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/MethodContextResolutionTest.java
new file mode 100644
index 000000000..17d978079
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/contexts/MethodContextResolutionTest.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.javaparser.contexts;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration;
+import com.github.javaparser.symbolsolver.core.resolution.Context;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodContext;
+import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.MemoryTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author Malte Langkabel
+ */
+public class MethodContextResolutionTest extends AbstractResolutionTest {
+
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ }
+
+ @Test
+ public void solveTypeRefToLocalClass() {
+ CompilationUnit cu = parseSample("MethodWithTypes");
+ ClassOrInterfaceDeclaration cd = Navigator.demandClass(cu, "Main");
+ MethodDeclaration md = Navigator.demandMethod(cd, "methodWithLocalTypes");
+ Context context = new MethodContext(md, typeSolver);
+
+ SymbolReference<ResolvedTypeDeclaration> ref = context.solveType("LocalClass", new MemoryTypeSolver());
+ assertEquals(true, ref.isSolved());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/declarations/JavaParserTypeParameterResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/declarations/JavaParserTypeParameterResolutionTest.java
new file mode 100644
index 000000000..c72e7727f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/javaparser/declarations/JavaParserTypeParameterResolutionTest.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.javaparser.declarations;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeParameter;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class JavaParserTypeParameterResolutionTest extends AbstractResolutionTest {
+
+ private void testGenericArguments(String containingMethodName) {
+ CompilationUnit cu = parseSample("GenericMethodArguments");
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ ClassOrInterfaceDeclaration classDecl = Navigator.demandClass(cu, "GenericMethodArguments");
+ MethodDeclaration containingMethod = Navigator.demandMethod(classDecl, containingMethodName);
+ MethodCallExpr bar = Navigator.findMethodCall(containingMethod, "apply").get();
+
+ assertTrue(javaParserFacade.solve(bar).isSolved());
+ }
+
+ @Test
+ public void genericMethodWithGenericClassBasedArgument() {
+ testGenericArguments("useCase1");
+ }
+
+ @Test
+ public void genericMethodWithGenericClassArgument() {
+ testGenericArguments("useCase2");
+ }
+
+ @Test
+ public void declaredOnMethodPositiveCase() {
+ CompilationUnit cu = parseSample("MethodTypeParameter");
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ ClassOrInterfaceDeclaration classDecl = Navigator.demandClass(cu, "Foo");
+ MethodDeclaration methodDecl = Navigator.demandMethod(classDecl, "usage");
+ MethodCallExpr callToFoo = (MethodCallExpr) Navigator.findReturnStmt(methodDecl).getExpression().get();
+ ResolvedMethodDeclaration methodDeclaration = javaParserFacade.solve(callToFoo).getCorrespondingDeclaration();
+ for (ResolvedTypeParameterDeclaration tp : methodDeclaration.getTypeParameters()) {
+ assertTrue(tp instanceof JavaParserTypeParameter);
+ assertEquals("C", tp.getName());
+ assertEquals(true, tp.declaredOnMethod());
+ assertEquals(false, tp.declaredOnType());
+ }
+ }
+
+ @Test
+ public void declaredOnMethodNegativeCase() {
+ CompilationUnit cu = parseSample("ClassTypeParameter");
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver);
+ ClassOrInterfaceDeclaration classDecl = Navigator.demandClass(cu, "Foo");
+ MethodDeclaration methodDecl = Navigator.demandMethod(classDecl, "usage");
+ MethodCallExpr callToFoo = (MethodCallExpr) Navigator.findReturnStmt(methodDecl).getExpression().get();
+ ResolvedMethodDeclaration methodDeclaration = javaParserFacade.solve(callToFoo).getCorrespondingDeclaration();
+ ResolvedReferenceTypeDeclaration typeDeclaration = methodDeclaration.declaringType();
+ assertEquals(2, typeDeclaration.getTypeParameters().size());
+ assertTrue(typeDeclaration.getTypeParameters().get(0) instanceof JavaParserTypeParameter);
+ assertEquals("A", typeDeclaration.getTypeParameters().get(0).getName());
+ assertEquals(false, typeDeclaration.getTypeParameters().get(0).declaredOnMethod());
+ assertEquals(true, typeDeclaration.getTypeParameters().get(0).declaredOnType());
+ assertTrue(typeDeclaration.getTypeParameters().get(1) instanceof JavaParserTypeParameter);
+ assertEquals("B", typeDeclaration.getTypeParameters().get(1).getName());
+ assertEquals(false, typeDeclaration.getTypeParameters().get(1).declaredOnMethod());
+ assertEquals(true, typeDeclaration.getTypeParameters().get(1).declaredOnType());
+
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/reflectionmodel/SymbolResolutionResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/reflectionmodel/SymbolResolutionResolutionTest.java
new file mode 100644
index 000000000..8e0989f24
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/reflectionmodel/SymbolResolutionResolutionTest.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.reflectionmodel;
+
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class SymbolResolutionResolutionTest extends AbstractResolutionTest {
+
+ @Test
+ public void getTypeOfField() {
+ CompilationUnit cu = parseSample("ReflectionFieldOfItself");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MyClass");
+ VariableDeclarator field = Navigator.demandField(clazz, "PUBLIC");
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ResolvedType ref = JavaParserFacade.get(typeSolver).getType(field);
+ assertEquals("int", ref.describe());
+ }
+
+ @Test
+ public void getTypeOfFieldAccess() {
+ CompilationUnit cu = parseSample("ReflectionFieldOfItself");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MyClass");
+ VariableDeclarator field = Navigator.demandField(clazz, "PUBLIC");
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ResolvedType ref = JavaParserFacade.get(typeSolver).getType(field.getInitializer().get());
+ assertEquals("int", ref.describe());
+ }
+
+ @Test
+ public void conditionalExpressionExample() {
+ CompilationUnit cu = parseSample("JreConditionalExpression");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MyClass");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "foo1");
+ ReturnStmt returnStmt = Navigator.findReturnStmt(method);
+ Expression expression = returnStmt.getExpression().get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ResolvedType ref = JavaParserFacade.get(typeSolver).getType(expression);
+ assertEquals("java.lang.String", ref.describe());
+ }
+
+ @Test
+ public void conditionalExpressionExampleFollowUp1() {
+ CompilationUnit cu = parseSample("JreConditionalExpression");
+ ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MyClass");
+ MethodDeclaration method = Navigator.demandMethod(clazz, "foo1");
+ MethodCallExpr expression = Navigator.findMethodCall(method, "next").get();
+
+ TypeSolver typeSolver = new ReflectionTypeSolver();
+ ResolvedType ref = JavaParserFacade.get(typeSolver).getType(expression);
+ assertEquals("java.lang.String", ref.describe());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SameAsBoundTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SameAsBoundTest.java
new file mode 100644
index 000000000..ba58dc797
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SameAsBoundTest.java
@@ -0,0 +1,32 @@
+package com.github.javaparser.symbolsolver.resolution.typeinference.bounds;
+
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.resolution.typeinference.Bound;
+import com.github.javaparser.symbolsolver.resolution.typeinference.InferenceVariable;
+import com.github.javaparser.symbolsolver.resolution.typeinference.Instantiation;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.util.Optional;
+
+import static org.junit.Assert.assertEquals;
+
+public class SameAsBoundTest {
+
+ private TypeSolver typeSolver = new ReflectionTypeSolver();
+ private ResolvedType stringType = new ReferenceTypeImpl(new ReflectionTypeSolver().solveType(String.class.getCanonicalName()), typeSolver);
+
+ @Test
+ public void recognizeInstantiation() {
+ // { α = String } contains a single bound, instantiating α as String.
+ InferenceVariable inferenceVariable = new InferenceVariable("α", null);
+ Bound bound1 = new SameAsBound(inferenceVariable, stringType);
+ Bound bound2 = new SameAsBound(stringType, inferenceVariable);
+
+ assertEquals(Optional.of(new Instantiation(inferenceVariable, stringType)), bound1.isAnInstantiation());
+ assertEquals(Optional.of(new Instantiation(inferenceVariable, stringType)), bound2.isAnInstantiation());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SubtypeOfBoundTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SubtypeOfBoundTest.java
new file mode 100644
index 000000000..ecda07701
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SubtypeOfBoundTest.java
@@ -0,0 +1,86 @@
+package com.github.javaparser.symbolsolver.resolution.typeinference.bounds;
+
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.resolution.types.ResolvedWildcard;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.resolution.typeinference.*;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
+
+import static com.github.javaparser.symbolsolver.resolution.typeinference.TypeHelper.isProperType;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+
+public class SubtypeOfBoundTest {
+
+ private TypeSolver typeSolver = new ReflectionTypeSolver();
+ private ResolvedReferenceType iterableType = new ReferenceTypeImpl(new ReflectionTypeSolver().solveType(Iterable.class.getCanonicalName()), typeSolver);
+ private ResolvedReferenceType listType = new ReferenceTypeImpl(new ReflectionTypeSolver().solveType(List.class.getCanonicalName()), typeSolver);
+ private ResolvedType integerType = new ReferenceTypeImpl(new ReflectionTypeSolver().solveType(Integer.class.getCanonicalName()), typeSolver);
+ private ResolvedType doubleType = new ReferenceTypeImpl(new ReflectionTypeSolver().solveType(Double.class.getCanonicalName()), typeSolver);
+ private ResolvedType objectType = new ReferenceTypeImpl(new ReflectionTypeSolver().solveType(Object.class.getCanonicalName()), typeSolver);
+
+ @Test
+ public void recognizeProperLowerBound1() {
+ ResolvedTypeParameterDeclaration typeParameterDeclaration = mock(ResolvedTypeParameterDeclaration.class);
+
+ // { Integer <: α, Double <: α, α <: Object } describes two proper lower bounds and one proper upper bound for α.
+
+ InferenceVariable inferenceVariable = new InferenceVariable("α", typeParameterDeclaration);
+ Bound bound = new SubtypeOfBound(integerType, inferenceVariable);
+
+ assertEquals(Optional.of(new ProperLowerBound(inferenceVariable, integerType)), bound.isProperLowerBound());
+ }
+
+ @Test
+ public void recognizeProperLowerBound2() {
+ ResolvedTypeParameterDeclaration typeParameterDeclaration = mock(ResolvedTypeParameterDeclaration.class);
+
+ // { Integer <: α, Double <: α, α <: Object } describes two proper lower bounds and one proper upper bound for α.
+
+ InferenceVariable inferenceVariable = new InferenceVariable("α", typeParameterDeclaration);
+ Bound bound = new SubtypeOfBound(doubleType, inferenceVariable);
+
+ assertEquals(Optional.of(new ProperLowerBound(inferenceVariable, doubleType)), bound.isProperLowerBound());
+ }
+
+ @Test
+ public void recognizeProperUpperBound1() {
+ ResolvedTypeParameterDeclaration typeParameterDeclaration = mock(ResolvedTypeParameterDeclaration.class);
+
+ // { Integer <: α, Double <: α, α <: Object } describes two proper lower bounds and one proper upper bound for α.
+
+ InferenceVariable inferenceVariable = new InferenceVariable("α", typeParameterDeclaration);
+ Bound bound = new SubtypeOfBound(inferenceVariable, objectType);
+
+ assertEquals(Optional.of(new ProperUpperBound(inferenceVariable, objectType)), bound.isProperUpperBound());
+ }
+
+ @Test
+ public void recognizeProperUpperBound2() {
+ ResolvedTypeParameterDeclaration typeParameterDeclaration1 = mock(ResolvedTypeParameterDeclaration.class);
+ ResolvedTypeParameterDeclaration typeParameterDeclaration2 = mock(ResolvedTypeParameterDeclaration.class);
+ // { α <: Iterable<?>, β <: Object, α <: List<β> } describes a proper upper bound for each of α and β, along with a dependency between them.
+
+ InferenceVariable alpha = new InferenceVariable("α", typeParameterDeclaration1);
+ InferenceVariable beta = new InferenceVariable("β", typeParameterDeclaration2);
+ ResolvedType iterableOfWildcard = new ReferenceTypeImpl(iterableType.getTypeDeclaration(), Arrays.asList(ResolvedWildcard.UNBOUNDED), typeSolver);
+ ResolvedType listOfBeta = new ReferenceTypeImpl(listType.getTypeDeclaration(), Arrays.asList(beta), typeSolver);
+
+ Bound bound1 = new SubtypeOfBound(alpha, iterableOfWildcard);
+ Bound bound2 = new SubtypeOfBound(beta, objectType);
+ Bound bound3 = new SubtypeOfBound(alpha, listOfBeta);
+
+ assertEquals(false, isProperType(listOfBeta));
+ assertEquals(Optional.of(new ProperUpperBound(alpha, iterableOfWildcard)), bound1.isProperUpperBound());
+ assertEquals(Optional.of(new ProperUpperBound(beta, objectType)), bound2.isProperUpperBound());
+ assertEquals(true, bound3.isADependency());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/ConstraintFormulaTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/ConstraintFormulaTest.java
new file mode 100644
index 000000000..0563ca5b3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/ConstraintFormulaTest.java
@@ -0,0 +1,70 @@
+package com.github.javaparser.symbolsolver.resolution.typeinference.constraintformulas;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.StringLiteralExpr;
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
+import com.github.javaparser.symbolsolver.resolution.typeinference.BoundSet;
+import com.github.javaparser.symbolsolver.resolution.typeinference.ConstraintFormula;
+import com.github.javaparser.symbolsolver.resolution.typeinference.InferenceVariable;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+
+public class ConstraintFormulaTest {
+
+ private TypeSolver typeSolver = new ReflectionTypeSolver();
+ private ResolvedType stringType = new ReferenceTypeImpl(new ReflectionTypeSolver().solveType(String.class.getCanonicalName()), typeSolver);
+
+ /**
+ * From JLS 18.1.2
+ *
+ * From Collections.singleton("hi"), we have the constraint formula ‹"hi" → α›.
+ * Through reduction, this will become the constraint formula: ‹String <: α›.
+ */
+ @Test
+ public void testExpressionCompatibleWithTypeReduce1() {
+ ResolvedTypeParameterDeclaration tp = mock(ResolvedTypeParameterDeclaration.class);
+
+ Expression e = new StringLiteralExpr("hi");
+ InferenceVariable inferenceVariable = new InferenceVariable("α", tp);
+
+ ExpressionCompatibleWithType formula = new ExpressionCompatibleWithType(typeSolver, e, inferenceVariable);
+
+ ConstraintFormula.ReductionResult res1 = formula.reduce(BoundSet.empty());
+ assertEquals(
+ ConstraintFormula.ReductionResult.empty().withConstraint(new TypeCompatibleWithType(typeSolver, stringType, inferenceVariable)),
+ res1);
+
+ assertEquals(
+ ConstraintFormula.ReductionResult.empty().withConstraint(new TypeSubtypeOfType(typeSolver, stringType, inferenceVariable)),
+ res1.getConstraint(0).reduce(BoundSet.empty()));
+ }
+
+// /**
+// * From JLS 18.1.2
+// *
+// * From Arrays.asList(1, 2.0), we have the constraint formulas ‹1 → α› and ‹2.0 → α›. Through reduction,
+// * these will become the constraint formulas ‹int → α› and ‹double → α›, and then ‹Integer <: α› and ‹Double <: α›.
+// */
+// @Test
+// public void testExpressionCompatibleWithTypeReduce2() {
+// throw new UnsupportedOperationException();
+// }
+//
+// /**
+// * From JLS 18.1.2
+// *
+// * From the target type of the constructor invocation List<Thread> lt = new ArrayList<>(), we have the constraint
+// * formula ‹ArrayList<α> → List<Thread>›. Through reduction, this will become the constraint formula ‹α <= Thread›,
+// * and then ‹α = Thread›.
+// */
+// @Test
+// public void testExpressionCompatibleWithTypeReduce3() {
+// throw new UnsupportedOperationException();
+// }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/AarTypeSolverTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/AarTypeSolverTest.java
new file mode 100644
index 000000000..b9be96899
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/AarTypeSolverTest.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.typesolvers;
+
+import com.github.javaparser.symbolsolver.AbstractTest;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+public class AarTypeSolverTest extends AbstractTest {
+
+ @Test
+ public void initial() throws IOException {
+ String pathToJar = adaptPath("src/test/resources/aars/support-compat-24.2.0.aar");
+ AarTypeSolver aarTypeSolver = new AarTypeSolver(new File(pathToJar));
+ assertEquals(true, aarTypeSolver.tryToSolveType("android.support.v4.app.ActivityCompat").isSolved());
+ assertEquals(true, aarTypeSolver.tryToSolveType("android.support.v4.app.ActivityManagerCompat").isSolved());
+ assertEquals(true, aarTypeSolver.tryToSolveType("android.support.v4.app.NotificationCompat").isSolved());
+ assertEquals(true, aarTypeSolver.tryToSolveType("android.support.v4.app.NotificationCompat.Action").isSolved());
+ assertEquals(true, aarTypeSolver.tryToSolveType("android.support.v4.app.NotificationCompat.Action.Builder").isSolved());
+ assertEquals(false, aarTypeSolver.tryToSolveType("com.github.javaparser.ASTParser.Foo").isSolved());
+ assertEquals(false, aarTypeSolver.tryToSolveType("com.github.javaparser.Foo").isSolved());
+ assertEquals(false, aarTypeSolver.tryToSolveType("Foo").isSolved());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JarTypeSolverTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JarTypeSolverTest.java
new file mode 100644
index 000000000..346fcfd60
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JarTypeSolverTest.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.resolution.typesolvers;
+
+import com.github.javaparser.symbolsolver.AbstractTest;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+
+public class JarTypeSolverTest extends AbstractTest {
+
+ @Test
+ public void initial() throws IOException {
+ String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
+ JarTypeSolver jarTypeSolver = new JarTypeSolver(pathToJar);
+ assertEquals(true, jarTypeSolver.tryToSolveType("com.github.javaparser.SourcesHelper").isSolved());
+ assertEquals(true, jarTypeSolver.tryToSolveType("com.github.javaparser.Token").isSolved());
+ assertEquals(true, jarTypeSolver.tryToSolveType("com.github.javaparser.ASTParser.JJCalls").isSolved());
+ assertEquals(false, jarTypeSolver.tryToSolveType("com.github.javaparser.ASTParser.Foo").isSolved());
+ assertEquals(false, jarTypeSolver.tryToSolveType("com.github.javaparser.Foo").isSolved());
+ assertEquals(false, jarTypeSolver.tryToSolveType("Foo").isSolved());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/utils/SymbolSolverQuickSetupTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/utils/SymbolSolverQuickSetupTest.java
new file mode 100644
index 000000000..ddc1bc622
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/utils/SymbolSolverQuickSetupTest.java
@@ -0,0 +1,50 @@
+package com.github.javaparser.symbolsolver.utils;
+
+import com.github.javaparser.ParserConfiguration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.symbolsolver.JavaSymbolSolver;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.utils.SourceRoot;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+
+/**
+ * Try to resolve all the ClassOrInterfaceDeclaration and MethodCallExpr in some resources folder. If it fails to do
+ * so, an IllegalStateException is thrown.
+ */
+public class SymbolSolverQuickSetupTest {
+
+ private Path root = Paths.get("src/test/resources/symbolsolver_quicksetup");
+ private ParserConfiguration parserConfiguration = new ParserConfiguration();
+
+ @Before
+ public void setUp() throws IOException {
+ SymbolSolverQuickSetup ssr = new SymbolSolverQuickSetup(root);
+ TypeSolver typeSolver = ssr.walk();
+
+ parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void notResolve() throws IOException {
+ SourceRoot sourceRoot = new SourceRoot(root);
+ sourceRoot.tryToParse();
+ // try to resolve, this will fail
+ sourceRoot.getCompilationUnits().forEach(compilationUnit ->
+ compilationUnit.findAll(ClassOrInterfaceDeclaration.class).forEach(ClassOrInterfaceDeclaration::resolve));
+ }
+
+ @Test
+ public void resolve() throws IOException {
+ SourceRoot sourceRoot = new SourceRoot(root, parserConfiguration);
+ sourceRoot.tryToParse();
+ // try to resolve, this should succeed
+ sourceRoot.getCompilationUnits().forEach(compilationUnit ->
+ compilationUnit.findAll(ClassOrInterfaceDeclaration.class).forEach(ClassOrInterfaceDeclaration::resolve));
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/AClassWithFields.java.txt b/javaparser-symbol-solver-testing/src/test/resources/AClassWithFields.java.txt
new file mode 100644
index 000000000..e8e10b6c7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/AClassWithFields.java.txt
@@ -0,0 +1,11 @@
+class A {
+ String a;
+}
+
+class B extends A {
+ float b;
+}
+
+class C extends B {
+ int c;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/AClassWithFieldsAndGenerics.java.txt b/javaparser-symbol-solver-testing/src/test/resources/AClassWithFieldsAndGenerics.java.txt
new file mode 100644
index 000000000..601ebb6d7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/AClassWithFieldsAndGenerics.java.txt
@@ -0,0 +1,13 @@
+import java.util.List;
+
+class A {
+ String a;
+}
+
+class B<T> extends A {
+ List<T> b;
+}
+
+class C extends B<String> {
+ int c;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/AccessClassMemberThroughThis.java.txt b/javaparser-symbol-solver-testing/src/test/resources/AccessClassMemberThroughThis.java.txt
new file mode 100644
index 000000000..00ed1ec46
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/AccessClassMemberThroughThis.java.txt
@@ -0,0 +1,17 @@
+class AccessClassMemberThroughThis {
+
+ private String label;
+
+ public void setLabel(final String label) {
+ this.label = label;
+ }
+
+ public String getLabel1() {
+ return label;
+ }
+
+ public String getLabel2() {
+ return this.label;
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/AccessEnumMemberThroughThis.java.txt b/javaparser-symbol-solver-testing/src/test/resources/AccessEnumMemberThroughThis.java.txt
new file mode 100644
index 000000000..df6a4db38
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/AccessEnumMemberThroughThis.java.txt
@@ -0,0 +1,15 @@
+enum AccessEnumMemberThroughThis {
+
+ CONSTANT("constant");
+
+ private String label;
+
+ public String getLabel() {
+ return this.label;
+ }
+
+ public String getLabel2() {
+ return this.getLabel();
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/AccessThroughSuper.java.txt b/javaparser-symbol-solver-testing/src/test/resources/AccessThroughSuper.java.txt
new file mode 100644
index 000000000..54167ce19
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/AccessThroughSuper.java.txt
@@ -0,0 +1,25 @@
+class AccessThroughSuper {
+
+ class SuperClass {
+
+ protected String field;
+
+ protected String method() {
+ return field;
+ }
+
+ }
+
+ class SubClass extends SuperClass {
+
+ protected String fieldTest() {
+ return super.field;
+ }
+
+ protected String methodTest() {
+ return super.method();
+ }
+
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/AnEnum.java.txt b/javaparser-symbol-solver-testing/src/test/resources/AnEnum.java.txt
new file mode 100644
index 000000000..81cd56fc4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/AnEnum.java.txt
@@ -0,0 +1,9 @@
+enum MyEnum {
+ E1, E2;
+ int i;
+ static long j;
+
+ void foo(){
+
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Annotations.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Annotations.java.txt
new file mode 100644
index 000000000..910777bff
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Annotations.java.txt
@@ -0,0 +1,22 @@
+package foo.bar;
+
+public @interface MyAnnotation {
+}
+
+public @interface MyAnnotation2 {
+}
+
+public @interface MyAnnotationWithFields {
+ int field();
+}
+
+@MyAnnotation
+class CA {
+
+}
+
+@MyAnnotation2
+class CB extends CA {
+
+}
+
diff --git a/javaparser-symbol-solver-testing/src/test/resources/AnonymousClassDeclarations.java.txt b/javaparser-symbol-solver-testing/src/test/resources/AnonymousClassDeclarations.java.txt
new file mode 100644
index 000000000..f994225bc
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/AnonymousClassDeclarations.java.txt
@@ -0,0 +1,71 @@
+class AnonymousClassDeclarations {
+
+ static class DoFn<I,O> {
+ static class ProcessContext {
+ public Long innerClassMethod() {}
+ }
+
+ enum MyEnum {
+ E1, E2, E3
+ }
+
+ public void process(ProcessContext context) {}
+ }
+
+ static class Transform<I,O> {}
+
+ static class ParDo {
+ static <I,O> Transform<I,O> of(DoFn<I,O> doFn) {
+ return null;
+ }
+ }
+
+ void fooBar1() {
+ ParDo.of(new DoFn<Integer,Long>() {});
+ }
+
+ void fooBar2() {
+ ParDo.of(new DoFn<Integer,Long>() {
+ public void process(ProcessContext c){
+ return c.innerClassMethod();
+ }
+ });
+ }
+
+ void fooBar3() {
+ ParDo.of(new DoFn<Integer,Long>() {
+
+ void callAnnonClassInnerMethod() {}
+
+ public void process(ProcessContext c) {
+ callAnnonClassInnerMethod();
+ }
+ });
+ }
+
+ void fooBar4() {
+ ParDo.of(new DoFn<Integer,Long>() {
+
+ void callAnnonClassInnerMethod() {}
+
+ public void process(ProcessContext c) {
+ MyEnum.E3.toString();
+ }
+ });
+ }
+
+ void fooBar5() {
+ ParDo.of(new DoFn<Integer,Long>() {
+
+ void callAnnonClassInnerMethod() {}
+
+ enum MyInnerEnum {
+ E1, E2, E3
+ }
+ public void process(ProcessContext c) {
+ MyInnerEnum.E3.toString();
+ }
+ });
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ArrayAccess.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ArrayAccess.java.txt
new file mode 100644
index 000000000..198a7305a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ArrayAccess.java.txt
@@ -0,0 +1,9 @@
+class ArrayAccess {
+
+ private String[] array;
+
+ private char access() {
+ return array[0].trim();
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ClassCast.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ClassCast.java.txt
new file mode 100644
index 000000000..48eab8296
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ClassCast.java.txt
@@ -0,0 +1,13 @@
+class Node {
+
+}
+
+class ClassCast {
+
+ public static <N extends Node> List<N> getNodesByType(Node container, Class<N> clazz) {
+ List<N> nodes = new ArrayList<N>();
+ Node child;
+ return clazz.cast(child);
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ClassExpression.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ClassExpression.java.txt
new file mode 100644
index 000000000..ad9038c2a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ClassExpression.java.txt
@@ -0,0 +1,9 @@
+import java.util.EnumSet;
+
+class ClassExpression {
+
+ private void foo() {
+ EnumSet.noneOf(java.util.Locale.Category.class);
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ClassTypeParameter.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ClassTypeParameter.java.txt
new file mode 100644
index 000000000..c98543bff
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ClassTypeParameter.java.txt
@@ -0,0 +1,7 @@
+class Foo<A, B> {
+ public void foo(A a);
+
+ public void usage(A a) {
+ return foo(a);
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ClassWithMethods.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ClassWithMethods.java.txt
new file mode 100644
index 000000000..dce4766fb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ClassWithMethods.java.txt
@@ -0,0 +1,14 @@
+class Super {
+ public void foo1() { }
+ public void foo2() { }
+}
+
+class A extends Super {
+ public void foo0() { }
+ public void foo1() { }
+ public void foo3(int i) { }
+ public void foo4(Object o) { }
+ public void foo4(String a) { }
+ public void foo5(String a) { }
+ public void foo5(A a) { }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ClassWithSymbols.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ClassWithSymbols.java.txt
new file mode 100644
index 000000000..bb693fb92
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ClassWithSymbols.java.txt
@@ -0,0 +1,39 @@
+class Super {
+ protected boolean k;
+ public static char m;
+}
+
+interface SuperSuperInterface {
+ public int o;
+}
+
+interface SuperInterface extends SuperSuperInterface {
+ public int p;
+}
+
+class A extends Super implements SuperInterface {
+
+ private int i;
+ private static long j;
+
+ public void foo1(){
+ return i;
+ }
+
+ public void foo2(){
+ return j;
+ }
+
+ public void foo3(){
+ return k;
+ }
+
+ public void foo4(){
+ return m;
+ }
+
+ public void foo5(){
+ return o;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ClassWithTypeVariables.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ClassWithTypeVariables.java.txt
new file mode 100644
index 000000000..50e1208c0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ClassWithTypeVariables.java.txt
@@ -0,0 +1,3 @@
+class A<A, B extends Object, C> {
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ClassWithTypes.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ClassWithTypes.java.txt
new file mode 100644
index 000000000..0c1ed60a1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ClassWithTypes.java.txt
@@ -0,0 +1,19 @@
+class Super {
+ protected boolean k;
+ private static char m;
+
+}
+
+class A extends Super {
+
+ class B {
+ class C {
+
+ }
+ }
+
+ enum E {
+ E1, E2
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/CompilationUnitSymbols.java.txt b/javaparser-symbol-solver-testing/src/test/resources/CompilationUnitSymbols.java.txt
new file mode 100644
index 000000000..9d60fabea
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/CompilationUnitSymbols.java.txt
@@ -0,0 +1,5 @@
+package com.foo;
+
+import static org.junit.Assert.assertEquals;
+import static java.lang.System.out;
+import static java.lang.System.*;
diff --git a/javaparser-symbol-solver-testing/src/test/resources/CompilationUnitWithImports.java.txt b/javaparser-symbol-solver-testing/src/test/resources/CompilationUnitWithImports.java.txt
new file mode 100644
index 000000000..df0b415b3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/CompilationUnitWithImports.java.txt
@@ -0,0 +1,4 @@
+package com.foo;
+
+import org.junit.Assert;
+import static org.junit.Assert.*;
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ElementOfList.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ElementOfList.java.txt
new file mode 100644
index 000000000..c8b719cc6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ElementOfList.java.txt
@@ -0,0 +1,23 @@
+import java.util.List;
+
+class Comment {
+
+}
+
+class AnnotationExpr {
+
+}
+
+class ElementOfList {
+
+ void foo() {
+ List<Comment> comments = commentsCollection.getAll();
+ Object a = comments.get(0);
+ }
+
+ void annotations() {
+ List<AnnotationExpr> annotations = new LinkedList<AnnotationExpr>();
+ Object a = annotations.get(annotations.size()-1);
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/EnumAndStaticInitializer.java.txt b/javaparser-symbol-solver-testing/src/test/resources/EnumAndStaticInitializer.java.txt
new file mode 100644
index 000000000..8acb2e647
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/EnumAndStaticInitializer.java.txt
@@ -0,0 +1,25 @@
+import java.util.HashMap;
+
+class MyClass {
+
+ public enum Primitive {
+ Boolean ("Boolean"),
+ Char ("Character"),
+ Byte ("Byte"),
+ Short ("Short"),
+ Int ("Integer"),
+ Long ("Long"),
+ Float ("Float"),
+ Double ("Double");
+
+ final String nameOfBoxedType;
+ }
+
+ static final HashMap<String, Primitive> unboxMap = new HashMap<String, Primitive>();
+ static {
+ for(Primitive unboxedType : Primitive.values()) {
+ unboxMap.put(unboxedType.nameOfBoxedType, unboxedType);
+ }
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/GenericCollection.java.txt b/javaparser-symbol-solver-testing/src/test/resources/GenericCollection.java.txt
new file mode 100644
index 000000000..09d4024b4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/GenericCollection.java.txt
@@ -0,0 +1,12 @@
+class Node {
+ abstract java.util.List<Node> getChildrenNodes();
+}
+
+class Foo {
+
+ public Object bar() {
+ Node node;
+ java.util.List<Node> children = new java.util.LinkedList<Node>();
+ return children.addAll(node.getChildrenNodes());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/GenericCollectionWithExtension.java.txt b/javaparser-symbol-solver-testing/src/test/resources/GenericCollectionWithExtension.java.txt
new file mode 100644
index 000000000..22261ca43
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/GenericCollectionWithExtension.java.txt
@@ -0,0 +1,21 @@
+class Node {
+}
+
+class Comment extends Node {
+}
+
+class Foo {
+
+ public <T> void foo(java.util.List<T> t1, java.util.List<T> t2) {
+ }
+
+ public Object bar() {
+ Node node;
+ java.util.List<Node> children = new java.util.LinkedList<Node>();
+ java.util.List<Comment> commentsToAttribute;
+
+ foo(children, commentsToAttribute);
+
+ return children.addAll(commentsToAttribute);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/GenericFields.java.txt b/javaparser-symbol-solver-testing/src/test/resources/GenericFields.java.txt
new file mode 100644
index 000000000..7313b25be
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/GenericFields.java.txt
@@ -0,0 +1,15 @@
+interface I {
+ int i = 0;
+}
+
+class CA<T> implements I {
+
+ T t;
+
+}
+
+class CB extends CA<java.util.List<Boolean>> {
+
+ String s;
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/GenericMethodArguments.java.txt b/javaparser-symbol-solver-testing/src/test/resources/GenericMethodArguments.java.txt
new file mode 100644
index 000000000..eb4b1e1b3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/GenericMethodArguments.java.txt
@@ -0,0 +1,33 @@
+class GenericMethodArguments {
+
+ static class Items<T> {
+ public <Output extends T> Output apply(Transform<? super Items<T>, Output> t) {
+ return null;
+ }
+ }
+
+ static class Transforms {
+ public static <I, O> Transform<I, O> of(DoFn<I, O> fn) {
+ return null;
+ }
+ }
+
+ static class Transform<Input, Output> {}
+
+ static class DoFn<Input, Output> {}
+
+ static class MyFn1<T> extends DoFn<T, Long> {}
+
+ static class MyFn2 extends MyFn1<Integer> {}
+
+ private Items<Integer> items;
+
+ public void useCase1() {
+ items.apply(Transforms.of(new MyFn2()));
+ }
+
+ public void useCase2() {
+ items.apply(Transforms.of(new DoFn<Integer,Long>(){}));
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Generics.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Generics.java.txt
new file mode 100644
index 000000000..0ce1b02b7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Generics.java.txt
@@ -0,0 +1,46 @@
+package me.tomassetti.symbolsolver.javaparser;
+
+import java.util.Optional;
+import java.util.List;
+
+public final class Generics {
+
+ Optional<String> s;
+ Optional<Integer> i;
+ Optional<Generics> g;
+
+}
+
+public final class SomeCollection<A> {
+
+ public A a;
+ public List<A> as;
+
+ public void foo1(){
+ new SomeCollection<String>().a;
+ }
+
+ public void foo2(){
+ new SomeCollection<String>().as;
+ }
+
+}
+
+public final class GenericMethodCalls {
+
+ public class Base <T> {
+
+ public void callee(T data) {
+ }
+
+ }
+
+ public class Derived extends Base<String> {
+
+ public void caller() {
+ callee("test");
+ }
+
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Generics_issue7.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Generics_issue7.java.txt
new file mode 100644
index 000000000..2f12168c3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Generics_issue7.java.txt
@@ -0,0 +1,32 @@
+package me.tomassetti.symbolsolver.javaparser;
+
+import java.util.Optional;
+import java.util.List;
+import java.util.Arrays;
+
+public final class Generics {
+
+ Optional<String> s;
+ Optional<Integer> i;
+ Optional<Generics> g;
+
+}
+
+public final class SomeCollection<A> {
+
+ public A a;
+ public List<A> as;
+
+ public void foo1(){
+ new SomeCollection<String>().a;
+ }
+
+ public void foo2(){
+ new SomeCollection<String>().as;
+ }
+
+ public List<Long> foo3(){
+ return Arrays.asList(new Long[]{1L,2L});
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/InterfaceInheritance.java.txt b/javaparser-symbol-solver-testing/src/test/resources/InterfaceInheritance.java.txt
new file mode 100644
index 000000000..27b027eef
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/InterfaceInheritance.java.txt
@@ -0,0 +1,16 @@
+class Test{
+
+ interface Foo{
+ double foobar();
+ }
+
+ interface Bar extends Foo {
+
+ }
+
+ void test(){
+ Bar b = null;
+ b.foobar();
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue116.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue116.java.txt
new file mode 100644
index 000000000..5e96f6f96
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue116.java.txt
@@ -0,0 +1,7 @@
+public class JavaTest {
+ public String[] field;
+
+ public void foo(String[] arg){
+ arg;
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue156.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue156.java.txt
new file mode 100644
index 000000000..e8b7da719
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue156.java.txt
@@ -0,0 +1,9 @@
+public class Issue156 {
+ String myField;
+
+ class Inner {
+ void foo() {
+ Issue156.this.myField.charAt(0);
+ }
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue18.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue18.java.txt
new file mode 100644
index 000000000..968929405
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue18.java.txt
@@ -0,0 +1,8 @@
+import java.util.*;
+
+class Foo {
+ void bar() {
+ Map m = new HashMap();
+ m.put("a", "b");
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue186.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue186.java.txt
new file mode 100644
index 000000000..f67def2df
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue186.java.txt
@@ -0,0 +1,23 @@
+import java.util.*;
+import java.util.stream.*;
+
+public class JavaTest {
+
+ public void foo(){
+ List<String> myList = Arrays.asList("a1", "a2", "b1", "c2", "c1");
+
+ Stream<String> myStream = myList.stream();
+
+ myStream.map(s -> s + ":)")
+ .filter(s -> s.length()>1)
+ .flatMap(s -> Arrays.stream(s.split("")));
+ }
+
+ public void bar(){
+ Stream<String> myStream;
+ myStream.filter(s -> s.contains("Hamlet"))
+ .map(l -> l.length())
+ .filter(s -> s > 15)
+ .count();
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue200.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue200.java.txt
new file mode 100644
index 000000000..b42ffe371
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue200.java.txt
@@ -0,0 +1,32 @@
+import java.util.List;
+
+public class JavaTest {
+ class MethodDeclaration {
+ public <T> List<T> getNodesByType(Class<T> clazz) {
+ return new ArrayList<T>();
+ }
+ }
+ class JavaParserFacade {
+ public Solved solve(MethodDeclaration method) {
+ return new Solved();
+ }
+ }
+ class Solved {
+ public boolean isSolved() {
+ return true;
+ }
+ }
+ private List<String> foo(MethodDeclaration methodDecl) {
+ return methodDecl
+ .getNodesByType(MethodDeclaration.class)
+ .stream()
+ .map(statement -> {
+ try {
+ return new JavaParserFacade().solve(statement);
+ } catch (Throwable e) {
+ return null;
+ }
+ })
+ .filter(parsed -> parsed != null && parsed.isSolved());
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue232.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue232.java.txt
new file mode 100644
index 000000000..fbe570a61
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue232.java.txt
@@ -0,0 +1,12 @@
+class Double {
+}
+
+class DoubleConsumer {
+}
+
+interface OfDouble extends OfPrimitive<Double, DoubleConsumer, OfDouble> {
+
+}
+
+interface OfPrimitive<T, C, S extends OfPrimitive<T, C, S>> {
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue235.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue235.java.txt
new file mode 100644
index 000000000..30ca4ef9f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue235.java.txt
@@ -0,0 +1,17 @@
+class Foo {
+ static class Bar {
+ static class Baz {}
+ }
+ static void new_Bar_Baz_direct() {
+ new Bar.Baz();
+ }
+ static void new_Bar_Baz() {
+ new Bar.Baz() {};
+ }
+ static void new_Bar() {
+ new Bar() {};
+ }
+ static void new_Foo_Bar() {
+ new Foo.Bar() {};
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue241.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue241.java.txt
new file mode 100644
index 000000000..11b8b846f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue241.java.txt
@@ -0,0 +1,7 @@
+import static issue241.TypeWithMemberType.MemberInterface;
+
+public class Main {
+
+ private MemberInterface foo;
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue251.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue251.java.txt
new file mode 100644
index 000000000..3e1e6b6bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue251.java.txt
@@ -0,0 +1,17 @@
+class Main {
+
+ class Foo { }
+
+ interface GenericBase <F> { }
+
+ class GenericDerived <F extends Foo> implements GenericBase<F> { }
+
+ private <B extends Foo> void foo(GenericBase<B> g) { }
+
+ private <D extends Foo> void foo(GenericDerived<D> g) { }
+
+ void bar() {
+ GenericDerived<Foo> gd = new GenericDerived<>();
+ foo(gd);
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue338.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue338.java.txt
new file mode 100644
index 000000000..6e8010e1d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue338.java.txt
@@ -0,0 +1,93 @@
+class TypePromotions {
+
+ public void byteParam(byte p1) {
+
+ }
+
+ public void shortParam(short p1) {
+
+ }
+
+ public void intParam(int p1) {
+
+ }
+
+ public void longParam(long p1) {
+
+ }
+
+ public void callingLong() {
+ longParam((byte)1);
+ longParam((short)1);
+ longParam(1);
+ longParam(1L);
+ }
+
+ public void callingInt() {
+ intParam((byte)1);
+ intParam((short)1);
+ intParam(1);
+ intParam(1L); // fails
+ }
+
+ public void callingShort() {
+ shortParam((byte)1);
+ shortParam((short)1);
+ shortParam(1); // fails
+ shortParam(1L); // fails
+ }
+
+ public void callingByte() {
+ byteParam((byte)1);
+ byteParam((short)1); // fails
+ byteParam(1); // fails
+ byteParam(1L); // fails
+ }
+ }
+
+class TypePromotionsWithExtraParam {
+
+ public void byteParam(int p0, byte p1) {
+
+ }
+
+ public void shortParam(int p0, short p1) {
+
+ }
+
+ public void intParam(int p0, int p1) {
+
+ }
+
+ public void longParam(int p0, long p1) {
+
+ }
+
+ public void callingLong() {
+ longParam(6, (byte)1);
+ longParam(6, (short)1);
+ longParam(6, 1);
+ longParam(6, 1L);
+ }
+
+ public void callingInt() {
+ intParam(6, (byte)1);
+ intParam(6, (short)1);
+ intParam(6, 1);
+ intParam(6, 1L); // fails
+ }
+
+ public void callingShort() {
+ shortParam(6, (byte)1);
+ shortParam(6, (short)1);
+ shortParam(6, 1); // fails
+ shortParam(6, 1L); // fails
+ }
+
+ public void callingByte() {
+ byteParam(6, (byte)1);
+ byteParam(6, (short)1); // fails
+ byteParam(6, 1); // fails
+ byteParam(6, 1L); // fails
+ }
+ } \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Issue84.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Issue84.java.txt
new file mode 100644
index 000000000..4cc3c9601
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Issue84.java.txt
@@ -0,0 +1,10 @@
+public class VariadicIssue {
+
+ public static void main(String[] args) {
+ variadicMethod(true, 1, 2, 3);
+ }
+
+ static String variadicMethod(boolean b, int... ints) {
+ return "";
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/JreConditionalExpression.java.txt b/javaparser-symbol-solver-testing/src/test/resources/JreConditionalExpression.java.txt
new file mode 100644
index 000000000..0e8295bc5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/JreConditionalExpression.java.txt
@@ -0,0 +1,10 @@
+import java.io.*;
+
+class MyClass {
+
+ public void foo1() {
+ java.util.Scanner s = new java.util.Scanner(in, encoding).useDelimiter("\\A");
+ return s.hasNext() ? s.next() : "";
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Lambda.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Lambda.java.txt
new file mode 100644
index 000000000..6e0cbde00
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Lambda.java.txt
@@ -0,0 +1,44 @@
+import java.util.List;
+import java.util.function.BiFunction;
+
+@FunctionalInterface
+public interface Lambda {
+ String process(String value);
+}
+
+public class Agenda {
+
+ Lambda functional = p -> p.toLowerCase();
+
+ private List<String> persons;
+
+ public void lambdaMap(String personName) {
+ return persons.stream().map(p -> p.toLowerCase());
+ }
+
+ public void lambdaMap2(){
+ return persons.stream().map(p -> p.codePoints());
+ }
+
+ public void reduce(){
+ List<Integer> a;
+ return a.stream().reduce((x,y) -> x * y);
+ }
+
+ double test(BiFunction<Integer,List,String> func){
+ return 0;
+ }
+
+ public double bifunc(){
+ return test((x,y) -> String.valueOf(func(x,y)));
+ }
+
+ int func(int a, List b){
+ return 1;
+ }
+
+ public void testFunctionalVar() {
+ Lambda a = p -> p.toLowerCase();
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/LambdaCollect.java.txt b/javaparser-symbol-solver-testing/src/test/resources/LambdaCollect.java.txt
new file mode 100644
index 000000000..dc94da26d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/LambdaCollect.java.txt
@@ -0,0 +1,12 @@
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class Agenda {
+
+ private List<String> persons;
+
+ public void lambdaMap(String personName) {
+ return persons.stream().collect(Collectors.toList());
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/LambdaMulti.java.txt b/javaparser-symbol-solver-testing/src/test/resources/LambdaMulti.java.txt
new file mode 100644
index 000000000..b7784530c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/LambdaMulti.java.txt
@@ -0,0 +1,32 @@
+import java.util.List;
+import java.util.stream.IntStream;
+
+public class Agenda {
+
+ private List<String> persons;
+
+ public void lambdaImpliedReturn() {
+ return persons.stream().parallel().map(i -> {
+ addPerson("");
+ }).findFirst().get();
+ }
+
+ public void lambdaSingleReturn() {
+ return persons.stream().parallel().map(i -> {
+ return addPerson("");
+ }).findFirst().get();
+ }
+
+ public void multiLineReturn() {
+ return persons.stream().parallel().map(i -> {
+ int irrelevant;
+ return addPerson("");
+ }).findFirst().get();
+ }
+
+
+ String addPerson(String x){
+
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/LambdaVoid.java.txt b/javaparser-symbol-solver-testing/src/test/resources/LambdaVoid.java.txt
new file mode 100644
index 000000000..97a6ea89f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/LambdaVoid.java.txt
@@ -0,0 +1,14 @@
+import java.util.List;
+import java.util.stream.IntStream;
+
+public class Agenda {
+
+ private List<String> persons;
+
+ public void lambdaEmpty() {
+ return persons.stream().forEach(p -> {
+ System.out.println(p);
+ });
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/LocalTypeDeclarations.java.txt b/javaparser-symbol-solver-testing/src/test/resources/LocalTypeDeclarations.java.txt
new file mode 100644
index 000000000..387a43cfc
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/LocalTypeDeclarations.java.txt
@@ -0,0 +1,14 @@
+class Foo {
+
+ void bar(){
+ int a;
+ Integer b;
+ Class<Integer> c;
+ Class<? super Integer> d;
+ Class<? extends Integer> e;
+ Class<? extends Class<? super Class<? extends Integer>>> f;
+ Class<? super Class<? extends Class<? super Integer>>> g;
+ a;b;c;d;e;f;g;
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/LocalVariableInParent.java.txt b/javaparser-symbol-solver-testing/src/test/resources/LocalVariableInParent.java.txt
new file mode 100644
index 000000000..066ab16f9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/LocalVariableInParent.java.txt
@@ -0,0 +1,57 @@
+import java.util.List;
+
+class Node {
+}
+
+class Comment {
+}
+
+class LocalVariableInParent {
+
+ void foo1() {
+ for (Node child : null){
+ String s;
+ for (Object c : null){
+ if (true){
+ s;
+ }
+ }
+ }
+ }
+
+ void foo3() {
+ for (Node child : null){
+ String s;
+ for (Object c : null){
+ s;
+ }
+ }
+ }
+
+ void foo2() {
+ for (Node child : null){
+ String s;
+ s;
+ }
+ }
+
+ void foo4() {
+ List<Node> children = node.getChildrenNodes();
+ for (Node child : children){
+ List<Comment> commentsInsideChild = new LinkedList<Comment>();
+ for (Comment c : commentsToAttribute){
+ if (true){
+ commentsInsideChild.add(c);
+ }
+ }
+ }
+ }
+
+ void foo5() {
+ List<Comment> commentsInsideChild;
+ Comment c;
+ commentsInsideChild.add(c);
+ }
+
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/MethodCalls.java.txt b/javaparser-symbol-solver-testing/src/test/resources/MethodCalls.java.txt
new file mode 100644
index 000000000..c05119c90
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/MethodCalls.java.txt
@@ -0,0 +1,70 @@
+import java.util.List;
+
+class MethodCalls {
+
+ public int member;
+
+ public MethodCalls getSelf()
+ {
+ return this;
+ }
+
+
+ public void foo()
+ {
+ }
+
+ void bar1()
+ {
+ getSelf().getSelf().foo();
+ }
+
+ int bar2()
+ {
+ return getSelf().m;
+ }
+
+ void inheritedInterfaceMethod(){
+ List<Integer> list;
+ list.toString();
+ }
+
+ void variadicTest(){
+ String[] varArg = new String[2];
+ foobar("a");
+ foobar(varArg);
+ }
+
+ int foobar(String s){
+ return 1;
+ }
+
+ void foobar(String... s){
+ return;
+ }
+
+ void variadicMethod(String... s)
+ {
+ this.variadicMethod("test");
+ }
+
+ <T> T genericMethod0() { return null; }
+ <T> T genericMethod1(T x) { return x; }
+
+ static <T> T staticGenericMethod0() { return null; }
+ static <T> T staticGenericMethod1(T x) { return x; }
+
+ static class GenericClass<T> {}
+
+ static void variadicWithGenericArg(int i, GenericClass<?>... c) {}
+
+ void genericMethodTest() {
+ this.<Integer>genericMethod0();
+ this.genericMethod1("Hello");
+
+ MethodCalls.<Integer>staticGenericMethod0();
+ MethodCalls.staticGenericMethod1("Hello");
+
+ MethodCalls.variadicWithGenericArg(1, new GenericClass<Long>());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/MethodTypeParameter.java.txt b/javaparser-symbol-solver-testing/src/test/resources/MethodTypeParameter.java.txt
new file mode 100644
index 000000000..0d0a1d535
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/MethodTypeParameter.java.txt
@@ -0,0 +1,7 @@
+class Foo<A, B> {
+ public <C> void foo(C c);
+
+ public void usage(String s) {
+ return foo(s);
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/MethodTypeParams.java.txt b/javaparser-symbol-solver-testing/src/test/resources/MethodTypeParams.java.txt
new file mode 100644
index 000000000..d55266797
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/MethodTypeParams.java.txt
@@ -0,0 +1,38 @@
+class CompilationUnit {
+
+}
+
+public interface VoidVisitor<A> {
+
+ void visit(CompilationUnit n, A arg);
+
+ void visit(JavadocComment n, A arg);
+}
+
+public interface GenericVisitor<R, A> {
+
+ R visit(CompilationUnit n, A arg);
+
+ R visit(JavadocComment n, A arg);
+}
+
+class JavadocComment {
+
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+}
+
+public abstract class VoidVisitorAdapter<A> implements VoidVisitor<A> {
+
+ @Override public void visit(final AnnotationDeclaration n, final A arg) {
+ JavadocComment javadocComment;
+ javadocComment.accept(this, arg);
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/MethodWithTypes.java.txt b/javaparser-symbol-solver-testing/src/test/resources/MethodWithTypes.java.txt
new file mode 100644
index 000000000..1b36e22a3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/MethodWithTypes.java.txt
@@ -0,0 +1,6 @@
+class Main {
+ public void methodWithLocalTypes() {
+ class LocalClass {
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Navigator.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Navigator.java.txt
new file mode 100644
index 000000000..3b7a65636
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Navigator.java.txt
@@ -0,0 +1,26 @@
+package me.tomassetti.symbolsolver.javaparser;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.expr.NameExpr;
+
+import java.util.Optional;
+
+/**
+ * This class can be used to conveniently retrieve certain node from a JavaParser AST.
+ */
+public final class Navigator {
+
+ private Navigator() {
+ // prevent instantiation
+ }
+
+ public static Optional<TypeDeclaration> findType(CompilationUnit cu, String name) {
+ return cu.getTypes().stream().filter((t) -> t.getName().equals(name)).findFirst();
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Navigator2.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Navigator2.java.txt
new file mode 100644
index 000000000..ea0a4634a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Navigator2.java.txt
@@ -0,0 +1,23 @@
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.expr.NameExpr;
+
+import java.util.Optional;
+
+/**
+ * This class can be used to conveniently retrieve certain node from a JavaParser AST.
+ */
+public final class Navigator {
+
+ private Navigator() {
+ // prevent instantiation
+ }
+
+ public static Optional<TypeDeclaration> findType(com.github.javaparser.ast.CompilationUnit cu, String name) {
+ return cu.getTypes().stream().filter((t) -> t.getName().equals(name)).findFirst();
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/Navigator3.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Navigator3.java.txt
new file mode 100644
index 000000000..8ee747802
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/Navigator3.java.txt
@@ -0,0 +1,25 @@
+package my.packagez;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.expr.NameExpr;
+
+import java.util.Optional;
+
+/**
+ * This class can be used to conveniently retrieve certain node from a JavaParser AST.
+ */
+public final class Navigator {
+
+ private Navigator() {
+ // prevent instantiation
+ }
+
+ public static Optional<TypeDeclaration> findType(CompilationUnit cu, String name) {
+ return cu.getTypes().stream().filter((t) -> t.getName().equals(name)).findFirst();
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/NavigatorSimplified.java.txt b/javaparser-symbol-solver-testing/src/test/resources/NavigatorSimplified.java.txt
new file mode 100644
index 000000000..7f856bd98
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/NavigatorSimplified.java.txt
@@ -0,0 +1,33 @@
+package me.tomassetti.symbolsolver.javaparser;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.expr.NameExpr;
+
+import java.util.stream.Stream;
+
+import java.util.Optional;
+
+/**
+ * This class can be used to conveniently retrieve certain node from a JavaParser AST.
+ */
+public final class Navigator {
+
+ private Navigator() {
+ // prevent instantiation
+ }
+
+ public static void findType() {
+ Stream<String> s = null;
+ s.filter((t)->t.isEmpty());
+ }
+
+ public void foo(Stream<String> s){
+
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/OverloadedMethods.java.txt b/javaparser-symbol-solver-testing/src/test/resources/OverloadedMethods.java.txt
new file mode 100644
index 000000000..fef317a28
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/OverloadedMethods.java.txt
@@ -0,0 +1,27 @@
+/**
+ * Created by federico on 02/08/15.
+ */
+public class OverloadedMethods {
+
+ public void overloaded(Object o){
+
+ }
+
+ public void overloaded(String o){
+
+ }
+
+ public void m1(){
+ overloaded(null);
+ }
+
+ public void m2(){
+ String s = null;
+ overloaded(s);
+ }
+
+ public void m3(){
+ Object o = null;
+ overloaded(o);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/QualifiedNameTest.java.txt b/javaparser-symbol-solver-testing/src/test/resources/QualifiedNameTest.java.txt
new file mode 100644
index 000000000..a8f86fede
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/QualifiedNameTest.java.txt
@@ -0,0 +1,8 @@
+class QualifiedNameTest {
+
+ public void foo1() {
+ java.util.Scanner s;
+ return s;
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ReferencesToField.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ReferencesToField.java.txt
new file mode 100644
index 000000000..ec80e9067
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ReferencesToField.java.txt
@@ -0,0 +1,18 @@
+class ReferencesToField {
+
+ int i;
+
+ public void method1(){
+ i = 2;
+ }
+
+}
+
+class ReferencesToFieldExtendingClass extends ReferencesToField {
+
+ public void method2(){
+ i = 2;
+ }
+
+}
+
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ReferencesToParameter.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ReferencesToParameter.java.txt
new file mode 100644
index 000000000..bded9510d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ReferencesToParameter.java.txt
@@ -0,0 +1,11 @@
+package samples;
+
+import com.github.javaparser.ast.expr.AnnotationExpr;
+
+class ReferenceToParameter extends AnnotationExpr {
+
+ public void aMethod(int foo){
+ System.out.println(foo);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ReflectionFieldOfItself.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ReflectionFieldOfItself.java.txt
new file mode 100644
index 000000000..39e812d11
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ReflectionFieldOfItself.java.txt
@@ -0,0 +1,7 @@
+import java.lang.reflect.Modifier;
+
+public class MyClass {
+
+ public static final int PUBLIC = Modifier.PUBLIC;
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/SwitchOnEnum.java.txt b/javaparser-symbol-solver-testing/src/test/resources/SwitchOnEnum.java.txt
new file mode 100644
index 000000000..47ec37bcf
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/SwitchOnEnum.java.txt
@@ -0,0 +1,15 @@
+class SwitchOnEnum {
+
+ enum MyEnum {
+ E1, E2, E3
+ }
+
+ public void foo() {
+ MyEnum e;
+ switch (e){
+ case E1:
+ break;
+ }
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/SymbolResolverExample.java.txt b/javaparser-symbol-solver-testing/src/test/resources/SymbolResolverExample.java.txt
new file mode 100644
index 000000000..acdaeace3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/SymbolResolverExample.java.txt
@@ -0,0 +1,11 @@
+class A {
+ A[] foo(String[] p1, int[] p2) { }
+}
+
+class B extends A {
+ float b;
+}
+
+class C extends B {
+ int c;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/ThisInAnonymousClass.java.txt b/javaparser-symbol-solver-testing/src/test/resources/ThisInAnonymousClass.java.txt
new file mode 100644
index 000000000..a558365a2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/ThisInAnonymousClass.java.txt
@@ -0,0 +1,13 @@
+ class Foo {
+ void foo() { }
+ }
+
+ class Bar {
+ void bar() {
+ new Foo() {
+ void extraFoo() {
+ this.foo();
+ }
+ };
+ }
+ } \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeParamOnReturnType.java.txt b/javaparser-symbol-solver-testing/src/test/resources/TypeParamOnReturnType.java.txt
new file mode 100644
index 000000000..2140b52ea
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/TypeParamOnReturnType.java.txt
@@ -0,0 +1,15 @@
+public interface GenericVisitor<R, A> {
+
+}
+
+class Node {
+ public abstract <R, A> R accept(GenericVisitor<R, A> v, A arg);
+}
+
+class TypeParamOnReturnType implements GenericVisitor<Boolean, Node> {
+
+ private <T extends Node> boolean nodeEquals(final T n1, final T n2) {
+ return n1.accept(this, n2).booleanValue();
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/aars/support-compat-24.2.0.aar b/javaparser-symbol-solver-testing/src/test/resources/aars/support-compat-24.2.0.aar
new file mode 100644
index 000000000..ade62e18a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/aars/support-compat-24.2.0.aar
Binary files differ
diff --git a/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/FieldDotExpressions.java b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/FieldDotExpressions.java
new file mode 100644
index 000000000..63f9b7469
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/FieldDotExpressions.java
@@ -0,0 +1,33 @@
+public class FieldDotExpressions {
+ public static void main(String[] args) {
+ InnerClassFieldContainer.outerField.containerField.containerField.firstContainerMethod();
+ InnerClassFieldContainer.InnerClass.innerField.containerField.containerField.secondContainerMethod();
+ InnerClassFieldContainer.InnerClass.InnerInnerClass.InnerInnerInnerClass.innerInnerInnerField.thirdContainerMethod();
+ }
+}
+
+class FieldContainer {
+ FieldContainer containerField = new FieldContainer();
+ public String firstContainerMethod() {
+ return "firstContainerMethod()";
+ }
+ public String secondContainerMethod() {
+ return "secondContainerMethod()";
+ }
+ public String thirdContainerMethod() {
+ return "thirdContainerMethod()";
+ }
+}
+
+class InnerClassFieldContainer {
+ FieldContainer outerField = new FieldContainer();
+ class InnerClass {
+ FieldContainer innerField = new FieldContainer();
+ class InnerInnerClass {
+ FieldContainer innerInnerField = new FieldContainer();
+ class InnerInnerInnerClass {
+ FieldContainer innerInnerInnerField = new FieldContainer();
+ }
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/InnerClassDotExpressions.java b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/InnerClassDotExpressions.java
new file mode 100644
index 000000000..17b89f02f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/InnerClassDotExpressions.java
@@ -0,0 +1,25 @@
+public class InnerClassDotExpressions {
+ public static void main(String[] args) {
+ InnerClassContainer.InnerClass.methodCall();
+ InnerClassContainer.InnerClass.InnerInnerClass.innerMethodCall();
+ InnerClassContainer.InnerClass.InnerInnerClass.InnerInnerInnerClass.innerInnerMethodCall();
+ }
+}
+
+class InnerClassContainer {
+ class InnerClass {
+ public static String methodCall() {
+ return "CalledMethod";
+ }
+ class InnerInnerClass {
+ public static String innerMethodCall() {
+ return "CalledInnerInnerClass";
+ }
+ class InnerInnerInnerClass {
+ public static String innerInnerMethodCall() {
+ return "CalledInnerInnerInnerClass";
+ }
+ }
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/InnerStaticClassFieldDotExpressions.java b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/InnerStaticClassFieldDotExpressions.java
new file mode 100644
index 000000000..71cb2d030
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/InnerStaticClassFieldDotExpressions.java
@@ -0,0 +1,8 @@
+import com.packageName.InnerStaticClassFieldContainer;
+
+public class InnerStaticClassFieldDotExpressions {
+ public static void main(String[] args) {
+ // force the solving of the argument
+ Integer.parseInt(InnerStaticClassFieldContainer.InnerClass.InnerInnerClass.MY_INT);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/PackageDotExpressions.java b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/PackageDotExpressions.java
new file mode 100644
index 000000000..eac5d3448
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/PackageDotExpressions.java
@@ -0,0 +1,16 @@
+public class PackageDotExpressions {
+ public static void main(String[] args) {
+ // Method call from package prefix
+ com.packageName.ClassInPackage.staticMethod();
+
+ // Static method calls inside inner classes with package prefix
+ com.packageName.InnerClassContainer.InnerClass.methodCall();
+ com.packageName.InnerClassContainer.InnerClass.InnerInnerClass.innerMethodCall();
+ com.packageName.InnerClassContainer.InnerClass.InnerInnerClass.InnerInnerInnerClass.innerInnerMethodCall();
+
+ // Method calls from field objects with package prefix
+ com.packageName.InnerClassFieldContainer.outerField.containerField.containerField.firstContainerMethod();
+ com.packageName.InnerClassFieldContainer.InnerClass.innerField.containerField.containerField.secondContainerMethod();
+ com.packageName.InnerClassFieldContainer.InnerClass.InnerInnerClass.InnerInnerInnerClass.innerInnerInnerField.thirdContainerMethod();
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/ClassInPackage.java b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/ClassInPackage.java
new file mode 100644
index 000000000..68db33c95
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/ClassInPackage.java
@@ -0,0 +1,7 @@
+package com.packageName;
+
+public class ClassInPackage {
+ public static String staticMethod() {
+ return "ClassInPackage.staticMethod()";
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerClassContainer.java b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerClassContainer.java
new file mode 100644
index 000000000..eb80bc9e8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerClassContainer.java
@@ -0,0 +1,17 @@
+public class InnerClassContainer {
+ class InnerClass {
+ public static String methodCall() {
+ return "CalledMethod";
+ }
+ class InnerInnerClass {
+ public static String innerMethodCall() {
+ return "CalledInnerInnerClass";
+ }
+ class InnerInnerInnerClass {
+ public static String innerInnerMethodCall() {
+ return "CalledInnerInnerInnerClass";
+ }
+ }
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerClassFieldContainer.java b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerClassFieldContainer.java
new file mode 100644
index 000000000..5a09bcf9a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerClassFieldContainer.java
@@ -0,0 +1,25 @@
+public class InnerClassFieldContainer {
+ FieldContainer outerField = new FieldContainer();
+ class InnerClass {
+ FieldContainer innerField = new FieldContainer();
+ class InnerInnerClass {
+ FieldContainer innerInnerField = new FieldContainer();
+ class InnerInnerInnerClass {
+ FieldContainer innerInnerInnerField = new FieldContainer();
+ }
+ }
+ }
+}
+
+class FieldContainer {
+ FieldContainer containerField = new FieldContainer();
+ public String firstContainerMethod() {
+ return "firstContainerMethod()";
+ }
+ public String secondContainerMethod() {
+ return "secondContainerMethod()";
+ }
+ public String thirdContainerMethod() {
+ return "thirdContainerMethod()";
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerStaticClassFieldContainer.java b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerStaticClassFieldContainer.java
new file mode 100644
index 000000000..f9cc6cac8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/differentiate_dot_expressions/com/packageName/InnerStaticClassFieldContainer.java
@@ -0,0 +1,15 @@
+package com.packageName;
+
+public class InnerStaticClassFieldContainer {
+ static class InnerClass {
+ public static String methodCall() {
+ return "CalledMethod";
+ }
+ static class InnerInnerClass {
+ public static final String MY_INT = "1";
+ public static String innerMethodCall() {
+ return "CalledInnerInnerClass";
+ }
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue113/com/foo/Widget.java b/javaparser-symbol-solver-testing/src/test/resources/issue113/com/foo/Widget.java
new file mode 100644
index 000000000..2dcab368f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue113/com/foo/Widget.java
@@ -0,0 +1,45 @@
+/**
+ * (C) 2016 Agilysys NV, LLC. All Rights Reserved. Confidential Information of Agilysys NV, LLC.
+ */
+package com.foo;
+
+import java.io.File;
+import java.io.IOException;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+
+public class Widget extends com.foo.base.Widget {
+ private static final String PROJECT_ROOT = "/Users/peloquina/dev/javasymbolsolver-issue";
+ private static final String JAVA_ROOT = PROJECT_ROOT + "/src/main/java";
+ private static final String CLASS = JAVA_ROOT + "/com/foo/Widget.java";
+
+ public static void main(String[] args) throws IOException, ParseException {
+ File src = new File(JAVA_ROOT);
+ CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
+ combinedTypeSolver.add(new ReflectionTypeSolver(true));
+ combinedTypeSolver.add(new JavaParserTypeSolver(src));
+
+ CompilationUnit compilationUnit = JavaParser.parse(new File(CLASS));
+
+ JavaParserFacade parserFacade = JavaParserFacade.get(combinedTypeSolver);
+ MethodDeclaration methodDeclaration = compilationUnit.getNodesByType(MethodDeclaration.class).stream()
+ .filter(node -> node.getName().equals("doSomething")).findAny().orElse(null);
+ methodDeclaration.getNodesByType(MethodCallExpr.class).forEach(parserFacade::solve);
+ }
+
+ public void doSomething() {
+ doSomethingMore(new Widget());
+ }
+
+ public void doSomethingMore(Widget value) {
+ // does something
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue113/com/foo/base/Widget.java b/javaparser-symbol-solver-testing/src/test/resources/issue113/com/foo/base/Widget.java
new file mode 100644
index 000000000..cffffefb2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue113/com/foo/base/Widget.java
@@ -0,0 +1,6 @@
+/**
+ * (C) 2016 Agilysys NV, LLC. All Rights Reserved. Confidential Information of Agilysys NV, LLC.
+ */
+package com.foo.base;
+
+public class Widget {}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue128/foo/Issue128.java b/javaparser-symbol-solver-testing/src/test/resources/issue128/foo/Issue128.java
new file mode 100644
index 000000000..50410e15d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue128/foo/Issue128.java
@@ -0,0 +1,10 @@
+package foo;
+
+import static foo.JavaTest.*;
+// here could be the correct import for bar
+
+public class JavaTest {
+ public void test() {
+ bar();
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue144/HelloWorld.java b/javaparser-symbol-solver-testing/src/test/resources/issue144/HelloWorld.java
new file mode 100644
index 000000000..994d63200
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue144/HelloWorld.java
@@ -0,0 +1,8 @@
+public class HelloWorld {
+
+ static String hw="Hello world";
+
+ public static void main(String[] args) {
+ System.out.println(hw);
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue241/TypeWithMemberType.java b/javaparser-symbol-solver-testing/src/test/resources/issue241/TypeWithMemberType.java
new file mode 100644
index 000000000..c6d21a197
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue241/TypeWithMemberType.java
@@ -0,0 +1,9 @@
+package issue241;
+
+public class TypeWithMemberType {
+
+ public interface MemberInterface {
+
+ }
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue257/A.java.txt b/javaparser-symbol-solver-testing/src/test/resources/issue257/A.java.txt
new file mode 100644
index 000000000..db5a1d253
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue257/A.java.txt
@@ -0,0 +1,9 @@
+package com.testbug;
+import net.testbug.B;
+public class A {
+ private B obj;
+ public void run()
+ {
+ obj.setParameter(null);
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue257/issue257.jar b/javaparser-symbol-solver-testing/src/test/resources/issue257/issue257.jar
new file mode 100644
index 000000000..5dc1c1a0b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue257/issue257.jar
Binary files differ
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue276/foo/A.java b/javaparser-symbol-solver-testing/src/test/resources/issue276/foo/A.java
new file mode 100644
index 000000000..c302ef3d2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue276/foo/A.java
@@ -0,0 +1,11 @@
+package foo;
+
+interface A {
+
+ enum FindMeIfYouCan {
+ CONSTANT
+ }
+
+ void overrideMe(FindMeIfYouCan v);
+}
+ \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue276/foo/B.java b/javaparser-symbol-solver-testing/src/test/resources/issue276/foo/B.java
new file mode 100644
index 000000000..69c3b3bf9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue276/foo/B.java
@@ -0,0 +1,5 @@
+package foo;
+
+
+public abstract class B implements A {
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue276/foo/C.java b/javaparser-symbol-solver-testing/src/test/resources/issue276/foo/C.java
new file mode 100644
index 000000000..bc4f5e600
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue276/foo/C.java
@@ -0,0 +1,11 @@
+package foo;
+
+public class C {
+ public static A getFoo() {
+ return new B() {
+ @Override
+ public void overrideMe(FindMeIfYouCan v) {
+ }
+ };
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue300/Issue300.java b/javaparser-symbol-solver-testing/src/test/resources/issue300/Issue300.java
new file mode 100644
index 000000000..ae39712c8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/issue300/Issue300.java
@@ -0,0 +1,12 @@
+public class Issue300 {
+
+ class A {
+ int i;
+ }
+
+ class B {
+ B() {
+ new A().i = 0;
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser-core-2.1.0.jar b/javaparser-symbol-solver-testing/src/test/resources/javaparser-core-2.1.0.jar
new file mode 100644
index 000000000..38d4ea0b7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser-core-2.1.0.jar
Binary files differ
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser-core-3.0.0-alpha.2.jar b/javaparser-symbol-solver-testing/src/test/resources/javaparser-core-3.0.0-alpha.2.jar
new file mode 100644
index 000000000..cbe5b5741
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser-core-3.0.0-alpha.2.jar
Binary files differ
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ASTHelper.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ASTHelper.txt
new file mode 100644
index 000000000..de7fbcfba
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ASTHelper.txt
@@ -0,0 +1,79 @@
+
+[ Class com.github.javaparser.ASTHelper ]
+ superclass: java.lang.Object
+ Line 58) new PrimitiveType(Primitive.Byte) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 60) new PrimitiveType(Primitive.Short) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 62) new PrimitiveType(Primitive.Int) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 64) new PrimitiveType(Primitive.Long) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 66) new PrimitiveType(Primitive.Float) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 68) new PrimitiveType(Primitive.Double) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 70) new PrimitiveType(Primitive.Boolean) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 72) new PrimitiveType(Primitive.Char) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 74) new VoidType() ==> com.github.javaparser.ast.type.VoidType
+ Line 89) String[] split = qualifiedName.split("\\.") ==> java.lang.String[]
+ Line 89) qualifiedName.split("\\.") ==> java.lang.String[]
+ Line 90) NameExpr ret = new NameExpr(split[0]) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 90) new NameExpr(split[0]) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 91) int i = 1 ==> int
+ Line 91) 1 ==> int
+ Line 91) i < split.length ==> boolean
+ Line 91) i++ ==> int
+ Line 92) ret = new QualifiedNameExpr(ret, split[i]) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 94) ret ==> com.github.javaparser.ast.expr.NameExpr
+ Line 107) new Parameter(type, new VariableDeclaratorId(name)) ==> com.github.javaparser.ast.body.Parameter
+ Line 122) List<VariableDeclarator> variables = new ArrayList<VariableDeclarator>() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 122) new ArrayList<VariableDeclarator>() ==> java.util.ArrayList<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 123) variables.add(variable) ==> boolean
+ Line 124) FieldDeclaration ret = new FieldDeclaration(modifiers, type, variables) ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 124) new FieldDeclaration(modifiers, type, variables) ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 125) ret ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 140) VariableDeclaratorId id = new VariableDeclaratorId(name) ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 140) new VariableDeclaratorId(name) ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 141) VariableDeclarator variable = new VariableDeclarator(id) ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 141) new VariableDeclarator(id) ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 142) createFieldDeclaration(modifiers, type, variable) ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 155) List<VariableDeclarator> vars = new ArrayList<VariableDeclarator>() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 155) new ArrayList<VariableDeclarator>() ==> java.util.ArrayList<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 156) vars.add(new VariableDeclarator(new VariableDeclaratorId(name))) ==> boolean
+ Line 157) new VariableDeclarationExpr(type, vars) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 170) List<Parameter> parameters = method.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 170) method.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 171) parameters == null ==> boolean
+ Line 172) parameters = new ArrayList<Parameter>() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 173) method.setParameters(parameters) ==> void
+ Line 175) parameters.add(parameter) ==> boolean
+ Line 188) List<Expression> args = call.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 188) call.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 189) args == null ==> boolean
+ Line 190) args = new ArrayList<Expression>() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 191) call.setArgs(args) ==> void
+ Line 193) args.add(arg) ==> boolean
+ Line 206) List<TypeDeclaration> types = cu.getTypes() ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 206) cu.getTypes() ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 207) types == null ==> boolean
+ Line 208) types = new ArrayList<TypeDeclaration>() ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 209) cu.setTypes(types) ==> void
+ Line 211) types.add(type) ==> boolean
+ Line 225) new ReferenceType(new ClassOrInterfaceType(name), arrayCount) ==> com.github.javaparser.ast.type.ReferenceType
+ Line 238) new ReferenceType(type, arrayCount) ==> com.github.javaparser.ast.type.ReferenceType
+ Line 249) List<Statement> stmts = block.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 249) block.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 250) stmts == null ==> boolean
+ Line 251) stmts = new ArrayList<Statement>() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 252) block.setStmts(stmts) ==> void
+ Line 254) stmts.add(stmt) ==> boolean
+ Line 265) addStmt(block, new ExpressionStmt(expr)) ==> void
+ Line 278) List<BodyDeclaration> members = type.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 278) type.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 279) members == null ==> boolean
+ Line 280) members = new ArrayList<BodyDeclaration>() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 281) type.setMembers(members) ==> void
+ Line 283) members.add(decl) ==> boolean
+ Line 287) List<N> nodes = new ArrayList<N>() ==> java.util.List<N>
+ Line 287) new ArrayList<N>() ==> java.util.ArrayList<N>
+ Line 288) Node child ==> com.github.javaparser.ast.Node
+ Line 288) container.getChildrenNodes() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 289) clazz.isInstance(child) ==> boolean
+ Line 290) nodes.add(clazz.cast(child)) ==> boolean
+ Line 292) nodes.addAll(getNodesByType(child, clazz)) ==> boolean
+ Line 294) nodes ==> java.util.List<N>
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_JavaParser.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_JavaParser.txt
new file mode 100644
index 000000000..bf1236015
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_JavaParser.txt
@@ -0,0 +1,155 @@
+
+[ Class com.github.javaparser.JavaParser ]
+ superclass: java.lang.Object
+ Line 68) true ==> boolean
+ Line 70) false ==> boolean
+ Line 74) _doNotConsiderAnnotationsAsNodeStartForCodeAttribution ==> boolean
+ Line 78) _doNotConsiderAnnotationsAsNodeStartForCodeAttribution = doNotConsiderAnnotationsAsNodeStartForCodeAttribution ==> boolean
+ Line 83) _doNotAssignCommentsPreceedingEmptyLines ==> boolean
+ Line 88) _doNotAssignCommentsPreceedingEmptyLines = doNotAssignCommentsPreceedingEmptyLines ==> boolean
+ Line 93) parse(in, encoding, true) ==> com.github.javaparser.ast.CompilationUnit
+ Line 111) String code = SourcesHelper.streamToString(in, encoding) ==> java.lang.String
+ Line 111) SourcesHelper.streamToString(in, encoding) ==> java.lang.String
+ Line 112) InputStream in1 = SourcesHelper.stringToStream(code, encoding) ==> java.io.InputStream
+ Line 112) SourcesHelper.stringToStream(code, encoding) ==> java.io.InputStream
+ Line 113) CompilationUnit cu = new ASTParser(in1, encoding).CompilationUnit() ==> com.github.javaparser.ast.CompilationUnit
+ Line 113) new ASTParser(in1, encoding).CompilationUnit() ==> com.github.javaparser.ast.CompilationUnit
+ Line 114) considerComments ==> boolean
+ Line 115) insertComments(cu, code) ==> void
+ Line 117) cu ==> com.github.javaparser.ast.CompilationUnit
+ Line 119) new ParseException(ioe.getMessage()) ==> com.github.javaparser.ParseException
+ Line 135) parse(in, null, true) ==> com.github.javaparser.ast.CompilationUnit
+ Line 140) parse(file, encoding, true) ==> com.github.javaparser.ast.CompilationUnit
+ Line 158) final FileInputStream in = new FileInputStream(file) ==> java.io.FileInputStream
+ Line 158) new FileInputStream(file) ==> java.io.FileInputStream
+ Line 160) parse(in, encoding, considerComments) ==> com.github.javaparser.ast.CompilationUnit
+ Line 162) in.close() ==> void
+ Line 179) parse(file, null, true) ==> com.github.javaparser.ast.CompilationUnit
+ Line 185) String code = SourcesHelper.readerToString(reader) ==> java.lang.String
+ Line 185) SourcesHelper.readerToString(reader) ==> java.lang.String
+ Line 186) Reader reader1 = SourcesHelper.stringToReader(code) ==> java.io.Reader
+ Line 186) SourcesHelper.stringToReader(code) ==> java.io.Reader
+ Line 187) CompilationUnit cu = new ASTParser(reader1).CompilationUnit() ==> com.github.javaparser.ast.CompilationUnit
+ Line 187) new ASTParser(reader1).CompilationUnit() ==> com.github.javaparser.ast.CompilationUnit
+ Line 188) considerComments ==> boolean
+ Line 189) insertComments(cu, code) ==> void
+ Line 191) cu ==> com.github.javaparser.ast.CompilationUnit
+ Line 193) new ParseException(ioe.getMessage()) ==> com.github.javaparser.ParseException
+ Line 209) StringReader sr = new StringReader(blockStatement) ==> java.io.StringReader
+ Line 209) new StringReader(blockStatement) ==> java.io.StringReader
+ Line 210) BlockStmt result = new ASTParser(sr).Block() ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 210) new ASTParser(sr).Block() ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 211) sr.close() ==> void
+ Line 212) result ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 226) StringReader sr = new StringReader(statement) ==> java.io.StringReader
+ Line 226) new StringReader(statement) ==> java.io.StringReader
+ Line 227) Statement stmt = new ASTParser(sr).Statement() ==> com.github.javaparser.ast.stmt.Statement
+ Line 227) new ASTParser(sr).Statement() ==> com.github.javaparser.ast.stmt.Statement
+ Line 228) sr.close() ==> void
+ Line 229) stmt ==> com.github.javaparser.ast.stmt.Statement
+ Line 243) StringReader sr = new StringReader(importDeclaration) ==> java.io.StringReader
+ Line 243) new StringReader(importDeclaration) ==> java.io.StringReader
+ Line 244) ImportDeclaration id = new ASTParser(sr).ImportDeclaration() ==> com.github.javaparser.ast.ImportDeclaration
+ Line 244) new ASTParser(sr).ImportDeclaration() ==> com.github.javaparser.ast.ImportDeclaration
+ Line 245) sr.close() ==> void
+ Line 246) id ==> com.github.javaparser.ast.ImportDeclaration
+ Line 260) StringReader sr = new StringReader(expression) ==> java.io.StringReader
+ Line 260) new StringReader(expression) ==> java.io.StringReader
+ Line 261) Expression e = new ASTParser(sr).Expression() ==> com.github.javaparser.ast.expr.Expression
+ Line 261) new ASTParser(sr).Expression() ==> com.github.javaparser.ast.expr.Expression
+ Line 262) sr.close() ==> void
+ Line 263) e ==> com.github.javaparser.ast.expr.Expression
+ Line 277) StringReader sr = new StringReader(annotation) ==> java.io.StringReader
+ Line 277) new StringReader(annotation) ==> java.io.StringReader
+ Line 278) AnnotationExpr ae = new ASTParser(sr).Annotation() ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 278) new ASTParser(sr).Annotation() ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 279) sr.close() ==> void
+ Line 280) ae ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 294) StringReader sr = new StringReader(body) ==> java.io.StringReader
+ Line 294) new StringReader(body) ==> java.io.StringReader
+ Line 295) BodyDeclaration bd = new ASTParser(sr).AnnotationBodyDeclaration() ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 295) new ASTParser(sr).AnnotationBodyDeclaration() ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 296) sr.close() ==> void
+ Line 297) bd ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 305) commentsCollection.size() == 0 ==> boolean
+ Line 312) List<Comment> comments = commentsCollection.getAll() ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 312) commentsCollection.getAll() ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 313) PositionUtils.sortByBeginPosition(comments) ==> void
+ Line 314) List<Node> children = cu.getChildrenNodes() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 314) cu.getChildrenNodes() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 315) PositionUtils.sortByBeginPosition(children) ==> void
+ Line 317) cu.getPackage() != null && (children.size() == 0 || PositionUtils.areInOrder(comments.get(0), children.get(0))) ==> boolean
+ Line 318) cu.setComment(comments.get(0)) ==> void
+ Line 319) comments.remove(0) ==> com.github.javaparser.ast.comments.Comment
+ Line 322) insertCommentsInNode(cu, comments) ==> void
+ Line 329) node.getBeginLine() == lineComment.getBeginLine() && !node.hasComment() ==> boolean
+ Line 331) node.setComment(lineComment) ==> void
+ Line 332) true ==> boolean
+ Line 336) List<Node> children = new LinkedList<Node>() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 336) new LinkedList<Node>() ==> java.util.LinkedList<com.github.javaparser.ast.Node>
+ Line 337) children.addAll(node.getChildrenNodes()) ==> boolean
+ Line 338) PositionUtils.sortByBeginPosition(children) ==> void
+ Line 339) Collections.reverse(children) ==> void
+ Line 341) Node child ==> com.github.javaparser.ast.Node
+ Line 341) children ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 343) attributeLineCommentToNodeOrChild(child, lineComment) ==> boolean
+ Line 345) true ==> boolean
+ Line 349) false ==> boolean
+ Line 358) commentsToAttribute.size() == 0 ==> boolean
+ Line 365) List<Node> children = node.getChildrenNodes() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 365) node.getChildrenNodes() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 366) PositionUtils.sortByBeginPosition(children) ==> void
+ Line 368) Node child ==> com.github.javaparser.ast.Node
+ Line 368) children ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 369) List<Comment> commentsInsideChild = new LinkedList<Comment>() ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 369) new LinkedList<Comment>() ==> java.util.LinkedList<com.github.javaparser.ast.comments.Comment>
+ Line 370) Comment c ==> com.github.javaparser.ast.comments.Comment
+ Line 370) commentsToAttribute ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 371) PositionUtils.nodeContains(child, c, _doNotConsiderAnnotationsAsNodeStartForCodeAttribution) ==> boolean
+ Line 372) commentsInsideChild.add(c) ==> boolean
+ Line 375) commentsToAttribute.removeAll(commentsInsideChild) ==> boolean
+ Line 376) insertCommentsInNode(child, commentsInsideChild) ==> void
+ Line 381) List<Comment> attributedComments = new LinkedList<Comment>() ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 381) new LinkedList<Comment>() ==> java.util.LinkedList<com.github.javaparser.ast.comments.Comment>
+ Line 382) Comment comment ==> com.github.javaparser.ast.comments.Comment
+ Line 382) commentsToAttribute ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 384) comment.isLineComment() ==> boolean
+ Line 386) Node child ==> com.github.javaparser.ast.Node
+ Line 386) children ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 388) child.getEndLine() == comment.getBeginLine() ==> boolean
+ Line 390) attributeLineCommentToNodeOrChild(child, comment.asLineComment()) ==> boolean
+ Line 392) attributedComments.add(comment) ==> boolean
+ Line 400) Comment previousComment = null ==> com.github.javaparser.ast.comments.Comment
+ Line 400) null ==> null
+ Line 401) attributedComments = new LinkedList<Comment>() ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 402) List<Node> childrenAndComments = new LinkedList<Node>() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 402) new LinkedList<Node>() ==> java.util.LinkedList<com.github.javaparser.ast.Node>
+ Line 403) childrenAndComments.addAll(children) ==> boolean
+ Line 404) childrenAndComments.addAll(commentsToAttribute) ==> boolean
+ Line 405) PositionUtils.sortByBeginPosition(childrenAndComments, _doNotConsiderAnnotationsAsNodeStartForCodeAttribution) ==> void
+ Line 407) Node thing ==> com.github.javaparser.ast.Node
+ Line 407) childrenAndComments ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 408) thing instanceof Comment ==> boolean
+ Line 409) previousComment = (Comment) thing ==> com.github.javaparser.ast.comments.Comment
+ Line 410) !previousComment.isOrphan() ==> boolean
+ Line 412) previousComment = null ==> com.github.javaparser.ast.comments.Comment
+ Line 415) previousComment != null && !thing.hasComment() ==> boolean
+ Line 416) !_doNotAssignCommentsPreceedingEmptyLines || !thereAreLinesBetween(previousComment, thing) ==> boolean
+ Line 417) thing.setComment(previousComment) ==> void
+ Line 418) attributedComments.add(previousComment) ==> boolean
+ Line 419) previousComment = null ==> com.github.javaparser.ast.comments.Comment
+ Line 425) commentsToAttribute.removeAll(attributedComments) ==> boolean
+ Line 428) Comment c ==> com.github.javaparser.ast.comments.Comment
+ Line 428) commentsToAttribute ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 429) c.isOrphan() ==> boolean
+ Line 430) node.addOrphanComment(c) ==> void
+ Line 437) !PositionUtils.areInOrder(a, b) ==> boolean
+ Line 439) thereAreLinesBetween(b, a) ==> boolean
+ Line 441) int endOfA = a.getEndLine() ==> int
+ Line 441) a.getEndLine() ==> int
+ Line 442) b.getBeginLine() > (a.getEndLine() + 1) ==> boolean
+ Line 446) CommentsParser commentsParser = new CommentsParser() ==> com.github.javaparser.ast.comments.CommentsParser
+ Line 446) new CommentsParser() ==> com.github.javaparser.ast.comments.CommentsParser
+ Line 447) CommentsCollection allComments = commentsParser.parse(code) ==> com.github.javaparser.ast.comments.CommentsCollection
+ Line 447) commentsParser.parse(code) ==> com.github.javaparser.ast.comments.CommentsCollection
+ Line 449) insertCommentsInCu(cu, allComments) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_Position.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_Position.txt
new file mode 100644
index 000000000..6e16538d0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_Position.txt
@@ -0,0 +1,11 @@
+
+[ Class com.github.javaparser.Position ]
+ superclass: java.lang.Object
+ Line 30) new Position(Node.ABSOLUTE_BEGIN_LINE, -1) ==> com.github.javaparser.Position
+ Line 31) new Position(Node.ABSOLUTE_END_LINE, -1) ==> com.github.javaparser.Position
+ Line 34) new Position(node.getBeginLine(), node.getBeginColumn()) ==> com.github.javaparser.Position
+ Line 38) new Position(node.getEndLine(), node.getEndColumn()) ==> com.github.javaparser.Position
+ Line 42) this.line = line ==> int
+ Line 43) this.column = column ==> int
+ Line 47) this.line ==> int
+ Line 51) this.column ==> int
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_PositionUtils.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_PositionUtils.txt
new file mode 100644
index 000000000..c9df8865f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_PositionUtils.txt
@@ -0,0 +1,68 @@
+
+[ Class com.github.javaparser.PositionUtils ]
+ superclass: java.lang.Object
+ Line 46) sortByBeginPosition(nodes, false) ==> void
+ Line 50) Collections.sort(nodes, new Comparator<Node>() {
+
+ @Override
+ public int compare(Node o1, Node o2) {
+ return PositionUtils.compare(o1, o2, ignoringAnnotations);
+ }
+}) ==> void
+ Line 53) PositionUtils.compare(o1, o2, ignoringAnnotations) ==> int
+ Line 59) areInOrder(a, b, false) ==> boolean
+ Line 63) compare(a, b, ignoringAnnotations) <= 0 ==> boolean
+ Line 67) ignoringAnnotations ==> boolean
+ Line 68) int signLine = signum(beginLineWithoutConsideringAnnotation(a) - beginLineWithoutConsideringAnnotation(b)) ==> int
+ Line 68) signum(beginLineWithoutConsideringAnnotation(a) - beginLineWithoutConsideringAnnotation(b)) ==> int
+ Line 69) signLine == 0 ==> boolean
+ Line 70) signum(beginColumnWithoutConsideringAnnotation(a) - beginColumnWithoutConsideringAnnotation(b)) ==> int
+ Line 72) signLine ==> int
+ Line 76) int signLine = signum(a.getBeginLine() - b.getBeginLine()) ==> int
+ Line 76) signum(a.getBeginLine() - b.getBeginLine()) ==> int
+ Line 77) signLine == 0 ==> boolean
+ Line 78) signum(a.getBeginColumn() - b.getBeginColumn()) ==> int
+ Line 80) signLine ==> int
+ Line 85) node instanceof AnnotableNode ==> boolean
+ Line 86) List<AnnotationExpr> annotations = new LinkedList<AnnotationExpr>() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 86) new LinkedList<AnnotationExpr>() ==> java.util.LinkedList<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 87) annotations.addAll(((AnnotableNode) node).getAnnotations()) ==> boolean
+ Line 88) annotations.size() == 0 ==> boolean
+ Line 89) null ==> null
+ Line 91) sortByBeginPosition(annotations) ==> void
+ Line 92) annotations.get(annotations.size() - 1) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 94) null ==> null
+ Line 99) beginNodeWithoutConsideringAnnotations(node).getBeginLine() ==> int
+ Line 104) beginNodeWithoutConsideringAnnotations(node).getBeginColumn() ==> int
+ Line 108) node instanceof MethodDeclaration ==> boolean
+ Line 109) MethodDeclaration casted = (MethodDeclaration) node ==> com.github.javaparser.ast.body.MethodDeclaration
+ Line 109) (MethodDeclaration) node ==> com.github.javaparser.ast.body.MethodDeclaration
+ Line 110) casted.getType() ==> com.github.javaparser.ast.type.Type
+ Line 111) node instanceof FieldDeclaration ==> boolean
+ Line 112) FieldDeclaration casted = (FieldDeclaration) node ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 112) (FieldDeclaration) node ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 113) casted.getType() ==> com.github.javaparser.ast.type.Type
+ Line 114) node instanceof ClassOrInterfaceDeclaration ==> boolean
+ Line 115) ClassOrInterfaceDeclaration casted = (ClassOrInterfaceDeclaration) node ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration
+ Line 115) (ClassOrInterfaceDeclaration) node ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration
+ Line 116) casted.getNameExpr() ==> com.github.javaparser.ast.expr.NameExpr
+ Line 118) node ==> com.github.javaparser.ast.Node
+ Line 123) !ignoringAnnotations || PositionUtils.getLastAnnotation(container) == null ==> boolean
+ Line 124) container.contains(contained) ==> boolean
+ Line 126) !container.contains(contained) ==> boolean
+ Line 127) false ==> boolean
+ Line 131) container instanceof AnnotableNode ==> boolean
+ Line 132) int bl = beginLineWithoutConsideringAnnotation(container) ==> int
+ Line 132) beginLineWithoutConsideringAnnotation(container) ==> int
+ Line 133) int bc = beginColumnWithoutConsideringAnnotation(container) ==> int
+ Line 133) beginColumnWithoutConsideringAnnotation(container) ==> int
+ Line 134) bl > contained.getBeginLine() ==> boolean
+ Line 134) false ==> boolean
+ Line 135) bl == contained.getBeginLine() && bc > contained.getBeginColumn() ==> boolean
+ Line 135) false ==> boolean
+ Line 136) container.getEndLine() < contained.getEndLine() ==> boolean
+ Line 136) false ==> boolean
+ Line 137) container.getEndLine() == contained.getEndLine() && container.getEndColumn() < contained.getEndColumn() ==> boolean
+ Line 137) false ==> boolean
+ Line 138) true ==> boolean
+ Line 140) true ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_SourcesHelper.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_SourcesHelper.txt
new file mode 100644
index 000000000..d61fa5209
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_SourcesHelper.txt
@@ -0,0 +1,23 @@
+
+[ Class com.github.javaparser.SourcesHelper ]
+ superclass: java.lang.Object
+ Line 29) encoding == null ==> boolean
+ Line 30) streamToString(in) ==> java.lang.String
+ Line 32) java.util.Scanner s = new java.util.Scanner(in, encoding).useDelimiter("\\A") ==> java.util.Scanner
+ Line 32) new java.util.Scanner(in, encoding).useDelimiter("\\A") ==> java.util.Scanner
+ Line 33) s.hasNext() ? s.next() : "" ==> java.lang.String
+ Line 38) java.util.Scanner s = new java.util.Scanner(in).useDelimiter("\\A") ==> java.util.Scanner
+ Line 38) new java.util.Scanner(in).useDelimiter("\\A") ==> java.util.Scanner
+ Line 39) s.hasNext() ? s.next() : "" ==> java.lang.String
+ Line 43) byte[] rawData = encoding != null ? s.getBytes(encoding) : s.getBytes() ==> byte[]
+ Line 43) encoding != null ? s.getBytes(encoding) : s.getBytes() ==> byte[]
+ Line 44) new ByteArrayInputStream(rawData) ==> java.io.ByteArrayInputStream
+ Line 48) char[] arr = new char[8 * 1024] ==> char[]
+ Line 48) new char[8 * 1024] ==> char[]
+ Line 49) StringBuilder buf = new StringBuilder() ==> java.lang.StringBuilder
+ Line 49) new StringBuilder() ==> java.lang.StringBuilder
+ Line 50) int numChars ==> int
+ Line 52) (numChars = reader.read(arr, 0, arr.length)) > 0 ==> boolean
+ Line 53) buf.append(arr, 0, numChars) ==> java.lang.StringBuilder
+ Line 56) buf.toString() ==> java.lang.String
+ Line 60) new StringReader(s) ==> java.io.StringReader
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_AccessSpecifier.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_AccessSpecifier.txt
new file mode 100644
index 000000000..94d25715a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_AccessSpecifier.txt
@@ -0,0 +1,2 @@
+ Line 41) this.codeRepresenation = codeRepresentation ==> java.lang.String
+ Line 45) this.codeRepresenation ==> java.lang.String
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_CompilationUnit.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_CompilationUnit.txt
new file mode 100644
index 000000000..320568f79
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_CompilationUnit.txt
@@ -0,0 +1,28 @@
+
+[ Class com.github.javaparser.ast.CompilationUnit ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 63) setPackage(pakage) ==> void
+ Line 64) setImports(imports) ==> void
+ Line 65) setTypes(types) ==> void
+ Line 69) beginLine ==> int
+ Line 69) beginColumn ==> int
+ Line 69) endLine ==> int
+ Line 69) endColumn ==> int
+ Line 70) setPackage(pakage) ==> void
+ Line 71) setImports(imports) ==> void
+ Line 72) setTypes(types) ==> void
+ Line 77) v.visit(this, arg) ==> R
+ Line 82) v.visit(this, arg) ==> void
+ Line 98) this.getAllContainedComments() ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 108) imports ==> java.util.List<com.github.javaparser.ast.ImportDeclaration>
+ Line 119) pakage ==> com.github.javaparser.ast.PackageDeclaration
+ Line 133) types ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 143) new RuntimeException("Not implemented!") ==> java.lang.RuntimeException
+ Line 154) this.imports = imports ==> java.util.List<com.github.javaparser.ast.ImportDeclaration>
+ Line 155) setAsParentNodeOf(this.imports) ==> void
+ Line 166) this.pakage = pakage ==> com.github.javaparser.ast.PackageDeclaration
+ Line 167) setAsParentNodeOf(this.pakage) ==> void
+ Line 177) this.types = types ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 178) setAsParentNodeOf(this.types) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_DocumentableNode.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_DocumentableNode.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_DocumentableNode.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_ImportDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_ImportDeclaration.txt
new file mode 100644
index 000000000..28ebfa887
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_ImportDeclaration.txt
@@ -0,0 +1,24 @@
+
+[ Class com.github.javaparser.ast.ImportDeclaration ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 53) setAsterisk(isAsterisk) ==> void
+ Line 54) setName(name) ==> void
+ Line 55) setStatic(isStatic) ==> void
+ Line 59) beginLine ==> int
+ Line 59) beginColumn ==> int
+ Line 59) endLine ==> int
+ Line 59) endColumn ==> int
+ Line 60) setAsterisk(isAsterisk) ==> void
+ Line 61) setName(name) ==> void
+ Line 62) setStatic(isStatic) ==> void
+ Line 67) v.visit(this, arg) ==> R
+ Line 72) v.visit(this, arg) ==> void
+ Line 81) name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 91) asterisk ==> boolean
+ Line 101) static_ ==> boolean
+ Line 111) this.asterisk = asterisk ==> boolean
+ Line 121) this.name = name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 122) setAsParentNodeOf(this.name) ==> void
+ Line 132) this.static_ = static_ ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_NamedNode.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_NamedNode.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_NamedNode.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_Node.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_Node.txt
new file mode 100644
index 000000000..e6070dad2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_Node.txt
@@ -0,0 +1,95 @@
+
+[ Class com.github.javaparser.ast.Node ]
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 52) new LinkedList<Node>() ==> java.util.LinkedList<com.github.javaparser.ast.Node>
+ Line 53) new LinkedList<Comment>() ==> java.util.LinkedList<com.github.javaparser.ast.comments.Comment>
+ Line 66) this.beginLine = beginLine ==> int
+ Line 67) this.beginColumn = beginColumn ==> int
+ Line 68) this.endLine = endLine ==> int
+ Line 69) this.endColumn = endColumn ==> int
+ Line 105) beginColumn ==> int
+ Line 114) beginLine ==> int
+ Line 123) comment ==> com.github.javaparser.ast.comments.Comment
+ Line 132) data ==> java.lang.Object
+ Line 141) endColumn ==> int
+ Line 150) endLine ==> int
+ Line 160) this.beginColumn = beginColumn ==> int
+ Line 170) this.beginLine = beginLine ==> int
+ Line 179) comment != null && (this instanceof Comment) ==> boolean
+ Line 180) new RuntimeException("A comment can not be commented") ==> java.lang.RuntimeException
+ Line 182) this.comment != null ==> boolean
+ Line 184) this.comment.setCommentedNode(null) ==> void
+ Line 186) this.comment = comment ==> com.github.javaparser.ast.comments.Comment
+ Line 187) comment != null ==> boolean
+ Line 188) this.comment.setCommentedNode(this) ==> void
+ Line 198) this.data = data ==> java.lang.Object
+ Line 208) this.endColumn = endColumn ==> int
+ Line 218) this.endLine = endLine ==> int
+ Line 228) final DumpVisitor visitor = new DumpVisitor() ==> com.github.javaparser.ast.visitor.DumpVisitor
+ Line 228) new DumpVisitor() ==> com.github.javaparser.ast.visitor.DumpVisitor
+ Line 229) accept(visitor, null) ==> void
+ Line 230) visitor.getSource() ==> java.lang.String
+ Line 234) final DumpVisitor visitor = new DumpVisitor(false) ==> com.github.javaparser.ast.visitor.DumpVisitor
+ Line 234) new DumpVisitor(false) ==> com.github.javaparser.ast.visitor.DumpVisitor
+ Line 235) accept(visitor, null) ==> void
+ Line 236) visitor.getSource() ==> java.lang.String
+ Line 241) toString().hashCode() ==> int
+ Line 246) obj == null || !(obj instanceof Node) ==> boolean
+ Line 247) false ==> boolean
+ Line 249) EqualsVisitor.equals(this, (Node) obj) ==> boolean
+ Line 254) this.accept(new CloneVisitor(), null) ==> com.github.javaparser.ast.Node
+ Line 258) parentNode ==> com.github.javaparser.ast.Node
+ Line 262) childrenNodes ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 266) getBeginLine() > other.getBeginLine() ==> boolean
+ Line 266) false ==> boolean
+ Line 267) getBeginLine() == other.getBeginLine() && getBeginColumn() > other.getBeginColumn() ==> boolean
+ Line 267) false ==> boolean
+ Line 268) getEndLine() < other.getEndLine() ==> boolean
+ Line 268) false ==> boolean
+ Line 269) getEndLine() == other.getEndLine() && getEndColumn() < other.getEndColumn() ==> boolean
+ Line 269) false ==> boolean
+ Line 270) true ==> boolean
+ Line 274) orphanComments.add(comment) ==> boolean
+ Line 275) comment.setParentNode(this) ==> void
+ Line 290) orphanComments ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 300) List<Comment> comments = new LinkedList<Comment>() ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 300) new LinkedList<Comment>() ==> java.util.LinkedList<com.github.javaparser.ast.comments.Comment>
+ Line 301) comments.addAll(getOrphanComments()) ==> boolean
+ Line 303) Node child ==> com.github.javaparser.ast.Node
+ Line 303) getChildrenNodes() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 304) child.getComment() != null ==> boolean
+ Line 305) comments.add(child.getComment()) ==> boolean
+ Line 307) comments.addAll(child.getAllContainedComments()) ==> boolean
+ Line 310) comments ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 321) this.parentNode != null ==> boolean
+ Line 322) this.parentNode.childrenNodes.remove(this) ==> boolean
+ Line 324) this.parentNode = parentNode ==> com.github.javaparser.ast.Node
+ Line 326) this.parentNode != null ==> boolean
+ Line 327) this.parentNode.childrenNodes.add(this) ==> boolean
+ Line 332) childNodes != null ==> boolean
+ Line 333) Iterator<? extends Node> it = childNodes.iterator() ==> java.util.Iterator<? extends com.github.javaparser.ast.Node>
+ Line 333) childNodes.iterator() ==> java.util.Iterator<? extends com.github.javaparser.ast.Node>
+ Line 334) it.hasNext() ==> boolean
+ Line 335) Node current = it.next() ==> com.github.javaparser.ast.Node
+ Line 335) it.next() ==> ? extends com.github.javaparser.ast.Node
+ Line 336) current.setParentNode(this) ==> void
+ Line 342) childNode != null ==> boolean
+ Line 343) childNode.setParentNode(this) ==> void
+ Line 347) -1 ==> int
+ Line 348) -2 ==> int
+ Line 351) line == ABSOLUTE_BEGIN_LINE ==> boolean
+ Line 351) true ==> boolean
+ Line 352) getBeginLine() > line ==> boolean
+ Line 353) true ==> boolean
+ Line 354) getBeginLine() == line ==> boolean
+ Line 355) getBeginColumn() > column ==> boolean
+ Line 357) false ==> boolean
+ Line 362) line == ABSOLUTE_END_LINE ==> boolean
+ Line 362) true ==> boolean
+ Line 363) getEndLine() < line ==> boolean
+ Line 364) true ==> boolean
+ Line 365) getEndLine() == line ==> boolean
+ Line 366) getEndColumn() < column ==> boolean
+ Line 368) false ==> boolean
+ Line 374) comment != null ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_PackageDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_PackageDeclaration.txt
new file mode 100644
index 000000000..a6ccfcdd2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_PackageDeclaration.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.PackageDeclaration ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 54) setName(name) ==> void
+ Line 58) setAnnotations(annotations) ==> void
+ Line 59) setName(name) ==> void
+ Line 63) beginLine ==> int
+ Line 63) beginColumn ==> int
+ Line 63) endLine ==> int
+ Line 63) endColumn ==> int
+ Line 64) setAnnotations(annotations) ==> void
+ Line 65) setName(name) ==> void
+ Line 70) v.visit(this, arg) ==> R
+ Line 75) v.visit(this, arg) ==> void
+ Line 85) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 94) name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 102) this.annotations = annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 103) setAsParentNodeOf(this.annotations) ==> void
+ Line 113) this.name = name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 114) setAsParentNodeOf(this.name) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_TreeVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_TreeVisitor.txt
new file mode 100644
index 000000000..dfb295ecd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_TreeVisitor.txt
@@ -0,0 +1,7 @@
+
+[ Class com.github.javaparser.ast.TreeVisitor ]
+ superclass: java.lang.Object
+ Line 27) process(node) ==> void
+ Line 28) Node child ==> com.github.javaparser.ast.Node
+ Line 28) node.getChildrenNodes() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 29) visitDepthFirst(child) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_TypeParameter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_TypeParameter.txt
new file mode 100644
index 000000000..159adf0bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_TypeParameter.txt
@@ -0,0 +1,32 @@
+
+[ Class com.github.javaparser.ast.TypeParameter ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.NamedNode
+ interface: java.lang.Cloneable
+ Line 55) setName(name) ==> void
+ Line 56) setTypeBound(typeBound) ==> void
+ Line 61) beginLine ==> int
+ Line 61) beginColumn ==> int
+ Line 61) endLine ==> int
+ Line 61) endColumn ==> int
+ Line 62) setName(name) ==> void
+ Line 63) setTypeBound(typeBound) ==> void
+ Line 68) beginLine ==> int
+ Line 68) beginColumn ==> int
+ Line 68) endLine ==> int
+ Line 68) endColumn ==> int
+ Line 68) name ==> java.lang.String
+ Line 68) typeBound ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 69) setName(name) ==> void
+ Line 70) setTypeBound(typeBound) ==> void
+ Line 71) this.annotations = annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 75) v.visit(this, arg) ==> R
+ Line 79) v.visit(this, arg) ==> void
+ Line 88) name ==> java.lang.String
+ Line 98) typeBound ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 108) this.name = name ==> java.lang.String
+ Line 118) this.typeBound = typeBound ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 119) setAsParentNodeOf(typeBound) ==> void
+ Line 123) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 127) this.annotations = annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotableNode.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotableNode.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotableNode.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotationDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotationDeclaration.txt
new file mode 100644
index 000000000..f68d9dd8a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotationDeclaration.txt
@@ -0,0 +1,28 @@
+
+[ Class com.github.javaparser.ast.body.AnnotationDeclaration ]
+ superclass: com.github.javaparser.ast.body.TypeDeclaration
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ interface: com.github.javaparser.ast.NamedNode
+ Line 41) modifiers ==> int
+ Line 41) name ==> java.lang.String
+ Line 45) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 45) modifiers ==> int
+ Line 45) name ==> java.lang.String
+ Line 45) members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 49) beginLine ==> int
+ Line 49) beginColumn ==> int
+ Line 49) endLine ==> int
+ Line 49) endColumn ==> int
+ Line 49) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 49) modifiers ==> int
+ Line 49) name ==> java.lang.String
+ Line 49) members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 54) v.visit(this, arg) ==> R
+ Line 59) v.visit(this, arg) ==> void
+ Line 64) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 69) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotationMemberDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotationMemberDeclaration.txt
new file mode 100644
index 000000000..937657954
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_AnnotationMemberDeclaration.txt
@@ -0,0 +1,41 @@
+
+[ Class com.github.javaparser.ast.body.AnnotationMemberDeclaration ]
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: com.github.javaparser.ast.NamedNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ Line 52) setModifiers(modifiers) ==> void
+ Line 53) setType(type) ==> void
+ Line 54) setName(name) ==> void
+ Line 55) setDefaultValue(defaultValue) ==> void
+ Line 59) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 60) setModifiers(modifiers) ==> void
+ Line 61) setType(type) ==> void
+ Line 62) setName(name) ==> void
+ Line 63) setDefaultValue(defaultValue) ==> void
+ Line 67) beginLine ==> int
+ Line 67) beginColumn ==> int
+ Line 67) endLine ==> int
+ Line 67) endColumn ==> int
+ Line 67) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 68) setModifiers(modifiers) ==> void
+ Line 69) setType(type) ==> void
+ Line 70) setName(name) ==> void
+ Line 71) setDefaultValue(defaultValue) ==> void
+ Line 76) v.visit(this, arg) ==> R
+ Line 81) v.visit(this, arg) ==> void
+ Line 85) defaultValue ==> com.github.javaparser.ast.expr.Expression
+ Line 95) modifiers ==> int
+ Line 99) name ==> java.lang.String
+ Line 103) type ==> com.github.javaparser.ast.type.Type
+ Line 107) this.defaultValue = defaultValue ==> com.github.javaparser.ast.expr.Expression
+ Line 108) setAsParentNodeOf(defaultValue) ==> void
+ Line 112) this.modifiers = modifiers ==> int
+ Line 116) this.name = name ==> java.lang.String
+ Line 120) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 121) setAsParentNodeOf(type) ==> void
+ Line 126) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 131) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_BaseParameter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_BaseParameter.txt
new file mode 100644
index 000000000..57f8ed27f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_BaseParameter.txt
@@ -0,0 +1,26 @@
+
+[ Class com.github.javaparser.ast.body.BaseParameter ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 40) setId(id) ==> void
+ Line 44) setModifiers(modifiers) ==> void
+ Line 45) setId(id) ==> void
+ Line 49) setModifiers(modifiers) ==> void
+ Line 50) setAnnotations(annotations) ==> void
+ Line 51) setId(id) ==> void
+ Line 55) beginLine ==> int
+ Line 55) beginColumn ==> int
+ Line 55) endLine ==> int
+ Line 55) endColumn ==> int
+ Line 56) setModifiers(modifiers) ==> void
+ Line 57) setAnnotations(annotations) ==> void
+ Line 58) setId(id) ==> void
+ Line 62) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 66) id ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 76) modifiers ==> int
+ Line 80) this.annotations = annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 81) setAsParentNodeOf(this.annotations) ==> void
+ Line 85) this.id = id ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 86) setAsParentNodeOf(this.id) ==> void
+ Line 90) this.modifiers = modifiers ==> int
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_BodyDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_BodyDeclaration.txt
new file mode 100644
index 000000000..577b700d9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_BodyDeclaration.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.body.BodyDeclaration ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ interface: java.lang.Cloneable
+ Line 41) setAnnotations(annotations) ==> void
+ Line 45) beginLine ==> int
+ Line 45) beginColumn ==> int
+ Line 45) endLine ==> int
+ Line 45) endColumn ==> int
+ Line 46) setAnnotations(annotations) ==> void
+ Line 50) annotations == null ==> boolean
+ Line 51) annotations = new ArrayList<AnnotationExpr>() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 53) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 57) this.annotations = annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 58) setAsParentNodeOf(this.annotations) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ClassOrInterfaceDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ClassOrInterfaceDeclaration.txt
new file mode 100644
index 000000000..28822299b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ClassOrInterfaceDeclaration.txt
@@ -0,0 +1,48 @@
+
+[ Class com.github.javaparser.ast.body.ClassOrInterfaceDeclaration ]
+ superclass: com.github.javaparser.ast.body.TypeDeclaration
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ interface: com.github.javaparser.ast.NamedNode
+ Line 52) modifiers ==> int
+ Line 52) name ==> java.lang.String
+ Line 53) setInterface(isInterface) ==> void
+ Line 60) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 60) modifiers ==> int
+ Line 60) name ==> java.lang.String
+ Line 60) members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 61) setInterface(isInterface) ==> void
+ Line 62) setTypeParameters(typeParameters) ==> void
+ Line 63) setExtends(extendsList) ==> void
+ Line 64) setImplements(implementsList) ==> void
+ Line 72) beginLine ==> int
+ Line 72) beginColumn ==> int
+ Line 72) endLine ==> int
+ Line 72) endColumn ==> int
+ Line 72) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 72) modifiers ==> int
+ Line 72) name ==> java.lang.String
+ Line 72) members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 73) setInterface(isInterface) ==> void
+ Line 74) setTypeParameters(typeParameters) ==> void
+ Line 75) setExtends(extendsList) ==> void
+ Line 76) setImplements(implementsList) ==> void
+ Line 80) v.visit(this, arg) ==> R
+ Line 84) v.visit(this, arg) ==> void
+ Line 88) extendsList ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 92) implementsList ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 96) typeParameters ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 100) interface_ ==> boolean
+ Line 104) this.extendsList = extendsList ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 105) setAsParentNodeOf(this.extendsList) ==> void
+ Line 109) this.implementsList = implementsList ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 110) setAsParentNodeOf(this.implementsList) ==> void
+ Line 114) this.interface_ = interface_ ==> boolean
+ Line 118) this.typeParameters = typeParameters ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 119) setAsParentNodeOf(this.typeParameters) ==> void
+ Line 124) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 129) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ConstructorDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ConstructorDeclaration.txt
new file mode 100644
index 000000000..187757a68
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ConstructorDeclaration.txt
@@ -0,0 +1,89 @@
+
+[ Class com.github.javaparser.ast.body.ConstructorDeclaration ]
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: com.github.javaparser.ast.body.WithDeclaration
+ interface: com.github.javaparser.ast.NamedNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ Line 60) setModifiers(modifiers) ==> void
+ Line 61) setName(name) ==> void
+ Line 66) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 67) setModifiers(modifiers) ==> void
+ Line 68) setTypeParameters(typeParameters) ==> void
+ Line 69) setName(name) ==> void
+ Line 70) setParameters(parameters) ==> void
+ Line 71) setThrows(throws_) ==> void
+ Line 72) setBlock(block) ==> void
+ Line 78) beginLine ==> int
+ Line 78) beginColumn ==> int
+ Line 78) endLine ==> int
+ Line 78) endColumn ==> int
+ Line 78) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 79) setModifiers(modifiers) ==> void
+ Line 80) setTypeParameters(typeParameters) ==> void
+ Line 81) setName(name) ==> void
+ Line 82) setParameters(parameters) ==> void
+ Line 83) setThrows(throws_) ==> void
+ Line 84) setBlock(block) ==> void
+ Line 89) v.visit(this, arg) ==> R
+ Line 94) v.visit(this, arg) ==> void
+ Line 98) block ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 108) modifiers ==> int
+ Line 112) name == null ? null : name.getName() ==> null
+ Line 116) name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 120) parameters == null ==> boolean
+ Line 121) parameters = new ArrayList<Parameter>() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 123) parameters ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 127) throws_ == null ==> boolean
+ Line 128) throws_ = new ArrayList<NameExpr>() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 130) throws_ ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 134) typeParameters ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 138) this.block = block ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 139) setAsParentNodeOf(this.block) ==> void
+ Line 143) this.modifiers = modifiers ==> int
+ Line 147) this.name = new NameExpr(name) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 151) this.name = name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 155) this.parameters = parameters ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 156) setAsParentNodeOf(this.parameters) ==> void
+ Line 160) this.throws_ = throws_ ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 161) setAsParentNodeOf(this.throws_) ==> void
+ Line 165) this.typeParameters = typeParameters ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 166) setAsParentNodeOf(this.typeParameters) ==> void
+ Line 178) StringBuffer sb = new StringBuffer() ==> java.lang.StringBuffer
+ Line 178) new StringBuffer() ==> java.lang.StringBuffer
+ Line 179) includingModifiers ==> boolean
+ Line 180) AccessSpecifier accessSpecifier = ModifierSet.getAccessSpecifier(getModifiers()) ==> com.github.javaparser.ast.AccessSpecifier
+ Line 180) ModifierSet.getAccessSpecifier(getModifiers()) ==> com.github.javaparser.ast.AccessSpecifier
+ Line 181) sb.append(accessSpecifier.getCodeRepresenation()) ==> java.lang.StringBuffer
+ Line 182) sb.append(accessSpecifier == AccessSpecifier.DEFAULT ? "" : " ") ==> java.lang.StringBuffer
+ Line 184) sb.append(getName()) ==> java.lang.StringBuffer
+ Line 185) sb.append("(") ==> java.lang.StringBuffer
+ Line 186) boolean firstParam = true ==> boolean
+ Line 186) true ==> boolean
+ Line 187) Parameter param ==> com.github.javaparser.ast.body.Parameter
+ Line 187) getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 189) firstParam ==> boolean
+ Line 190) firstParam = false ==> boolean
+ Line 192) sb.append(", ") ==> java.lang.StringBuffer
+ Line 194) includingParameterName ==> boolean
+ Line 195) sb.append(param.toStringWithoutComments()) ==> java.lang.StringBuffer
+ Line 197) sb.append(param.getType().toStringWithoutComments()) ==> java.lang.StringBuffer
+ Line 200) sb.append(")") ==> java.lang.StringBuffer
+ Line 201) includingThrows ==> boolean
+ Line 202) boolean firstThrow = true ==> boolean
+ Line 202) true ==> boolean
+ Line 203) NameExpr thr ==> com.github.javaparser.ast.expr.NameExpr
+ Line 203) getThrows() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 204) firstThrow ==> boolean
+ Line 205) firstThrow = false ==> boolean
+ Line 206) sb.append(" throws ") ==> java.lang.StringBuffer
+ Line 208) sb.append(", ") ==> java.lang.StringBuffer
+ Line 210) sb.append(thr.toStringWithoutComments()) ==> java.lang.StringBuffer
+ Line 213) sb.toString() ==> java.lang.String
+ Line 218) getDeclarationAsString(includingModifiers, includingThrows, true) ==> java.lang.String
+ Line 223) getDeclarationAsString(true, true, true) ==> java.lang.String
+ Line 228) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 233) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EmptyMemberDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EmptyMemberDeclaration.txt
new file mode 100644
index 000000000..8e2d00b70
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EmptyMemberDeclaration.txt
@@ -0,0 +1,18 @@
+
+[ Class com.github.javaparser.ast.body.EmptyMemberDeclaration ]
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ Line 35) null ==> null
+ Line 39) beginLine ==> int
+ Line 39) beginColumn ==> int
+ Line 39) endLine ==> int
+ Line 39) endColumn ==> int
+ Line 39) null ==> null
+ Line 44) v.visit(this, arg) ==> R
+ Line 49) v.visit(this, arg) ==> void
+ Line 54) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 59) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EmptyTypeDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EmptyTypeDeclaration.txt
new file mode 100644
index 000000000..d85d12b3d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EmptyTypeDeclaration.txt
@@ -0,0 +1,25 @@
+
+[ Class com.github.javaparser.ast.body.EmptyTypeDeclaration ]
+ superclass: com.github.javaparser.ast.body.TypeDeclaration
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ interface: com.github.javaparser.ast.NamedNode
+ Line 35) null ==> null
+ Line 35) 0 ==> int
+ Line 35) null ==> null
+ Line 35) null ==> null
+ Line 39) beginLine ==> int
+ Line 39) beginColumn ==> int
+ Line 39) endLine ==> int
+ Line 39) endColumn ==> int
+ Line 39) null ==> null
+ Line 39) 0 ==> int
+ Line 39) null ==> null
+ Line 39) null ==> null
+ Line 44) v.visit(this, arg) ==> R
+ Line 54) v.visit(this, arg) ==> void
+ Line 59) null ==> null
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EnumConstantDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EnumConstantDeclaration.txt
new file mode 100644
index 000000000..045f010fe
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EnumConstantDeclaration.txt
@@ -0,0 +1,34 @@
+
+[ Class com.github.javaparser.ast.body.EnumConstantDeclaration ]
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: com.github.javaparser.ast.NamedNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ Line 49) setName(name) ==> void
+ Line 53) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 54) setName(name) ==> void
+ Line 55) setArgs(args) ==> void
+ Line 56) setClassBody(classBody) ==> void
+ Line 60) beginLine ==> int
+ Line 60) beginColumn ==> int
+ Line 60) endLine ==> int
+ Line 60) endColumn ==> int
+ Line 60) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 61) setName(name) ==> void
+ Line 62) setArgs(args) ==> void
+ Line 63) setClassBody(classBody) ==> void
+ Line 68) v.visit(this, arg) ==> R
+ Line 73) v.visit(this, arg) ==> void
+ Line 77) args ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 81) classBody ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 85) name ==> java.lang.String
+ Line 89) this.args = args ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 90) setAsParentNodeOf(this.args) ==> void
+ Line 94) this.classBody = classBody ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 95) setAsParentNodeOf(this.classBody) ==> void
+ Line 99) this.name = name ==> java.lang.String
+ Line 104) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 109) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EnumDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EnumDeclaration.txt
new file mode 100644
index 000000000..0a269139a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_EnumDeclaration.txt
@@ -0,0 +1,38 @@
+
+[ Class com.github.javaparser.ast.body.EnumDeclaration ]
+ superclass: com.github.javaparser.ast.body.TypeDeclaration
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ interface: com.github.javaparser.ast.NamedNode
+ Line 46) modifiers ==> int
+ Line 46) name ==> java.lang.String
+ Line 50) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 50) modifiers ==> int
+ Line 50) name ==> java.lang.String
+ Line 50) members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 51) setImplements(implementsList) ==> void
+ Line 52) setEntries(entries) ==> void
+ Line 56) beginLine ==> int
+ Line 56) beginColumn ==> int
+ Line 56) endLine ==> int
+ Line 56) endColumn ==> int
+ Line 56) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 56) modifiers ==> int
+ Line 56) name ==> java.lang.String
+ Line 56) members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 57) setImplements(implementsList) ==> void
+ Line 58) setEntries(entries) ==> void
+ Line 63) v.visit(this, arg) ==> R
+ Line 69) v.visit(this, arg) ==> void
+ Line 73) entries ==> java.util.List<com.github.javaparser.ast.body.EnumConstantDeclaration>
+ Line 77) implementsList ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 81) this.entries = entries ==> java.util.List<com.github.javaparser.ast.body.EnumConstantDeclaration>
+ Line 82) setAsParentNodeOf(this.entries) ==> void
+ Line 86) this.implementsList = implementsList ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 87) setAsParentNodeOf(this.implementsList) ==> void
+ Line 92) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 97) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_FieldDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_FieldDeclaration.txt
new file mode 100644
index 000000000..bfb7f72da
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_FieldDeclaration.txt
@@ -0,0 +1,41 @@
+
+[ Class com.github.javaparser.ast.body.FieldDeclaration ]
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ Line 49) setModifiers(modifiers) ==> void
+ Line 50) setType(type) ==> void
+ Line 51) List<VariableDeclarator> aux = new ArrayList<VariableDeclarator>() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 51) new ArrayList<VariableDeclarator>() ==> java.util.ArrayList<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 52) aux.add(variable) ==> boolean
+ Line 53) setVariables(aux) ==> void
+ Line 57) setModifiers(modifiers) ==> void
+ Line 58) setType(type) ==> void
+ Line 59) setVariables(variables) ==> void
+ Line 63) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 64) setModifiers(modifiers) ==> void
+ Line 65) setType(type) ==> void
+ Line 66) setVariables(variables) ==> void
+ Line 70) beginLine ==> int
+ Line 70) beginColumn ==> int
+ Line 70) endLine ==> int
+ Line 70) endColumn ==> int
+ Line 70) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 71) setModifiers(modifiers) ==> void
+ Line 72) setType(type) ==> void
+ Line 73) setVariables(variables) ==> void
+ Line 78) v.visit(this, arg) ==> R
+ Line 83) v.visit(this, arg) ==> void
+ Line 93) modifiers ==> int
+ Line 97) type ==> com.github.javaparser.ast.type.Type
+ Line 101) variables ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 105) this.modifiers = modifiers ==> int
+ Line 109) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 110) setAsParentNodeOf(this.type) ==> void
+ Line 114) this.variables = variables ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 115) setAsParentNodeOf(this.variables) ==> void
+ Line 120) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 125) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_InitializerDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_InitializerDeclaration.txt
new file mode 100644
index 000000000..d433226f6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_InitializerDeclaration.txt
@@ -0,0 +1,27 @@
+
+[ Class com.github.javaparser.ast.body.InitializerDeclaration ]
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ Line 43) null ==> null
+ Line 44) setStatic(isStatic) ==> void
+ Line 45) setBlock(block) ==> void
+ Line 49) beginLine ==> int
+ Line 49) beginColumn ==> int
+ Line 49) endLine ==> int
+ Line 49) endColumn ==> int
+ Line 49) null ==> null
+ Line 50) setStatic(isStatic) ==> void
+ Line 51) setBlock(block) ==> void
+ Line 56) v.visit(this, arg) ==> R
+ Line 61) v.visit(this, arg) ==> void
+ Line 65) block ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 69) isStatic ==> boolean
+ Line 73) this.block = block ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 74) setAsParentNodeOf(this.block) ==> void
+ Line 78) this.isStatic = isStatic ==> boolean
+ Line 83) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 88) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_MethodDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_MethodDeclaration.txt
new file mode 100644
index 000000000..4d7faf9c0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_MethodDeclaration.txt
@@ -0,0 +1,120 @@
+
+[ Class com.github.javaparser.ast.body.MethodDeclaration ]
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.DocumentableNode
+ interface: com.github.javaparser.ast.body.WithDeclaration
+ interface: com.github.javaparser.ast.NamedNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ Line 60) false ==> boolean
+ Line 66) setModifiers(modifiers) ==> void
+ Line 67) setType(type) ==> void
+ Line 68) setName(name) ==> void
+ Line 72) setModifiers(modifiers) ==> void
+ Line 73) setType(type) ==> void
+ Line 74) setName(name) ==> void
+ Line 75) setParameters(parameters) ==> void
+ Line 81) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 82) setModifiers(modifiers) ==> void
+ Line 83) setTypeParameters(typeParameters) ==> void
+ Line 84) setType(type) ==> void
+ Line 85) setName(name) ==> void
+ Line 86) setParameters(parameters) ==> void
+ Line 87) setArrayCount(arrayCount) ==> void
+ Line 88) setThrows(throws_) ==> void
+ Line 89) setBody(block) ==> void
+ Line 96) beginLine ==> int
+ Line 96) beginColumn ==> int
+ Line 96) endLine ==> int
+ Line 96) endColumn ==> int
+ Line 96) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 97) setModifiers(modifiers) ==> void
+ Line 98) setTypeParameters(typeParameters) ==> void
+ Line 99) setType(type) ==> void
+ Line 100) setName(name) ==> void
+ Line 101) setParameters(parameters) ==> void
+ Line 102) setArrayCount(arrayCount) ==> void
+ Line 103) setThrows(throws_) ==> void
+ Line 104) setBody(block) ==> void
+ Line 108) v.visit(this, arg) ==> R
+ Line 112) v.visit(this, arg) ==> void
+ Line 116) arrayCount ==> int
+ Line 121) body ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 131) modifiers ==> int
+ Line 135) name.getName() ==> java.lang.String
+ Line 139) name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 143) parameters == null ==> boolean
+ Line 144) parameters = new ArrayList<Parameter>() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 146) parameters ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 150) throws_ == null ==> boolean
+ Line 151) throws_ = new ArrayList<NameExpr>() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 153) throws_ ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 157) type ==> com.github.javaparser.ast.type.Type
+ Line 161) typeParameters ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 165) this.arrayCount = arrayCount ==> int
+ Line 169) this.body = body ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 170) setAsParentNodeOf(this.body) ==> void
+ Line 174) this.modifiers = modifiers ==> int
+ Line 178) this.name = new NameExpr(name) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 182) this.name = name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 186) this.parameters = parameters ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 187) setAsParentNodeOf(this.parameters) ==> void
+ Line 191) this.throws_ = throws_ ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 192) setAsParentNodeOf(this.throws_) ==> void
+ Line 196) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 197) setAsParentNodeOf(this.type) ==> void
+ Line 201) this.typeParameters = typeParameters ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 202) setAsParentNodeOf(typeParameters) ==> void
+ Line 207) isDefault ==> boolean
+ Line 211) this.isDefault = isDefault ==> boolean
+ Line 217) getDeclarationAsString(true, true, true) ==> java.lang.String
+ Line 222) getDeclarationAsString(includingModifiers, includingThrows, true) ==> java.lang.String
+ Line 235) StringBuffer sb = new StringBuffer() ==> java.lang.StringBuffer
+ Line 235) new StringBuffer() ==> java.lang.StringBuffer
+ Line 236) includingModifiers ==> boolean
+ Line 237) AccessSpecifier accessSpecifier = ModifierSet.getAccessSpecifier(getModifiers()) ==> com.github.javaparser.ast.AccessSpecifier
+ Line 237) ModifierSet.getAccessSpecifier(getModifiers()) ==> com.github.javaparser.ast.AccessSpecifier
+ Line 238) sb.append(accessSpecifier.getCodeRepresenation()) ==> java.lang.StringBuffer
+ Line 239) sb.append(accessSpecifier == AccessSpecifier.DEFAULT ? "" : " ") ==> java.lang.StringBuffer
+ Line 240) ModifierSet.isStatic(getModifiers()) ==> boolean
+ Line 241) sb.append("static ") ==> java.lang.StringBuffer
+ Line 243) ModifierSet.isAbstract(getModifiers()) ==> boolean
+ Line 244) sb.append("abstract ") ==> java.lang.StringBuffer
+ Line 246) ModifierSet.isFinal(getModifiers()) ==> boolean
+ Line 247) sb.append("final ") ==> java.lang.StringBuffer
+ Line 249) ModifierSet.isNative(getModifiers()) ==> boolean
+ Line 250) sb.append("native ") ==> java.lang.StringBuffer
+ Line 252) ModifierSet.isSynchronized(getModifiers()) ==> boolean
+ Line 253) sb.append("synchronized ") ==> java.lang.StringBuffer
+ Line 257) sb.append(getType().toStringWithoutComments()) ==> java.lang.StringBuffer
+ Line 258) sb.append(" ") ==> java.lang.StringBuffer
+ Line 259) sb.append(getName()) ==> java.lang.StringBuffer
+ Line 260) sb.append("(") ==> java.lang.StringBuffer
+ Line 261) boolean firstParam = true ==> boolean
+ Line 261) true ==> boolean
+ Line 262) Parameter param ==> com.github.javaparser.ast.body.Parameter
+ Line 262) getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 264) firstParam ==> boolean
+ Line 265) firstParam = false ==> boolean
+ Line 267) sb.append(", ") ==> java.lang.StringBuffer
+ Line 269) includingParameterName ==> boolean
+ Line 270) sb.append(param.toStringWithoutComments()) ==> java.lang.StringBuffer
+ Line 272) sb.append(param.getType().toStringWithoutComments()) ==> java.lang.StringBuffer
+ Line 273) param.isVarArgs() ==> boolean
+ Line 274) sb.append("...") ==> java.lang.StringBuffer
+ Line 278) sb.append(")") ==> java.lang.StringBuffer
+ Line 279) includingThrows ==> boolean
+ Line 280) boolean firstThrow = true ==> boolean
+ Line 280) true ==> boolean
+ Line 281) NameExpr thr ==> com.github.javaparser.ast.expr.NameExpr
+ Line 281) getThrows() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 282) firstThrow ==> boolean
+ Line 283) firstThrow = false ==> boolean
+ Line 284) sb.append(" throws ") ==> java.lang.StringBuffer
+ Line 286) sb.append(", ") ==> java.lang.StringBuffer
+ Line 288) sb.append(thr.toStringWithoutComments()) ==> java.lang.StringBuffer
+ Line 291) sb.toString() ==> java.lang.String
+ Line 296) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 301) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ModifierSet.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ModifierSet.txt
new file mode 100644
index 000000000..382c1fb1a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_ModifierSet.txt
@@ -0,0 +1,36 @@
+
+[ Class com.github.javaparser.ast.body.ModifierSet ]
+ superclass: java.lang.Object
+ Line 37) Modifier.PUBLIC ==> int
+ Line 39) Modifier.PRIVATE ==> int
+ Line 41) Modifier.PROTECTED ==> int
+ Line 43) Modifier.STATIC ==> int
+ Line 45) Modifier.FINAL ==> int
+ Line 47) Modifier.SYNCHRONIZED ==> int
+ Line 49) Modifier.VOLATILE ==> int
+ Line 51) Modifier.TRANSIENT ==> int
+ Line 53) Modifier.NATIVE ==> int
+ Line 55) Modifier.ABSTRACT ==> int
+ Line 57) Modifier.STRICT ==> int
+ Line 60) isPublic(modifiers) ==> boolean
+ Line 61) AccessSpecifier.PUBLIC ==> com.github.javaparser.ast.AccessSpecifier
+ Line 62) isProtected(modifiers) ==> boolean
+ Line 63) AccessSpecifier.PROTECTED ==> com.github.javaparser.ast.AccessSpecifier
+ Line 64) isPrivate(modifiers) ==> boolean
+ Line 65) AccessSpecifier.PRIVATE ==> com.github.javaparser.ast.AccessSpecifier
+ Line 67) AccessSpecifier.DEFAULT ==> com.github.javaparser.ast.AccessSpecifier
+ Line 72) modifiers | mod ==> int
+ Line 76) (modifiers & modifier) != 0 ==> boolean
+ Line 80) (modifiers & ABSTRACT) != 0 ==> boolean
+ Line 84) (modifiers & FINAL) != 0 ==> boolean
+ Line 88) (modifiers & NATIVE) != 0 ==> boolean
+ Line 92) (modifiers & PRIVATE) != 0 ==> boolean
+ Line 96) (modifiers & PROTECTED) != 0 ==> boolean
+ Line 107) !isPublic(modifiers) && !isProtected(modifiers) && !isPrivate(modifiers) ==> boolean
+ Line 111) (modifiers & PUBLIC) != 0 ==> boolean
+ Line 115) (modifiers & STATIC) != 0 ==> boolean
+ Line 119) (modifiers & STRICTFP) != 0 ==> boolean
+ Line 123) (modifiers & SYNCHRONIZED) != 0 ==> boolean
+ Line 127) (modifiers & TRANSIENT) != 0 ==> boolean
+ Line 131) (modifiers & VOLATILE) != 0 ==> boolean
+ Line 141) modifiers & ~mod ==> int
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_MultiTypeParameter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_MultiTypeParameter.txt
new file mode 100644
index 000000000..8e4697128
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_MultiTypeParameter.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.body.MultiTypeParameter ]
+ superclass: com.github.javaparser.ast.body.BaseParameter
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 37) modifiers ==> int
+ Line 37) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 37) id ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 38) this.types = types ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 42) beginLine ==> int
+ Line 42) beginColumn ==> int
+ Line 42) endLine ==> int
+ Line 42) endColumn ==> int
+ Line 42) modifiers ==> int
+ Line 42) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 42) id ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 43) this.types = types ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 48) v.visit(this, arg) ==> R
+ Line 53) v.visit(this, arg) ==> void
+ Line 57) types ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 61) this.types = types ==> java.util.List<com.github.javaparser.ast.type.Type>
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_Parameter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_Parameter.txt
new file mode 100644
index 000000000..203748a6f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_Parameter.txt
@@ -0,0 +1,27 @@
+
+[ Class com.github.javaparser.ast.body.Parameter ]
+ superclass: com.github.javaparser.ast.body.BaseParameter
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 43) id ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 44) setType(type) ==> void
+ Line 48) modifiers ==> int
+ Line 48) id ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 49) setType(type) ==> void
+ Line 53) beginLine ==> int
+ Line 53) beginColumn ==> int
+ Line 53) endLine ==> int
+ Line 53) endColumn ==> int
+ Line 53) modifiers ==> int
+ Line 53) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 53) id ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 54) setType(type) ==> void
+ Line 55) setVarArgs(isVarArgs) ==> void
+ Line 60) v.visit(this, arg) ==> R
+ Line 65) v.visit(this, arg) ==> void
+ Line 69) type ==> com.github.javaparser.ast.type.Type
+ Line 73) isVarArgs ==> boolean
+ Line 77) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 78) setAsParentNodeOf(this.type) ==> void
+ Line 82) this.isVarArgs = isVarArgs ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_TypeDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_TypeDeclaration.txt
new file mode 100644
index 000000000..98afdae5d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_TypeDeclaration.txt
@@ -0,0 +1,31 @@
+
+[ Class com.github.javaparser.ast.body.TypeDeclaration ]
+ superclass: com.github.javaparser.ast.body.BodyDeclaration
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.NamedNode
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.body.AnnotableNode
+ Line 45) setName(name) ==> void
+ Line 46) setModifiers(modifiers) ==> void
+ Line 52) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 53) setName(name) ==> void
+ Line 54) setModifiers(modifiers) ==> void
+ Line 55) setMembers(members) ==> void
+ Line 62) beginLine ==> int
+ Line 62) beginColumn ==> int
+ Line 62) endLine ==> int
+ Line 62) endColumn ==> int
+ Line 62) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 63) setName(name) ==> void
+ Line 64) setModifiers(modifiers) ==> void
+ Line 65) setMembers(members) ==> void
+ Line 69) members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 79) modifiers ==> int
+ Line 83) name.getName() ==> java.lang.String
+ Line 87) this.members = members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 88) setAsParentNodeOf(this.members) ==> void
+ Line 92) this.modifiers = modifiers ==> int
+ Line 96) this.name = new NameExpr(name) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 100) this.name = nameExpr ==> com.github.javaparser.ast.expr.NameExpr
+ Line 104) name ==> com.github.javaparser.ast.expr.NameExpr
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_VariableDeclarator.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_VariableDeclarator.txt
new file mode 100644
index 000000000..19f272a6a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_VariableDeclarator.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.body.VariableDeclarator ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 42) setId(id) ==> void
+ Line 46) setId(id) ==> void
+ Line 47) setInit(init) ==> void
+ Line 51) beginLine ==> int
+ Line 51) beginColumn ==> int
+ Line 51) endLine ==> int
+ Line 51) endColumn ==> int
+ Line 52) setId(id) ==> void
+ Line 53) setInit(init) ==> void
+ Line 58) v.visit(this, arg) ==> R
+ Line 63) v.visit(this, arg) ==> void
+ Line 67) id ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 71) init ==> com.github.javaparser.ast.expr.Expression
+ Line 75) this.id = id ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 76) setAsParentNodeOf(this.id) ==> void
+ Line 80) this.init = init ==> com.github.javaparser.ast.expr.Expression
+ Line 81) setAsParentNodeOf(this.init) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_VariableDeclaratorId.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_VariableDeclaratorId.txt
new file mode 100644
index 000000000..1a4140654
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_VariableDeclaratorId.txt
@@ -0,0 +1,19 @@
+
+[ Class com.github.javaparser.ast.body.VariableDeclaratorId ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.NamedNode
+ interface: java.lang.Cloneable
+ Line 42) setName(name) ==> void
+ Line 46) beginLine ==> int
+ Line 46) beginColumn ==> int
+ Line 46) endLine ==> int
+ Line 46) endColumn ==> int
+ Line 47) setName(name) ==> void
+ Line 48) setArrayCount(arrayCount) ==> void
+ Line 53) v.visit(this, arg) ==> R
+ Line 58) v.visit(this, arg) ==> void
+ Line 62) arrayCount ==> int
+ Line 66) name ==> java.lang.String
+ Line 70) this.arrayCount = arrayCount ==> int
+ Line 74) this.name = name ==> java.lang.String
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_WithDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_WithDeclaration.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_body_WithDeclaration.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_BlockComment.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_BlockComment.txt
new file mode 100644
index 000000000..22c9f0d8c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_BlockComment.txt
@@ -0,0 +1,14 @@
+
+[ Class com.github.javaparser.ast.comments.BlockComment ]
+ superclass: com.github.javaparser.ast.comments.Comment
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 42) content ==> java.lang.String
+ Line 46) beginLine ==> int
+ Line 46) beginColumn ==> int
+ Line 46) endLine ==> int
+ Line 46) endColumn ==> int
+ Line 46) content ==> java.lang.String
+ Line 51) v.visit(this, arg) ==> R
+ Line 56) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_Comment.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_Comment.txt
new file mode 100644
index 000000000..1fcb0bcd4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_Comment.txt
@@ -0,0 +1,26 @@
+
+[ Class com.github.javaparser.ast.comments.Comment ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 43) this.content = content ==> java.lang.String
+ Line 47) beginLine ==> int
+ Line 47) beginColumn ==> int
+ Line 47) endLine ==> int
+ Line 47) endColumn ==> int
+ Line 48) this.content = content ==> java.lang.String
+ Line 57) content ==> java.lang.String
+ Line 67) this.content = content ==> java.lang.String
+ Line 72) false ==> boolean
+ Line 77) isLineComment() ==> boolean
+ Line 79) (LineComment) this ==> com.github.javaparser.ast.comments.LineComment
+ Line 81) new UnsupportedOperationException("Not a line comment") ==> java.lang.UnsupportedOperationException
+ Line 87) this.commentedNode ==> com.github.javaparser.ast.Node
+ Line 92) commentedNode == null ==> boolean
+ Line 94) this.commentedNode = commentedNode ==> com.github.javaparser.ast.Node
+ Line 97) commentedNode == this ==> boolean
+ Line 99) new IllegalArgumentException() ==> java.lang.IllegalArgumentException
+ Line 101) commentedNode instanceof Comment ==> boolean
+ Line 103) new IllegalArgumentException() ==> java.lang.IllegalArgumentException
+ Line 105) this.commentedNode = commentedNode ==> com.github.javaparser.ast.Node
+ Line 110) this.commentedNode == null ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_CommentsCollection.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_CommentsCollection.txt
new file mode 100644
index 000000000..bc85aeeb4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_CommentsCollection.txt
@@ -0,0 +1,39 @@
+
+[ Class com.github.javaparser.ast.comments.CommentsCollection ]
+ superclass: java.lang.Object
+ Line 31) new LinkedList<LineComment>() ==> java.util.LinkedList<com.github.javaparser.ast.comments.LineComment>
+ Line 32) new LinkedList<BlockComment>() ==> java.util.LinkedList<com.github.javaparser.ast.comments.BlockComment>
+ Line 33) new LinkedList<JavadocComment>() ==> java.util.LinkedList<com.github.javaparser.ast.comments.JavadocComment>
+ Line 36) lineComments ==> java.util.List<com.github.javaparser.ast.comments.LineComment>
+ Line 40) blockComments ==> java.util.List<com.github.javaparser.ast.comments.BlockComment>
+ Line 44) javadocComments ==> java.util.List<com.github.javaparser.ast.comments.JavadocComment>
+ Line 48) this.lineComments.add(lineComment) ==> boolean
+ Line 52) this.blockComments.add(blockComment) ==> boolean
+ Line 56) this.javadocComments.add(javadocComment) ==> boolean
+ Line 60) Comment c ==> com.github.javaparser.ast.comments.Comment
+ Line 60) getAll() ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 63) c.getBeginLine() == comment.getBeginLine() && c.getBeginColumn() == comment.getBeginColumn() && c.getEndLine() == comment.getEndLine() && Math.abs(c.getEndColumn() - comment.getEndColumn()) < 2 ==> boolean
+ Line 67) true ==> boolean
+ Line 70) false ==> boolean
+ Line 74) List<Comment> comments = new LinkedList<Comment>() ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 74) new LinkedList<Comment>() ==> java.util.LinkedList<com.github.javaparser.ast.comments.Comment>
+ Line 75) comments.addAll(lineComments) ==> boolean
+ Line 76) comments.addAll(blockComments) ==> boolean
+ Line 77) comments.addAll(javadocComments) ==> boolean
+ Line 78) comments ==> java.util.List<com.github.javaparser.ast.comments.Comment>
+ Line 82) lineComments.size() + blockComments.size() + javadocComments.size() ==> int
+ Line 86) CommentsCollection result = new CommentsCollection() ==> com.github.javaparser.ast.comments.CommentsCollection
+ Line 86) new CommentsCollection() ==> com.github.javaparser.ast.comments.CommentsCollection
+ Line 87) LineComment comment ==> com.github.javaparser.ast.comments.LineComment
+ Line 87) lineComments ==> java.util.List<com.github.javaparser.ast.comments.LineComment>
+ Line 88) !other.contains(comment) ==> boolean
+ Line 89) result.lineComments.add(comment) ==> boolean
+ Line 92) BlockComment comment ==> com.github.javaparser.ast.comments.BlockComment
+ Line 92) blockComments ==> java.util.List<com.github.javaparser.ast.comments.BlockComment>
+ Line 93) !other.contains(comment) ==> boolean
+ Line 94) result.blockComments.add(comment) ==> boolean
+ Line 97) JavadocComment comment ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 97) javadocComments ==> java.util.List<com.github.javaparser.ast.comments.JavadocComment>
+ Line 98) !other.contains(comment) ==> boolean
+ Line 99) result.javadocComments.add(comment) ==> boolean
+ Line 102) result ==> com.github.javaparser.ast.comments.CommentsCollection
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_CommentsParser.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_CommentsParser.txt
new file mode 100644
index 000000000..13dd5e708
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_CommentsParser.txt
@@ -0,0 +1,104 @@
+
+[ Class com.github.javaparser.ast.comments.CommentsParser ]
+ superclass: java.lang.Object
+ Line 41) 4 ==> int
+ Line 44) InputStream in = new ByteArrayInputStream(source.getBytes(Charset.defaultCharset())) ==> java.io.InputStream
+ Line 44) new ByteArrayInputStream(source.getBytes(Charset.defaultCharset())) ==> java.io.ByteArrayInputStream
+ Line 45) parse(in, Charset.defaultCharset().name()) ==> com.github.javaparser.ast.comments.CommentsCollection
+ Line 49) boolean lastWasASlashR = false ==> boolean
+ Line 49) false ==> boolean
+ Line 50) BufferedReader br = new BufferedReader(new InputStreamReader(in, charsetName)) ==> java.io.BufferedReader
+ Line 50) new BufferedReader(new InputStreamReader(in, charsetName)) ==> java.io.BufferedReader
+ Line 51) CommentsCollection comments = new CommentsCollection() ==> com.github.javaparser.ast.comments.CommentsCollection
+ Line 51) new CommentsCollection() ==> com.github.javaparser.ast.comments.CommentsCollection
+ Line 52) int r ==> int
+ Line 54) Deque prevTwoChars = new LinkedList<Character>(Arrays.asList('z', 'z')) ==> java.util.Deque
+ Line 54) new LinkedList<Character>(Arrays.asList('z', 'z')) ==> java.util.LinkedList<java.lang.Character>
+ Line 56) State state = State.CODE ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 56) State.CODE ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 57) LineComment currentLineComment = null ==> com.github.javaparser.ast.comments.LineComment
+ Line 57) null ==> null
+ Line 58) BlockComment currentBlockComment = null ==> com.github.javaparser.ast.comments.BlockComment
+ Line 58) null ==> null
+ Line 59) StringBuffer currentContent = null ==> java.lang.StringBuffer
+ Line 59) null ==> null
+ Line 61) int currLine = 1 ==> int
+ Line 61) 1 ==> int
+ Line 62) int currCol = 1 ==> int
+ Line 62) 1 ==> int
+ Line 64) (r = br.read()) != -1 ==> boolean
+ Line 65) char c = (char) r ==> char
+ Line 65) (char) r ==> char
+ Line 66) c == '\r' ==> boolean
+ Line 67) lastWasASlashR = true ==> boolean
+ Line 68) c == '\n' && lastWasASlashR ==> boolean
+ Line 69) lastWasASlashR = false ==> boolean
+ Line 72) lastWasASlashR = false ==> boolean
+ Line 74) state ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 75) CODE ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 76) prevTwoChars.peekLast().equals('/') && c == '/' ==> boolean
+ Line 77) currentLineComment = new LineComment() ==> com.github.javaparser.ast.comments.LineComment
+ Line 78) currentLineComment.setBeginLine(currLine) ==> void
+ Line 79) currentLineComment.setBeginColumn(currCol - 1) ==> void
+ Line 80) state = State.IN_LINE_COMMENT ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 81) currentContent = new StringBuffer() ==> java.lang.StringBuffer
+ Line 82) prevTwoChars.peekLast().equals('/') && c == '*' ==> boolean
+ Line 83) currentBlockComment = new BlockComment() ==> com.github.javaparser.ast.comments.BlockComment
+ Line 84) currentBlockComment.setBeginLine(currLine) ==> void
+ Line 85) currentBlockComment.setBeginColumn(currCol - 1) ==> void
+ Line 86) state = State.IN_BLOCK_COMMENT ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 87) currentContent = new StringBuffer() ==> java.lang.StringBuffer
+ Line 88) c == '"' ==> boolean
+ Line 89) state = State.IN_STRING ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 90) c == '\'' ==> boolean
+ Line 91) state = State.IN_CHAR ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 96) IN_LINE_COMMENT ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 97) c == '\n' || c == '\r' ==> boolean
+ Line 98) currentLineComment.setContent(currentContent.toString()) ==> void
+ Line 99) currentLineComment.setEndLine(currLine) ==> void
+ Line 100) currentLineComment.setEndColumn(currCol) ==> void
+ Line 101) comments.addComment(currentLineComment) ==> void
+ Line 102) state = State.CODE ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 104) currentContent.append(c) ==> java.lang.StringBuffer
+ Line 107) IN_BLOCK_COMMENT ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 108) prevTwoChars.peekLast().equals('*') && c == '/' && !prevTwoChars.peekFirst().equals('/') ==> boolean
+ Line 111) String content = currentContent.deleteCharAt(currentContent.toString().length() - 1).toString() ==> java.lang.String
+ Line 111) currentContent.deleteCharAt(currentContent.toString().length() - 1).toString() ==> java.lang.String
+ Line 113) content.startsWith("*") ==> boolean
+ Line 114) JavadocComment javadocComment = new JavadocComment() ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 114) new JavadocComment() ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 115) javadocComment.setContent(content.substring(1)) ==> void
+ Line 116) javadocComment.setBeginLine(currentBlockComment.getBeginLine()) ==> void
+ Line 117) javadocComment.setBeginColumn(currentBlockComment.getBeginColumn()) ==> void
+ Line 118) javadocComment.setEndLine(currLine) ==> void
+ Line 119) javadocComment.setEndColumn(currCol + 1) ==> void
+ Line 120) comments.addComment(javadocComment) ==> void
+ Line 122) currentBlockComment.setContent(content) ==> void
+ Line 123) currentBlockComment.setEndLine(currLine) ==> void
+ Line 124) currentBlockComment.setEndColumn(currCol + 1) ==> void
+ Line 125) comments.addComment(currentBlockComment) ==> void
+ Line 127) state = State.CODE ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 129) currentContent.append(c == '\r' ? '\n' : c) ==> java.lang.StringBuffer
+ Line 132) IN_STRING ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 133) !prevTwoChars.peekLast().equals('\\') && c == '"' ==> boolean
+ Line 134) state = State.CODE ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 137) IN_CHAR ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 138) !prevTwoChars.peekLast().equals('\\') && c == '\'' ==> boolean
+ Line 139) state = State.CODE ==> com.github.javaparser.ast.comments.CommentsParser.State
+ Line 143) new RuntimeException("Unexpected") ==> java.lang.RuntimeException
+ Line 145) c ==> char
+ Line 146) '\n' ==> char
+ Line 147) '\r' ==> char
+ Line 148) currLine += 1 ==> int
+ Line 149) currCol = 1 ==> int
+ Line 151) '\t' ==> char
+ Line 152) currCol += COLUMNS_PER_TAB ==> int
+ Line 155) currCol += 1 ==> int
+ Line 157) prevTwoChars.remove() ==> java.lang.Object
+ Line 158) prevTwoChars.add(c) ==> boolean
+ Line 161) state == State.IN_LINE_COMMENT ==> boolean
+ Line 162) currentLineComment.setContent(currentContent.toString()) ==> void
+ Line 163) currentLineComment.setEndLine(currLine) ==> void
+ Line 164) currentLineComment.setEndColumn(currCol) ==> void
+ Line 165) comments.addComment(currentLineComment) ==> void
+ Line 168) comments ==> com.github.javaparser.ast.comments.CommentsCollection
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_JavadocComment.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_JavadocComment.txt
new file mode 100644
index 000000000..25570d5c9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_JavadocComment.txt
@@ -0,0 +1,14 @@
+
+[ Class com.github.javaparser.ast.comments.JavadocComment ]
+ superclass: com.github.javaparser.ast.comments.Comment
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 36) content ==> java.lang.String
+ Line 40) beginLine ==> int
+ Line 40) beginColumn ==> int
+ Line 40) endLine ==> int
+ Line 40) endColumn ==> int
+ Line 40) content ==> java.lang.String
+ Line 45) v.visit(this, arg) ==> R
+ Line 50) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_LineComment.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_LineComment.txt
new file mode 100644
index 000000000..7ccc9fd98
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_comments_LineComment.txt
@@ -0,0 +1,15 @@
+
+[ Class com.github.javaparser.ast.comments.LineComment ]
+ superclass: com.github.javaparser.ast.comments.Comment
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 41) content ==> java.lang.String
+ Line 45) beginLine ==> int
+ Line 45) beginColumn ==> int
+ Line 45) endLine ==> int
+ Line 45) endColumn ==> int
+ Line 45) content ==> java.lang.String
+ Line 50) v.visit(this, arg) ==> R
+ Line 55) v.visit(this, arg) ==> void
+ Line 60) true ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_AnnotationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_AnnotationExpr.txt
new file mode 100644
index 000000000..deff09a67
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_AnnotationExpr.txt
@@ -0,0 +1,13 @@
+
+[ Class com.github.javaparser.ast.expr.AnnotationExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 35) beginLine ==> int
+ Line 35) beginColumn ==> int
+ Line 35) endLine ==> int
+ Line 35) endColumn ==> int
+ Line 39) name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 43) this.name = name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 44) setAsParentNodeOf(name) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayAccessExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayAccessExpr.txt
new file mode 100644
index 000000000..255994c19
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayAccessExpr.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.expr.ArrayAccessExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 40) setName(name) ==> void
+ Line 41) setIndex(index) ==> void
+ Line 45) beginLine ==> int
+ Line 45) beginColumn ==> int
+ Line 45) endLine ==> int
+ Line 45) endColumn ==> int
+ Line 46) setName(name) ==> void
+ Line 47) setIndex(index) ==> void
+ Line 52) v.visit(this, arg) ==> R
+ Line 57) v.visit(this, arg) ==> void
+ Line 61) index ==> com.github.javaparser.ast.expr.Expression
+ Line 65) name ==> com.github.javaparser.ast.expr.Expression
+ Line 69) this.index = index ==> com.github.javaparser.ast.expr.Expression
+ Line 70) setAsParentNodeOf(this.index) ==> void
+ Line 74) this.name = name ==> com.github.javaparser.ast.expr.Expression
+ Line 75) setAsParentNodeOf(this.name) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayCreationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayCreationExpr.txt
new file mode 100644
index 000000000..f3a78f95e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayCreationExpr.txt
@@ -0,0 +1,45 @@
+
+[ Class com.github.javaparser.ast.expr.ArrayCreationExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 49) setType(type) ==> void
+ Line 50) setArrayCount(arrayCount) ==> void
+ Line 51) setInitializer(initializer) ==> void
+ Line 52) setDimensions(null) ==> void
+ Line 56) beginLine ==> int
+ Line 56) beginColumn ==> int
+ Line 56) endLine ==> int
+ Line 56) endColumn ==> int
+ Line 57) setType(type) ==> void
+ Line 58) setArrayCount(arrayCount) ==> void
+ Line 59) setInitializer(initializer) ==> void
+ Line 60) setDimensions(null) ==> void
+ Line 64) setType(type) ==> void
+ Line 65) setArrayCount(arrayCount) ==> void
+ Line 66) setDimensions(dimensions) ==> void
+ Line 67) setInitializer(null) ==> void
+ Line 71) beginLine ==> int
+ Line 71) beginColumn ==> int
+ Line 71) endLine ==> int
+ Line 71) endColumn ==> int
+ Line 72) setType(type) ==> void
+ Line 73) setArrayCount(arrayCount) ==> void
+ Line 74) setDimensions(dimensions) ==> void
+ Line 75) setInitializer(null) ==> void
+ Line 80) v.visit(this, arg) ==> R
+ Line 85) v.visit(this, arg) ==> void
+ Line 89) arrayCount ==> int
+ Line 93) dimensions ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 97) initializer ==> com.github.javaparser.ast.expr.ArrayInitializerExpr
+ Line 101) type ==> com.github.javaparser.ast.type.Type
+ Line 105) this.arrayCount = arrayCount ==> int
+ Line 109) this.dimensions = dimensions ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 110) setAsParentNodeOf(this.dimensions) ==> void
+ Line 114) this.initializer = initializer ==> com.github.javaparser.ast.expr.ArrayInitializerExpr
+ Line 115) setAsParentNodeOf(this.initializer) ==> void
+ Line 119) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 120) setAsParentNodeOf(this.type) ==> void
+ Line 124) arraysAnnotations ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 129) this.arraysAnnotations = arraysAnnotations ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayInitializerExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayInitializerExpr.txt
new file mode 100644
index 000000000..b098ba186
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ArrayInitializerExpr.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.expr.ArrayInitializerExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 40) setValues(values) ==> void
+ Line 44) beginLine ==> int
+ Line 44) beginColumn ==> int
+ Line 44) endLine ==> int
+ Line 44) endColumn ==> int
+ Line 45) setValues(values) ==> void
+ Line 50) v.visit(this, arg) ==> R
+ Line 55) v.visit(this, arg) ==> void
+ Line 59) values ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 63) this.values = values ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 64) setAsParentNodeOf(this.values) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_AssignExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_AssignExpr.txt
new file mode 100644
index 000000000..0cf9ae042
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_AssignExpr.txt
@@ -0,0 +1,26 @@
+
+[ Class com.github.javaparser.ast.expr.AssignExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 57) setTarget(target) ==> void
+ Line 58) setValue(value) ==> void
+ Line 59) setOperator(op) ==> void
+ Line 63) beginLine ==> int
+ Line 63) beginColumn ==> int
+ Line 63) endLine ==> int
+ Line 63) endColumn ==> int
+ Line 64) setTarget(target) ==> void
+ Line 65) setValue(value) ==> void
+ Line 66) setOperator(op) ==> void
+ Line 71) v.visit(this, arg) ==> R
+ Line 76) v.visit(this, arg) ==> void
+ Line 80) op ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 84) target ==> com.github.javaparser.ast.expr.Expression
+ Line 88) value ==> com.github.javaparser.ast.expr.Expression
+ Line 92) this.op = op ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 96) this.target = target ==> com.github.javaparser.ast.expr.Expression
+ Line 97) setAsParentNodeOf(this.target) ==> void
+ Line 101) this.value = value ==> com.github.javaparser.ast.expr.Expression
+ Line 102) setAsParentNodeOf(this.value) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_BinaryExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_BinaryExpr.txt
new file mode 100644
index 000000000..1e519b85d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_BinaryExpr.txt
@@ -0,0 +1,26 @@
+
+[ Class com.github.javaparser.ast.expr.BinaryExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 64) setLeft(left) ==> void
+ Line 65) setRight(right) ==> void
+ Line 66) setOperator(op) ==> void
+ Line 70) beginLine ==> int
+ Line 70) beginColumn ==> int
+ Line 70) endLine ==> int
+ Line 70) endColumn ==> int
+ Line 71) setLeft(left) ==> void
+ Line 72) setRight(right) ==> void
+ Line 73) setOperator(op) ==> void
+ Line 78) v.visit(this, arg) ==> R
+ Line 83) v.visit(this, arg) ==> void
+ Line 87) left ==> com.github.javaparser.ast.expr.Expression
+ Line 91) op ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 95) right ==> com.github.javaparser.ast.expr.Expression
+ Line 99) this.left = left ==> com.github.javaparser.ast.expr.Expression
+ Line 100) setAsParentNodeOf(this.left) ==> void
+ Line 104) this.op = op ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 108) this.right = right ==> com.github.javaparser.ast.expr.Expression
+ Line 109) setAsParentNodeOf(this.right) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_BooleanLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_BooleanLiteralExpr.txt
new file mode 100644
index 000000000..4191f82aa
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_BooleanLiteralExpr.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.expr.BooleanLiteralExpr ]
+ superclass: com.github.javaparser.ast.expr.LiteralExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 38) setValue(value) ==> void
+ Line 42) beginLine ==> int
+ Line 42) beginColumn ==> int
+ Line 42) endLine ==> int
+ Line 42) endColumn ==> int
+ Line 43) setValue(value) ==> void
+ Line 48) v.visit(this, arg) ==> R
+ Line 53) v.visit(this, arg) ==> void
+ Line 57) value ==> boolean
+ Line 61) this.value = value ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_CastExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_CastExpr.txt
new file mode 100644
index 000000000..b97510a68
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_CastExpr.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.expr.CastExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 41) setType(type) ==> void
+ Line 42) setExpr(expr) ==> void
+ Line 46) beginLine ==> int
+ Line 46) beginColumn ==> int
+ Line 46) endLine ==> int
+ Line 46) endColumn ==> int
+ Line 47) setType(type) ==> void
+ Line 48) setExpr(expr) ==> void
+ Line 53) v.visit(this, arg) ==> R
+ Line 58) v.visit(this, arg) ==> void
+ Line 62) expr ==> com.github.javaparser.ast.expr.Expression
+ Line 66) type ==> com.github.javaparser.ast.type.Type
+ Line 70) this.expr = expr ==> com.github.javaparser.ast.expr.Expression
+ Line 71) setAsParentNodeOf(this.expr) ==> void
+ Line 75) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 76) setAsParentNodeOf(this.type) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_CharLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_CharLiteralExpr.txt
new file mode 100644
index 000000000..6c2ca856e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_CharLiteralExpr.txt
@@ -0,0 +1,16 @@
+
+[ Class com.github.javaparser.ast.expr.CharLiteralExpr ]
+ superclass: com.github.javaparser.ast.expr.StringLiteralExpr
+ superclass: com.github.javaparser.ast.expr.LiteralExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 36) value ==> java.lang.String
+ Line 40) beginLine ==> int
+ Line 40) beginColumn ==> int
+ Line 40) endLine ==> int
+ Line 40) endColumn ==> int
+ Line 40) value ==> java.lang.String
+ Line 45) v.visit(this, arg) ==> R
+ Line 50) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ClassExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ClassExpr.txt
new file mode 100644
index 000000000..f5366370c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ClassExpr.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.expr.ClassExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 39) setType(type) ==> void
+ Line 43) beginLine ==> int
+ Line 43) beginColumn ==> int
+ Line 43) endLine ==> int
+ Line 43) endColumn ==> int
+ Line 44) setType(type) ==> void
+ Line 49) v.visit(this, arg) ==> R
+ Line 54) v.visit(this, arg) ==> void
+ Line 58) type ==> com.github.javaparser.ast.type.Type
+ Line 62) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 63) setAsParentNodeOf(this.type) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ConditionalExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ConditionalExpr.txt
new file mode 100644
index 000000000..ea92c679f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ConditionalExpr.txt
@@ -0,0 +1,27 @@
+
+[ Class com.github.javaparser.ast.expr.ConditionalExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 42) setCondition(condition) ==> void
+ Line 43) setThenExpr(thenExpr) ==> void
+ Line 44) setElseExpr(elseExpr) ==> void
+ Line 48) beginLine ==> int
+ Line 48) beginColumn ==> int
+ Line 48) endLine ==> int
+ Line 48) endColumn ==> int
+ Line 49) setCondition(condition) ==> void
+ Line 50) setThenExpr(thenExpr) ==> void
+ Line 51) setElseExpr(elseExpr) ==> void
+ Line 56) v.visit(this, arg) ==> R
+ Line 61) v.visit(this, arg) ==> void
+ Line 65) condition ==> com.github.javaparser.ast.expr.Expression
+ Line 69) elseExpr ==> com.github.javaparser.ast.expr.Expression
+ Line 73) thenExpr ==> com.github.javaparser.ast.expr.Expression
+ Line 77) this.condition = condition ==> com.github.javaparser.ast.expr.Expression
+ Line 78) setAsParentNodeOf(this.condition) ==> void
+ Line 82) this.elseExpr = elseExpr ==> com.github.javaparser.ast.expr.Expression
+ Line 83) setAsParentNodeOf(this.elseExpr) ==> void
+ Line 87) this.thenExpr = thenExpr ==> com.github.javaparser.ast.expr.Expression
+ Line 88) setAsParentNodeOf(this.thenExpr) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_DoubleLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_DoubleLiteralExpr.txt
new file mode 100644
index 000000000..16d9a862a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_DoubleLiteralExpr.txt
@@ -0,0 +1,16 @@
+
+[ Class com.github.javaparser.ast.expr.DoubleLiteralExpr ]
+ superclass: com.github.javaparser.ast.expr.StringLiteralExpr
+ superclass: com.github.javaparser.ast.expr.LiteralExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 36) value ==> java.lang.String
+ Line 41) beginLine ==> int
+ Line 41) beginColumn ==> int
+ Line 41) endLine ==> int
+ Line 41) endColumn ==> int
+ Line 41) value ==> java.lang.String
+ Line 45) v.visit(this, arg) ==> R
+ Line 49) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_EnclosedExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_EnclosedExpr.txt
new file mode 100644
index 000000000..c0507d87f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_EnclosedExpr.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.expr.EnclosedExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 38) setInner(inner) ==> void
+ Line 43) beginLine ==> int
+ Line 43) beginColumn ==> int
+ Line 43) endLine ==> int
+ Line 43) endColumn ==> int
+ Line 44) setInner(inner) ==> void
+ Line 48) v.visit(this, arg) ==> R
+ Line 52) v.visit(this, arg) ==> void
+ Line 56) inner ==> com.github.javaparser.ast.expr.Expression
+ Line 60) this.inner = inner ==> com.github.javaparser.ast.expr.Expression
+ Line 61) setAsParentNodeOf(this.inner) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_Expression.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_Expression.txt
new file mode 100644
index 000000000..b912274b6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_Expression.txt
@@ -0,0 +1,9 @@
+
+[ Class com.github.javaparser.ast.expr.Expression ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 35) beginLine ==> int
+ Line 35) beginColumn ==> int
+ Line 35) endLine ==> int
+ Line 35) endColumn ==> int
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_FieldAccessExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_FieldAccessExpr.txt
new file mode 100644
index 000000000..38a138b73
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_FieldAccessExpr.txt
@@ -0,0 +1,27 @@
+
+[ Class com.github.javaparser.ast.expr.FieldAccessExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 45) setScope(scope) ==> void
+ Line 46) setField(field) ==> void
+ Line 51) beginLine ==> int
+ Line 51) beginColumn ==> int
+ Line 51) endLine ==> int
+ Line 51) endColumn ==> int
+ Line 52) setScope(scope) ==> void
+ Line 53) setTypeArgs(typeArgs) ==> void
+ Line 54) setField(field) ==> void
+ Line 58) v.visit(this, arg) ==> R
+ Line 62) v.visit(this, arg) ==> void
+ Line 66) field.getName() ==> java.lang.String
+ Line 70) field ==> com.github.javaparser.ast.expr.NameExpr
+ Line 74) scope ==> com.github.javaparser.ast.expr.Expression
+ Line 78) typeArgs ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 82) this.field = new NameExpr(field) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 86) this.field = field ==> com.github.javaparser.ast.expr.NameExpr
+ Line 90) this.scope = scope ==> com.github.javaparser.ast.expr.Expression
+ Line 91) setAsParentNodeOf(this.scope) ==> void
+ Line 95) this.typeArgs = typeArgs ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 96) setAsParentNodeOf(this.typeArgs) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_InstanceOfExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_InstanceOfExpr.txt
new file mode 100644
index 000000000..0e858f13d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_InstanceOfExpr.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.expr.InstanceOfExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 41) setExpr(expr) ==> void
+ Line 42) setType(type) ==> void
+ Line 47) beginLine ==> int
+ Line 47) beginColumn ==> int
+ Line 47) endLine ==> int
+ Line 47) endColumn ==> int
+ Line 48) setExpr(expr) ==> void
+ Line 49) setType(type) ==> void
+ Line 53) v.visit(this, arg) ==> R
+ Line 57) v.visit(this, arg) ==> void
+ Line 61) expr ==> com.github.javaparser.ast.expr.Expression
+ Line 65) type ==> com.github.javaparser.ast.type.Type
+ Line 69) this.expr = expr ==> com.github.javaparser.ast.expr.Expression
+ Line 70) setAsParentNodeOf(this.expr) ==> void
+ Line 74) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 75) setAsParentNodeOf(this.type) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_IntegerLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_IntegerLiteralExpr.txt
new file mode 100644
index 000000000..011fdd50a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_IntegerLiteralExpr.txt
@@ -0,0 +1,21 @@
+
+[ Class com.github.javaparser.ast.expr.IntegerLiteralExpr ]
+ superclass: com.github.javaparser.ast.expr.StringLiteralExpr
+ superclass: com.github.javaparser.ast.expr.LiteralExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 32) "2147483648" ==> java.lang.String
+ Line 34) "-" + UNSIGNED_MIN_VALUE ==> java.lang.String
+ Line 40) value ==> java.lang.String
+ Line 45) beginLine ==> int
+ Line 45) beginColumn ==> int
+ Line 45) endLine ==> int
+ Line 45) endColumn ==> int
+ Line 45) value ==> java.lang.String
+ Line 49) v.visit(this, arg) ==> R
+ Line 53) v.visit(this, arg) ==> void
+ Line 57) //
+value != null && //
+value.length() == 10 && value.equals(UNSIGNED_MIN_VALUE) ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_IntegerLiteralMinValueExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_IntegerLiteralMinValueExpr.txt
new file mode 100644
index 000000000..420e88038
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_IntegerLiteralMinValueExpr.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr ]
+ superclass: com.github.javaparser.ast.expr.IntegerLiteralExpr
+ superclass: com.github.javaparser.ast.expr.StringLiteralExpr
+ superclass: com.github.javaparser.ast.expr.LiteralExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 33) MIN_VALUE ==> java.lang.String
+ Line 37) beginLine ==> int
+ Line 37) beginColumn ==> int
+ Line 37) endLine ==> int
+ Line 37) endColumn ==> int
+ Line 37) MIN_VALUE ==> java.lang.String
+ Line 41) v.visit(this, arg) ==> R
+ Line 45) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LambdaExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LambdaExpr.txt
new file mode 100644
index 000000000..86d476c53
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LambdaExpr.txt
@@ -0,0 +1,23 @@
+
+[ Class com.github.javaparser.ast.expr.LambdaExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 52) beginLine ==> int
+ Line 52) beginColumn ==> int
+ Line 52) endLine ==> int
+ Line 52) endColumn ==> int
+ Line 53) setParameters(parameters) ==> void
+ Line 54) setBody(body) ==> void
+ Line 55) setParametersEnclosed(parametersEnclosed) ==> void
+ Line 59) parameters ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 63) this.parameters = parameters ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 64) setAsParentNodeOf(this.parameters) ==> void
+ Line 68) body ==> com.github.javaparser.ast.stmt.Statement
+ Line 72) this.body = body ==> com.github.javaparser.ast.stmt.Statement
+ Line 73) setAsParentNodeOf(this.body) ==> void
+ Line 78) v.visit(this, arg) ==> R
+ Line 83) v.visit(this, arg) ==> void
+ Line 87) parametersEnclosed ==> boolean
+ Line 91) this.parametersEnclosed = parametersEnclosed ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LiteralExpr.txt
new file mode 100644
index 000000000..ca57a2019
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LiteralExpr.txt
@@ -0,0 +1,10 @@
+
+[ Class com.github.javaparser.ast.expr.LiteralExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 33) beginLine ==> int
+ Line 33) beginColumn ==> int
+ Line 33) endLine ==> int
+ Line 33) endColumn ==> int
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LongLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LongLiteralExpr.txt
new file mode 100644
index 000000000..8382c1aa9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LongLiteralExpr.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.expr.LongLiteralExpr ]
+ superclass: com.github.javaparser.ast.expr.StringLiteralExpr
+ superclass: com.github.javaparser.ast.expr.LiteralExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 32) "9223372036854775808" ==> java.lang.String
+ Line 34) "-" + UNSIGNED_MIN_VALUE + "L" ==> java.lang.String
+ Line 40) value ==> java.lang.String
+ Line 45) beginLine ==> int
+ Line 45) beginColumn ==> int
+ Line 45) endLine ==> int
+ Line 45) endColumn ==> int
+ Line 45) value ==> java.lang.String
+ Line 49) v.visit(this, arg) ==> R
+ Line 53) v.visit(this, arg) ==> void
+ Line 57) //
+value != null && //
+value.length() == 20 && //
+value.startsWith(UNSIGNED_MIN_VALUE) && (value.charAt(19) == 'L' || value.charAt(19) == 'l') ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LongLiteralMinValueExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LongLiteralMinValueExpr.txt
new file mode 100644
index 000000000..5c6cf8e86
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_LongLiteralMinValueExpr.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.expr.LongLiteralMinValueExpr ]
+ superclass: com.github.javaparser.ast.expr.LongLiteralExpr
+ superclass: com.github.javaparser.ast.expr.StringLiteralExpr
+ superclass: com.github.javaparser.ast.expr.LiteralExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 33) MIN_VALUE ==> java.lang.String
+ Line 37) beginLine ==> int
+ Line 37) beginColumn ==> int
+ Line 37) endLine ==> int
+ Line 37) endColumn ==> int
+ Line 37) MIN_VALUE ==> java.lang.String
+ Line 41) v.visit(this, arg) ==> R
+ Line 45) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MarkerAnnotationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MarkerAnnotationExpr.txt
new file mode 100644
index 000000000..17af7f8ed
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MarkerAnnotationExpr.txt
@@ -0,0 +1,15 @@
+
+[ Class com.github.javaparser.ast.expr.MarkerAnnotationExpr ]
+ superclass: com.github.javaparser.ast.expr.AnnotationExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 36) setName(name) ==> void
+ Line 41) beginLine ==> int
+ Line 41) beginColumn ==> int
+ Line 41) endLine ==> int
+ Line 41) endColumn ==> int
+ Line 42) setName(name) ==> void
+ Line 46) v.visit(this, arg) ==> R
+ Line 50) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MemberValuePair.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MemberValuePair.txt
new file mode 100644
index 000000000..42b015408
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MemberValuePair.txt
@@ -0,0 +1,21 @@
+
+[ Class com.github.javaparser.ast.expr.MemberValuePair ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.NamedNode
+ interface: java.lang.Cloneable
+ Line 42) setName(name) ==> void
+ Line 43) setValue(value) ==> void
+ Line 48) beginLine ==> int
+ Line 48) beginColumn ==> int
+ Line 48) endLine ==> int
+ Line 48) endColumn ==> int
+ Line 49) setName(name) ==> void
+ Line 50) setValue(value) ==> void
+ Line 54) v.visit(this, arg) ==> R
+ Line 58) v.visit(this, arg) ==> void
+ Line 62) name ==> java.lang.String
+ Line 66) value ==> com.github.javaparser.ast.expr.Expression
+ Line 70) this.name = name ==> java.lang.String
+ Line 74) this.value = value ==> com.github.javaparser.ast.expr.Expression
+ Line 75) setAsParentNodeOf(this.value) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MethodCallExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MethodCallExpr.txt
new file mode 100644
index 000000000..18cc572e5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MethodCallExpr.txt
@@ -0,0 +1,34 @@
+
+[ Class com.github.javaparser.ast.expr.MethodCallExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 47) setScope(scope) ==> void
+ Line 48) setName(name) ==> void
+ Line 52) setScope(scope) ==> void
+ Line 53) setName(name) ==> void
+ Line 54) setArgs(args) ==> void
+ Line 59) beginLine ==> int
+ Line 59) beginColumn ==> int
+ Line 59) endLine ==> int
+ Line 59) endColumn ==> int
+ Line 60) setScope(scope) ==> void
+ Line 61) setTypeArgs(typeArgs) ==> void
+ Line 62) setName(name) ==> void
+ Line 63) setArgs(args) ==> void
+ Line 67) v.visit(this, arg) ==> R
+ Line 71) v.visit(this, arg) ==> void
+ Line 75) args ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 79) name.getName() ==> java.lang.String
+ Line 83) name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 87) scope ==> com.github.javaparser.ast.expr.Expression
+ Line 91) typeArgs ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 95) this.args = args ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 96) setAsParentNodeOf(this.args) ==> void
+ Line 100) this.name = new NameExpr(name) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 104) this.name = name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 108) this.scope = scope ==> com.github.javaparser.ast.expr.Expression
+ Line 109) setAsParentNodeOf(this.scope) ==> void
+ Line 113) this.typeArgs = typeArgs ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 114) setAsParentNodeOf(this.typeArgs) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MethodReferenceExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MethodReferenceExpr.txt
new file mode 100644
index 000000000..4b1c7caa0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_MethodReferenceExpr.txt
@@ -0,0 +1,23 @@
+
+[ Class com.github.javaparser.ast.expr.MethodReferenceExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 55) beginLine ==> int
+ Line 55) beginColumn ==> int
+ Line 55) endLine ==> int
+ Line 55) endColumn ==> int
+ Line 56) setIdentifier(identifier) ==> void
+ Line 57) setScope(scope) ==> void
+ Line 58) setTypeParameters(typeParameters) ==> void
+ Line 64) v.visit(this, arg) ==> R
+ Line 69) v.visit(this, arg) ==> void
+ Line 73) scope ==> com.github.javaparser.ast.expr.Expression
+ Line 77) this.scope = scope ==> com.github.javaparser.ast.expr.Expression
+ Line 78) setAsParentNodeOf(this.scope) ==> void
+ Line 82) typeParameters ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 86) this.typeParameters = typeParameters ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 87) setAsParentNodeOf(this.typeParameters) ==> void
+ Line 91) identifier ==> java.lang.String
+ Line 95) this.identifier = identifier ==> java.lang.String
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NameExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NameExpr.txt
new file mode 100644
index 000000000..044868f0b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NameExpr.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.expr.NameExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.NamedNode
+ interface: java.lang.Cloneable
+ Line 39) this.name = name ==> java.lang.String
+ Line 44) beginLine ==> int
+ Line 44) beginColumn ==> int
+ Line 44) endLine ==> int
+ Line 44) endColumn ==> int
+ Line 45) this.name = name ==> java.lang.String
+ Line 49) v.visit(this, arg) ==> R
+ Line 53) v.visit(this, arg) ==> void
+ Line 57) name ==> java.lang.String
+ Line 61) this.name = name ==> java.lang.String
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NormalAnnotationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NormalAnnotationExpr.txt
new file mode 100644
index 000000000..a655d2fc1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NormalAnnotationExpr.txt
@@ -0,0 +1,20 @@
+
+[ Class com.github.javaparser.ast.expr.NormalAnnotationExpr ]
+ superclass: com.github.javaparser.ast.expr.AnnotationExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 40) setName(name) ==> void
+ Line 41) setPairs(pairs) ==> void
+ Line 46) beginLine ==> int
+ Line 46) beginColumn ==> int
+ Line 46) endLine ==> int
+ Line 46) endColumn ==> int
+ Line 47) setName(name) ==> void
+ Line 48) setPairs(pairs) ==> void
+ Line 52) v.visit(this, arg) ==> R
+ Line 56) v.visit(this, arg) ==> void
+ Line 60) pairs ==> java.util.List<com.github.javaparser.ast.expr.MemberValuePair>
+ Line 64) this.pairs = pairs ==> java.util.List<com.github.javaparser.ast.expr.MemberValuePair>
+ Line 65) setAsParentNodeOf(this.pairs) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NullLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NullLiteralExpr.txt
new file mode 100644
index 000000000..71b08bda0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_NullLiteralExpr.txt
@@ -0,0 +1,13 @@
+
+[ Class com.github.javaparser.ast.expr.NullLiteralExpr ]
+ superclass: com.github.javaparser.ast.expr.LiteralExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 36) beginLine ==> int
+ Line 36) beginColumn ==> int
+ Line 36) endLine ==> int
+ Line 36) endColumn ==> int
+ Line 40) v.visit(this, arg) ==> R
+ Line 44) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ObjectCreationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ObjectCreationExpr.txt
new file mode 100644
index 000000000..af22ee228
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ObjectCreationExpr.txt
@@ -0,0 +1,35 @@
+
+[ Class com.github.javaparser.ast.expr.ObjectCreationExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 51) setScope(scope) ==> void
+ Line 52) setType(type) ==> void
+ Line 53) setArgs(args) ==> void
+ Line 59) beginLine ==> int
+ Line 59) beginColumn ==> int
+ Line 59) endLine ==> int
+ Line 59) endColumn ==> int
+ Line 60) setScope(scope) ==> void
+ Line 61) setType(type) ==> void
+ Line 62) setTypeArgs(typeArgs) ==> void
+ Line 63) setArgs(args) ==> void
+ Line 64) setAnonymousClassBody(anonymousBody) ==> void
+ Line 68) v.visit(this, arg) ==> R
+ Line 72) v.visit(this, arg) ==> void
+ Line 76) anonymousClassBody ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 80) args ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 84) scope ==> com.github.javaparser.ast.expr.Expression
+ Line 88) type ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 92) typeArgs ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 96) this.anonymousClassBody = anonymousClassBody ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 97) setAsParentNodeOf(this.anonymousClassBody) ==> void
+ Line 101) this.args = args ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 102) setAsParentNodeOf(this.args) ==> void
+ Line 106) this.scope = scope ==> com.github.javaparser.ast.expr.Expression
+ Line 107) setAsParentNodeOf(this.scope) ==> void
+ Line 111) this.type = type ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 112) setAsParentNodeOf(this.type) ==> void
+ Line 116) this.typeArgs = typeArgs ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 117) setAsParentNodeOf(this.typeArgs) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_QualifiedNameExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_QualifiedNameExpr.txt
new file mode 100644
index 000000000..3734479fd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_QualifiedNameExpr.txt
@@ -0,0 +1,21 @@
+
+[ Class com.github.javaparser.ast.expr.QualifiedNameExpr ]
+ superclass: com.github.javaparser.ast.expr.NameExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ interface: com.github.javaparser.ast.NamedNode
+ Line 38) name ==> java.lang.String
+ Line 39) setQualifier(scope) ==> void
+ Line 44) beginLine ==> int
+ Line 44) beginColumn ==> int
+ Line 44) endLine ==> int
+ Line 44) endColumn ==> int
+ Line 44) name ==> java.lang.String
+ Line 45) setQualifier(scope) ==> void
+ Line 49) v.visit(this, arg) ==> R
+ Line 53) v.visit(this, arg) ==> void
+ Line 57) qualifier ==> com.github.javaparser.ast.expr.NameExpr
+ Line 61) this.qualifier = qualifier ==> com.github.javaparser.ast.expr.NameExpr
+ Line 62) setAsParentNodeOf(this.qualifier) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_SingleMemberAnnotationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_SingleMemberAnnotationExpr.txt
new file mode 100644
index 000000000..70a615075
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_SingleMemberAnnotationExpr.txt
@@ -0,0 +1,20 @@
+
+[ Class com.github.javaparser.ast.expr.SingleMemberAnnotationExpr ]
+ superclass: com.github.javaparser.ast.expr.AnnotationExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 38) setName(name) ==> void
+ Line 39) setMemberValue(memberValue) ==> void
+ Line 44) beginLine ==> int
+ Line 44) beginColumn ==> int
+ Line 44) endLine ==> int
+ Line 44) endColumn ==> int
+ Line 45) setName(name) ==> void
+ Line 46) setMemberValue(memberValue) ==> void
+ Line 50) v.visit(this, arg) ==> R
+ Line 54) v.visit(this, arg) ==> void
+ Line 58) memberValue ==> com.github.javaparser.ast.expr.Expression
+ Line 62) this.memberValue = memberValue ==> com.github.javaparser.ast.expr.Expression
+ Line 63) setAsParentNodeOf(this.memberValue) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_StringLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_StringLiteralExpr.txt
new file mode 100644
index 000000000..d4f333f4f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_StringLiteralExpr.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.expr.StringLiteralExpr ]
+ superclass: com.github.javaparser.ast.expr.LiteralExpr
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 38) this.value = value ==> java.lang.String
+ Line 43) beginLine ==> int
+ Line 43) beginColumn ==> int
+ Line 43) endLine ==> int
+ Line 43) endColumn ==> int
+ Line 44) this.value = value ==> java.lang.String
+ Line 48) v.visit(this, arg) ==> R
+ Line 52) v.visit(this, arg) ==> void
+ Line 56) value ==> java.lang.String
+ Line 60) this.value = value ==> java.lang.String
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_SuperExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_SuperExpr.txt
new file mode 100644
index 000000000..ce9f1db75
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_SuperExpr.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.expr.SuperExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 38) setClassExpr(classExpr) ==> void
+ Line 43) beginLine ==> int
+ Line 43) beginColumn ==> int
+ Line 43) endLine ==> int
+ Line 43) endColumn ==> int
+ Line 44) setClassExpr(classExpr) ==> void
+ Line 48) v.visit(this, arg) ==> R
+ Line 52) v.visit(this, arg) ==> void
+ Line 56) classExpr ==> com.github.javaparser.ast.expr.Expression
+ Line 60) this.classExpr = classExpr ==> com.github.javaparser.ast.expr.Expression
+ Line 61) setAsParentNodeOf(this.classExpr) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ThisExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ThisExpr.txt
new file mode 100644
index 000000000..08e3f8ef5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_ThisExpr.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.expr.ThisExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 38) setClassExpr(classExpr) ==> void
+ Line 43) beginLine ==> int
+ Line 43) beginColumn ==> int
+ Line 43) endLine ==> int
+ Line 43) endColumn ==> int
+ Line 44) setClassExpr(classExpr) ==> void
+ Line 48) v.visit(this, arg) ==> R
+ Line 52) v.visit(this, arg) ==> void
+ Line 56) classExpr ==> com.github.javaparser.ast.expr.Expression
+ Line 60) this.classExpr = classExpr ==> com.github.javaparser.ast.expr.Expression
+ Line 61) setAsParentNodeOf(this.classExpr) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_TypeExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_TypeExpr.txt
new file mode 100644
index 000000000..caab44b03
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_TypeExpr.txt
@@ -0,0 +1,16 @@
+
+[ Class com.github.javaparser.ast.expr.TypeExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 40) beginLine ==> int
+ Line 40) beginColumn ==> int
+ Line 40) endLine ==> int
+ Line 40) endColumn ==> int
+ Line 41) setType(type) ==> void
+ Line 46) v.visit(this, arg) ==> R
+ Line 51) v.visit(this, arg) ==> void
+ Line 55) type ==> com.github.javaparser.ast.type.Type
+ Line 59) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 60) setAsParentNodeOf(this.type) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_UnaryExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_UnaryExpr.txt
new file mode 100644
index 000000000..d046e320f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_UnaryExpr.txt
@@ -0,0 +1,21 @@
+
+[ Class com.github.javaparser.ast.expr.UnaryExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 51) setExpr(expr) ==> void
+ Line 52) setOperator(op) ==> void
+ Line 57) beginLine ==> int
+ Line 57) beginColumn ==> int
+ Line 57) endLine ==> int
+ Line 57) endColumn ==> int
+ Line 58) setExpr(expr) ==> void
+ Line 59) setOperator(op) ==> void
+ Line 63) v.visit(this, arg) ==> R
+ Line 67) v.visit(this, arg) ==> void
+ Line 71) expr ==> com.github.javaparser.ast.expr.Expression
+ Line 75) op ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 79) this.expr = expr ==> com.github.javaparser.ast.expr.Expression
+ Line 80) setAsParentNodeOf(this.expr) ==> void
+ Line 84) this.op = op ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_VariableDeclarationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_VariableDeclarationExpr.txt
new file mode 100644
index 000000000..c3e276cde
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_expr_VariableDeclarationExpr.txt
@@ -0,0 +1,32 @@
+
+[ Class com.github.javaparser.ast.expr.VariableDeclarationExpr ]
+ superclass: com.github.javaparser.ast.expr.Expression
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 49) setType(type) ==> void
+ Line 50) setVars(vars) ==> void
+ Line 54) setModifiers(modifiers) ==> void
+ Line 55) setType(type) ==> void
+ Line 56) setVars(vars) ==> void
+ Line 62) beginLine ==> int
+ Line 62) beginColumn ==> int
+ Line 62) endLine ==> int
+ Line 62) endColumn ==> int
+ Line 63) setModifiers(modifiers) ==> void
+ Line 64) setAnnotations(annotations) ==> void
+ Line 65) setType(type) ==> void
+ Line 66) setVars(vars) ==> void
+ Line 70) v.visit(this, arg) ==> R
+ Line 74) v.visit(this, arg) ==> void
+ Line 78) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 88) modifiers ==> int
+ Line 92) type ==> com.github.javaparser.ast.type.Type
+ Line 96) vars ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 100) this.annotations = annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 101) setAsParentNodeOf(this.annotations) ==> void
+ Line 105) this.modifiers = modifiers ==> int
+ Line 109) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 110) setAsParentNodeOf(this.type) ==> void
+ Line 114) this.vars = vars ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 115) setAsParentNodeOf(this.vars) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_internal_Utils.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_internal_Utils.txt
new file mode 100644
index 000000000..4aac73a8b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_internal_Utils.txt
@@ -0,0 +1,5 @@
+
+[ Class com.github.javaparser.ast.internal.Utils ]
+ superclass: java.lang.Object
+ Line 35) list == null ? Collections.<T>emptyList() : list ==> java.util.List<T>
+ Line 39) collection == null || collection.isEmpty() ==> boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_AssertStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_AssertStmt.txt
new file mode 100644
index 000000000..535fc91df
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_AssertStmt.txt
@@ -0,0 +1,23 @@
+
+[ Class com.github.javaparser.ast.stmt.AssertStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 41) setCheck(check) ==> void
+ Line 45) setCheck(check) ==> void
+ Line 46) setMessage(msg) ==> void
+ Line 51) beginLine ==> int
+ Line 51) beginColumn ==> int
+ Line 51) endLine ==> int
+ Line 51) endColumn ==> int
+ Line 53) setCheck(check) ==> void
+ Line 54) setMessage(msg) ==> void
+ Line 59) v.visit(this, arg) ==> R
+ Line 63) v.visit(this, arg) ==> void
+ Line 67) check ==> com.github.javaparser.ast.expr.Expression
+ Line 71) msg ==> com.github.javaparser.ast.expr.Expression
+ Line 75) this.check = check ==> com.github.javaparser.ast.expr.Expression
+ Line 76) setAsParentNodeOf(this.check) ==> void
+ Line 80) this.msg = msg ==> com.github.javaparser.ast.expr.Expression
+ Line 81) setAsParentNodeOf(this.msg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_BlockStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_BlockStmt.txt
new file mode 100644
index 000000000..cef3a6a52
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_BlockStmt.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.stmt.BlockStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 40) setStmts(stmts) ==> void
+ Line 45) beginLine ==> int
+ Line 45) beginColumn ==> int
+ Line 45) endLine ==> int
+ Line 45) endColumn ==> int
+ Line 46) setStmts(stmts) ==> void
+ Line 51) v.visit(this, arg) ==> R
+ Line 56) v.visit(this, arg) ==> void
+ Line 60) stmts ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 64) this.stmts = stmts ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 65) setAsParentNodeOf(this.stmts) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_BreakStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_BreakStmt.txt
new file mode 100644
index 000000000..54c0f1da5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_BreakStmt.txt
@@ -0,0 +1,16 @@
+
+[ Class com.github.javaparser.ast.stmt.BreakStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 38) this.id = id ==> java.lang.String
+ Line 42) beginLine ==> int
+ Line 42) beginColumn ==> int
+ Line 42) endLine ==> int
+ Line 42) endColumn ==> int
+ Line 43) this.id = id ==> java.lang.String
+ Line 47) v.visit(this, arg) ==> R
+ Line 51) v.visit(this, arg) ==> void
+ Line 55) id ==> java.lang.String
+ Line 59) this.id = id ==> java.lang.String
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_CatchClause.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_CatchClause.txt
new file mode 100644
index 000000000..726ac19e9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_CatchClause.txt
@@ -0,0 +1,23 @@
+
+[ Class com.github.javaparser.ast.stmt.CatchClause ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 47) setExcept(except) ==> void
+ Line 48) setCatchBlock(catchBlock) ==> void
+ Line 52) new MultiTypeParameter(exceptModifier, exceptAnnotations, exceptTypes, exceptId) ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 52) catchBlock ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 58) beginLine ==> int
+ Line 58) beginColumn ==> int
+ Line 58) endLine ==> int
+ Line 58) endColumn ==> int
+ Line 59) setExcept(new MultiTypeParameter(beginLine, beginColumn, endLine, endColumn, exceptModifier, exceptAnnotations, exceptTypes, exceptId)) ==> void
+ Line 60) setCatchBlock(catchBlock) ==> void
+ Line 64) v.visit(this, arg) ==> R
+ Line 68) v.visit(this, arg) ==> void
+ Line 72) catchBlock ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 76) except ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 80) this.catchBlock = catchBlock ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 81) setAsParentNodeOf(this.catchBlock) ==> void
+ Line 85) this.except = except ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 86) setAsParentNodeOf(this.except) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ContinueStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ContinueStmt.txt
new file mode 100644
index 000000000..52d5d728c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ContinueStmt.txt
@@ -0,0 +1,16 @@
+
+[ Class com.github.javaparser.ast.stmt.ContinueStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 38) this.id = id ==> java.lang.String
+ Line 43) beginLine ==> int
+ Line 43) beginColumn ==> int
+ Line 43) endLine ==> int
+ Line 43) endColumn ==> int
+ Line 44) this.id = id ==> java.lang.String
+ Line 48) v.visit(this, arg) ==> R
+ Line 52) v.visit(this, arg) ==> void
+ Line 56) id ==> java.lang.String
+ Line 60) this.id = id ==> java.lang.String
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_DoStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_DoStmt.txt
new file mode 100644
index 000000000..35154291b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_DoStmt.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.stmt.DoStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 41) setBody(body) ==> void
+ Line 42) setCondition(condition) ==> void
+ Line 47) beginLine ==> int
+ Line 47) beginColumn ==> int
+ Line 47) endLine ==> int
+ Line 47) endColumn ==> int
+ Line 48) setBody(body) ==> void
+ Line 49) setCondition(condition) ==> void
+ Line 53) v.visit(this, arg) ==> R
+ Line 57) v.visit(this, arg) ==> void
+ Line 61) body ==> com.github.javaparser.ast.stmt.Statement
+ Line 65) condition ==> com.github.javaparser.ast.expr.Expression
+ Line 69) this.body = body ==> com.github.javaparser.ast.stmt.Statement
+ Line 70) setAsParentNodeOf(this.body) ==> void
+ Line 74) this.condition = condition ==> com.github.javaparser.ast.expr.Expression
+ Line 75) setAsParentNodeOf(this.condition) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_EmptyStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_EmptyStmt.txt
new file mode 100644
index 000000000..5a4aa9e27
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_EmptyStmt.txt
@@ -0,0 +1,12 @@
+
+[ Class com.github.javaparser.ast.stmt.EmptyStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 36) beginLine ==> int
+ Line 36) beginColumn ==> int
+ Line 36) endLine ==> int
+ Line 36) endColumn ==> int
+ Line 40) v.visit(this, arg) ==> R
+ Line 44) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ExplicitConstructorInvocationStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ExplicitConstructorInvocationStmt.txt
new file mode 100644
index 000000000..18a057877
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ExplicitConstructorInvocationStmt.txt
@@ -0,0 +1,30 @@
+
+[ Class com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 49) setThis(isThis) ==> void
+ Line 50) setExpr(expr) ==> void
+ Line 51) setArgs(args) ==> void
+ Line 58) beginLine ==> int
+ Line 58) beginColumn ==> int
+ Line 58) endLine ==> int
+ Line 58) endColumn ==> int
+ Line 59) setTypeArgs(typeArgs) ==> void
+ Line 60) setThis(isThis) ==> void
+ Line 61) setExpr(expr) ==> void
+ Line 62) setArgs(args) ==> void
+ Line 67) v.visit(this, arg) ==> R
+ Line 72) v.visit(this, arg) ==> void
+ Line 76) args ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 80) expr ==> com.github.javaparser.ast.expr.Expression
+ Line 84) typeArgs ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 88) isThis ==> boolean
+ Line 92) this.args = args ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 93) setAsParentNodeOf(this.args) ==> void
+ Line 97) this.expr = expr ==> com.github.javaparser.ast.expr.Expression
+ Line 98) setAsParentNodeOf(this.expr) ==> void
+ Line 102) this.isThis = isThis ==> boolean
+ Line 106) this.typeArgs = typeArgs ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 107) setAsParentNodeOf(this.typeArgs) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ExpressionStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ExpressionStmt.txt
new file mode 100644
index 000000000..f625704cb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ExpressionStmt.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.stmt.ExpressionStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 39) setExpression(expr) ==> void
+ Line 44) beginLine ==> int
+ Line 44) beginColumn ==> int
+ Line 44) endLine ==> int
+ Line 44) endColumn ==> int
+ Line 45) setExpression(expr) ==> void
+ Line 49) v.visit(this, arg) ==> R
+ Line 53) v.visit(this, arg) ==> void
+ Line 57) expr ==> com.github.javaparser.ast.expr.Expression
+ Line 61) this.expr = expr ==> com.github.javaparser.ast.expr.Expression
+ Line 62) setAsParentNodeOf(this.expr) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ForStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ForStmt.txt
new file mode 100644
index 000000000..06da7f23c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ForStmt.txt
@@ -0,0 +1,32 @@
+
+[ Class com.github.javaparser.ast.stmt.ForStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 48) setCompare(compare) ==> void
+ Line 49) setInit(init) ==> void
+ Line 50) setUpdate(update) ==> void
+ Line 51) setBody(body) ==> void
+ Line 58) beginLine ==> int
+ Line 58) beginColumn ==> int
+ Line 58) endLine ==> int
+ Line 58) endColumn ==> int
+ Line 59) setCompare(compare) ==> void
+ Line 60) setInit(init) ==> void
+ Line 61) setUpdate(update) ==> void
+ Line 62) setBody(body) ==> void
+ Line 67) v.visit(this, arg) ==> R
+ Line 72) v.visit(this, arg) ==> void
+ Line 76) body ==> com.github.javaparser.ast.stmt.Statement
+ Line 80) compare ==> com.github.javaparser.ast.expr.Expression
+ Line 84) init ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 88) update ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 92) this.body = body ==> com.github.javaparser.ast.stmt.Statement
+ Line 93) setAsParentNodeOf(this.body) ==> void
+ Line 97) this.compare = compare ==> com.github.javaparser.ast.expr.Expression
+ Line 98) setAsParentNodeOf(this.compare) ==> void
+ Line 102) this.init = init ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 103) setAsParentNodeOf(this.init) ==> void
+ Line 107) this.update = update ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 108) setAsParentNodeOf(this.update) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ForeachStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ForeachStmt.txt
new file mode 100644
index 000000000..6bd60fd6e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ForeachStmt.txt
@@ -0,0 +1,27 @@
+
+[ Class com.github.javaparser.ast.stmt.ForeachStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 45) setVariable(var) ==> void
+ Line 46) setIterable(iterable) ==> void
+ Line 47) setBody(body) ==> void
+ Line 54) beginLine ==> int
+ Line 54) beginColumn ==> int
+ Line 54) endLine ==> int
+ Line 54) endColumn ==> int
+ Line 55) setVariable(var) ==> void
+ Line 56) setIterable(iterable) ==> void
+ Line 57) setBody(body) ==> void
+ Line 62) v.visit(this, arg) ==> R
+ Line 67) v.visit(this, arg) ==> void
+ Line 71) body ==> com.github.javaparser.ast.stmt.Statement
+ Line 75) iterable ==> com.github.javaparser.ast.expr.Expression
+ Line 79) var ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 83) this.body = body ==> com.github.javaparser.ast.stmt.Statement
+ Line 84) setAsParentNodeOf(this.body) ==> void
+ Line 88) this.iterable = iterable ==> com.github.javaparser.ast.expr.Expression
+ Line 89) setAsParentNodeOf(this.iterable) ==> void
+ Line 93) this.var = var ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 94) setAsParentNodeOf(this.var) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_IfStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_IfStmt.txt
new file mode 100644
index 000000000..49f2b1a71
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_IfStmt.txt
@@ -0,0 +1,27 @@
+
+[ Class com.github.javaparser.ast.stmt.IfStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 43) setCondition(condition) ==> void
+ Line 44) setThenStmt(thenStmt) ==> void
+ Line 45) setElseStmt(elseStmt) ==> void
+ Line 50) beginLine ==> int
+ Line 50) beginColumn ==> int
+ Line 50) endLine ==> int
+ Line 50) endColumn ==> int
+ Line 51) setCondition(condition) ==> void
+ Line 52) setThenStmt(thenStmt) ==> void
+ Line 53) setElseStmt(elseStmt) ==> void
+ Line 57) v.visit(this, arg) ==> R
+ Line 61) v.visit(this, arg) ==> void
+ Line 65) condition ==> com.github.javaparser.ast.expr.Expression
+ Line 69) elseStmt ==> com.github.javaparser.ast.stmt.Statement
+ Line 73) thenStmt ==> com.github.javaparser.ast.stmt.Statement
+ Line 77) this.condition = condition ==> com.github.javaparser.ast.expr.Expression
+ Line 78) setAsParentNodeOf(this.condition) ==> void
+ Line 82) this.elseStmt = elseStmt ==> com.github.javaparser.ast.stmt.Statement
+ Line 83) setAsParentNodeOf(this.elseStmt) ==> void
+ Line 87) this.thenStmt = thenStmt ==> com.github.javaparser.ast.stmt.Statement
+ Line 88) setAsParentNodeOf(this.thenStmt) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_LabeledStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_LabeledStmt.txt
new file mode 100644
index 000000000..43762a897
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_LabeledStmt.txt
@@ -0,0 +1,21 @@
+
+[ Class com.github.javaparser.ast.stmt.LabeledStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 40) setLabel(label) ==> void
+ Line 41) setStmt(stmt) ==> void
+ Line 46) beginLine ==> int
+ Line 46) beginColumn ==> int
+ Line 46) endLine ==> int
+ Line 46) endColumn ==> int
+ Line 47) setLabel(label) ==> void
+ Line 48) setStmt(stmt) ==> void
+ Line 52) v.visit(this, arg) ==> R
+ Line 56) v.visit(this, arg) ==> void
+ Line 60) label ==> java.lang.String
+ Line 64) stmt ==> com.github.javaparser.ast.stmt.Statement
+ Line 68) this.label = label ==> java.lang.String
+ Line 72) this.stmt = stmt ==> com.github.javaparser.ast.stmt.Statement
+ Line 73) setAsParentNodeOf(this.stmt) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ReturnStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ReturnStmt.txt
new file mode 100644
index 000000000..736d3beb5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ReturnStmt.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.stmt.ReturnStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 39) setExpr(expr) ==> void
+ Line 44) beginLine ==> int
+ Line 44) beginColumn ==> int
+ Line 44) endLine ==> int
+ Line 44) endColumn ==> int
+ Line 45) setExpr(expr) ==> void
+ Line 49) v.visit(this, arg) ==> R
+ Line 53) v.visit(this, arg) ==> void
+ Line 57) expr ==> com.github.javaparser.ast.expr.Expression
+ Line 61) this.expr = expr ==> com.github.javaparser.ast.expr.Expression
+ Line 62) setAsParentNodeOf(this.expr) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_Statement.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_Statement.txt
new file mode 100644
index 000000000..374de722a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_Statement.txt
@@ -0,0 +1,9 @@
+
+[ Class com.github.javaparser.ast.stmt.Statement ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 35) beginLine ==> int
+ Line 35) beginColumn ==> int
+ Line 35) endLine ==> int
+ Line 35) endColumn ==> int
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SwitchEntryStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SwitchEntryStmt.txt
new file mode 100644
index 000000000..690b6cb29
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SwitchEntryStmt.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.stmt.SwitchEntryStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 43) setLabel(label) ==> void
+ Line 44) setStmts(stmts) ==> void
+ Line 50) beginLine ==> int
+ Line 50) beginColumn ==> int
+ Line 50) endLine ==> int
+ Line 50) endColumn ==> int
+ Line 51) setLabel(label) ==> void
+ Line 52) setStmts(stmts) ==> void
+ Line 57) v.visit(this, arg) ==> R
+ Line 62) v.visit(this, arg) ==> void
+ Line 66) label ==> com.github.javaparser.ast.expr.Expression
+ Line 70) stmts ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 74) this.label = label ==> com.github.javaparser.ast.expr.Expression
+ Line 75) setAsParentNodeOf(this.label) ==> void
+ Line 79) this.stmts = stmts ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 80) setAsParentNodeOf(this.stmts) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SwitchStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SwitchStmt.txt
new file mode 100644
index 000000000..63d627546
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SwitchStmt.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.stmt.SwitchStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 44) setSelector(selector) ==> void
+ Line 45) setEntries(entries) ==> void
+ Line 51) beginLine ==> int
+ Line 51) beginColumn ==> int
+ Line 51) endLine ==> int
+ Line 51) endColumn ==> int
+ Line 52) setSelector(selector) ==> void
+ Line 53) setEntries(entries) ==> void
+ Line 58) v.visit(this, arg) ==> R
+ Line 63) v.visit(this, arg) ==> void
+ Line 67) entries ==> java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>
+ Line 71) selector ==> com.github.javaparser.ast.expr.Expression
+ Line 75) this.entries = entries ==> java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>
+ Line 76) setAsParentNodeOf(this.entries) ==> void
+ Line 80) this.selector = selector ==> com.github.javaparser.ast.expr.Expression
+ Line 81) setAsParentNodeOf(this.selector) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SynchronizedStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SynchronizedStmt.txt
new file mode 100644
index 000000000..7446d2e19
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_SynchronizedStmt.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.stmt.SynchronizedStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 41) setExpr(expr) ==> void
+ Line 42) setBlock(block) ==> void
+ Line 48) beginLine ==> int
+ Line 48) beginColumn ==> int
+ Line 48) endLine ==> int
+ Line 48) endColumn ==> int
+ Line 49) setExpr(expr) ==> void
+ Line 50) setBlock(block) ==> void
+ Line 55) v.visit(this, arg) ==> R
+ Line 60) v.visit(this, arg) ==> void
+ Line 64) block ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 68) expr ==> com.github.javaparser.ast.expr.Expression
+ Line 72) this.block = block ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 73) setAsParentNodeOf(this.block) ==> void
+ Line 77) this.expr = expr ==> com.github.javaparser.ast.expr.Expression
+ Line 78) setAsParentNodeOf(this.expr) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ThrowStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ThrowStmt.txt
new file mode 100644
index 000000000..33d57dcdf
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_ThrowStmt.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.stmt.ThrowStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 39) setExpr(expr) ==> void
+ Line 44) beginLine ==> int
+ Line 44) beginColumn ==> int
+ Line 44) endLine ==> int
+ Line 44) endColumn ==> int
+ Line 45) setExpr(expr) ==> void
+ Line 49) v.visit(this, arg) ==> R
+ Line 53) v.visit(this, arg) ==> void
+ Line 57) expr ==> com.github.javaparser.ast.expr.Expression
+ Line 61) this.expr = expr ==> com.github.javaparser.ast.expr.Expression
+ Line 62) setAsParentNodeOf(this.expr) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_TryStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_TryStmt.txt
new file mode 100644
index 000000000..1e652ed4a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_TryStmt.txt
@@ -0,0 +1,31 @@
+
+[ Class com.github.javaparser.ast.stmt.TryStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 48) setTryBlock(tryBlock) ==> void
+ Line 49) setCatchs(catchs) ==> void
+ Line 50) setFinallyBlock(finallyBlock) ==> void
+ Line 56) beginLine ==> int
+ Line 56) beginColumn ==> int
+ Line 56) endLine ==> int
+ Line 56) endColumn ==> int
+ Line 57) setResources(resources) ==> void
+ Line 58) setTryBlock(tryBlock) ==> void
+ Line 59) setCatchs(catchs) ==> void
+ Line 60) setFinallyBlock(finallyBlock) ==> void
+ Line 65) v.visit(this, arg) ==> R
+ Line 70) v.visit(this, arg) ==> void
+ Line 74) catchs ==> java.util.List<com.github.javaparser.ast.stmt.CatchClause>
+ Line 78) finallyBlock ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 82) tryBlock ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 86) resources ==> java.util.List<com.github.javaparser.ast.expr.VariableDeclarationExpr>
+ Line 90) this.catchs = catchs ==> java.util.List<com.github.javaparser.ast.stmt.CatchClause>
+ Line 91) setAsParentNodeOf(this.catchs) ==> void
+ Line 95) this.finallyBlock = finallyBlock ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 96) setAsParentNodeOf(this.finallyBlock) ==> void
+ Line 100) this.tryBlock = tryBlock ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 101) setAsParentNodeOf(this.tryBlock) ==> void
+ Line 105) this.resources = resources ==> java.util.List<com.github.javaparser.ast.expr.VariableDeclarationExpr>
+ Line 106) setAsParentNodeOf(this.resources) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_TypeDeclarationStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_TypeDeclarationStmt.txt
new file mode 100644
index 000000000..f301fb057
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_TypeDeclarationStmt.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.stmt.TypeDeclarationStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 39) setTypeDeclaration(typeDecl) ==> void
+ Line 44) beginLine ==> int
+ Line 44) beginColumn ==> int
+ Line 44) endLine ==> int
+ Line 44) endColumn ==> int
+ Line 45) setTypeDeclaration(typeDecl) ==> void
+ Line 49) v.visit(this, arg) ==> R
+ Line 53) v.visit(this, arg) ==> void
+ Line 57) typeDecl ==> com.github.javaparser.ast.body.TypeDeclaration
+ Line 61) this.typeDecl = typeDecl ==> com.github.javaparser.ast.body.TypeDeclaration
+ Line 62) setAsParentNodeOf(this.typeDecl) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_WhileStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_WhileStmt.txt
new file mode 100644
index 000000000..0444034ce
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_stmt_WhileStmt.txt
@@ -0,0 +1,22 @@
+
+[ Class com.github.javaparser.ast.stmt.WhileStmt ]
+ superclass: com.github.javaparser.ast.stmt.Statement
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 41) setCondition(condition) ==> void
+ Line 42) setBody(body) ==> void
+ Line 47) beginLine ==> int
+ Line 47) beginColumn ==> int
+ Line 47) endLine ==> int
+ Line 47) endColumn ==> int
+ Line 48) setCondition(condition) ==> void
+ Line 49) setBody(body) ==> void
+ Line 53) v.visit(this, arg) ==> R
+ Line 57) v.visit(this, arg) ==> void
+ Line 61) body ==> com.github.javaparser.ast.stmt.Statement
+ Line 65) condition ==> com.github.javaparser.ast.expr.Expression
+ Line 69) this.body = body ==> com.github.javaparser.ast.stmt.Statement
+ Line 70) setAsParentNodeOf(this.body) ==> void
+ Line 74) this.condition = condition ==> com.github.javaparser.ast.expr.Expression
+ Line 75) setAsParentNodeOf(this.condition) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_ClassOrInterfaceType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_ClassOrInterfaceType.txt
new file mode 100644
index 000000000..2ab2e64d4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_ClassOrInterfaceType.txt
@@ -0,0 +1,30 @@
+
+[ Class com.github.javaparser.ast.type.ClassOrInterfaceType ]
+ superclass: com.github.javaparser.ast.type.Type
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 44) setName(name) ==> void
+ Line 48) setScope(scope) ==> void
+ Line 49) setName(name) ==> void
+ Line 54) beginLine ==> int
+ Line 54) beginColumn ==> int
+ Line 54) endLine ==> int
+ Line 54) endColumn ==> int
+ Line 55) setScope(scope) ==> void
+ Line 56) setName(name) ==> void
+ Line 57) setTypeArgs(typeArgs) ==> void
+ Line 62) v.visit(this, arg) ==> R
+ Line 67) v.visit(this, arg) ==> void
+ Line 71) name ==> java.lang.String
+ Line 75) scope ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 79) typeArgs ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 83) PrimitiveType.unboxMap.containsKey(name) ==> boolean
+ Line 87) !isBoxedType() ==> boolean
+ Line 87) new UnsupportedOperationException(name + " isn't a boxed type.") ==> java.lang.UnsupportedOperationException
+ Line 88) new PrimitiveType(PrimitiveType.unboxMap.get(name)) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 92) this.name = name ==> java.lang.String
+ Line 96) this.scope = scope ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 97) setAsParentNodeOf(this.scope) ==> void
+ Line 101) this.typeArgs = typeArgs ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 102) setAsParentNodeOf(this.typeArgs) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_PrimitiveType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_PrimitiveType.txt
new file mode 100644
index 000000000..3d89a9915
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_PrimitiveType.txt
@@ -0,0 +1,23 @@
+
+[ Class com.github.javaparser.ast.type.PrimitiveType ]
+ superclass: com.github.javaparser.ast.type.Type
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 47) new ClassOrInterfaceType(nameOfBoxedType) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 51) this.nameOfBoxedType = nameOfBoxedType ==> java.lang.String
+ Line 55) new HashMap<String, Primitive>() ==> java.util.HashMap<java.lang.String, com.github.javaparser.ast.type.PrimitiveType.Primitive>
+ Line 57) Primitive unboxedType ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 57) Primitive.values() ==> com.github.javaparser.ast.type.PrimitiveType.Primitive[]
+ Line 58) unboxMap.put(unboxedType.nameOfBoxedType, unboxedType) ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 68) this.type = type ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 73) beginLine ==> int
+ Line 73) beginColumn ==> int
+ Line 73) endLine ==> int
+ Line 73) endColumn ==> int
+ Line 74) this.type = type ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 78) v.visit(this, arg) ==> R
+ Line 82) v.visit(this, arg) ==> void
+ Line 86) type ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 90) type.toBoxedType() ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 94) this.type = type ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_ReferenceType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_ReferenceType.txt
new file mode 100644
index 000000000..57b919720
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_ReferenceType.txt
@@ -0,0 +1,32 @@
+
+[ Class com.github.javaparser.ast.type.ReferenceType ]
+ superclass: com.github.javaparser.ast.type.Type
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 45) setType(type) ==> void
+ Line 49) setType(type) ==> void
+ Line 50) setArrayCount(arrayCount) ==> void
+ Line 55) beginLine ==> int
+ Line 55) beginColumn ==> int
+ Line 55) endLine ==> int
+ Line 55) endColumn ==> int
+ Line 56) setType(type) ==> void
+ Line 57) setArrayCount(arrayCount) ==> void
+ Line 64) beginLine ==> int
+ Line 64) beginColumn ==> int
+ Line 64) endLine ==> int
+ Line 64) endColumn ==> int
+ Line 64) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 65) setType(type) ==> void
+ Line 66) setArrayCount(arrayCount) ==> void
+ Line 67) this.arraysAnnotations = arraysAnnotations ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 71) v.visit(this, arg) ==> R
+ Line 75) v.visit(this, arg) ==> void
+ Line 79) arrayCount ==> int
+ Line 83) type ==> com.github.javaparser.ast.type.Type
+ Line 87) this.arrayCount = arrayCount ==> int
+ Line 91) this.type = type ==> com.github.javaparser.ast.type.Type
+ Line 92) setAsParentNodeOf(this.type) ==> void
+ Line 116) arraysAnnotations ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 123) this.arraysAnnotations = arraysAnnotations ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_Type.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_Type.txt
new file mode 100644
index 000000000..047008cd5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_Type.txt
@@ -0,0 +1,17 @@
+
+[ Class com.github.javaparser.ast.type.Type ]
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 40) this.annotations = annotation ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 44) beginLine ==> int
+ Line 44) beginColumn ==> int
+ Line 44) endLine ==> int
+ Line 44) endColumn ==> int
+ Line 48) beginLine ==> int
+ Line 48) beginColumn ==> int
+ Line 48) endLine ==> int
+ Line 48) endColumn ==> int
+ Line 49) this.annotations = annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 53) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 57) this.annotations = annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_UnknownType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_UnknownType.txt
new file mode 100644
index 000000000..adf1344be
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_UnknownType.txt
@@ -0,0 +1,8 @@
+
+[ Class com.github.javaparser.ast.type.UnknownType ]
+ superclass: com.github.javaparser.ast.type.Type
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 41) v.visit(this, arg) ==> R
+ Line 46) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_VoidType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_VoidType.txt
new file mode 100644
index 000000000..f59d930b1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_VoidType.txt
@@ -0,0 +1,12 @@
+
+[ Class com.github.javaparser.ast.type.VoidType ]
+ superclass: com.github.javaparser.ast.type.Type
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 36) beginLine ==> int
+ Line 36) beginColumn ==> int
+ Line 36) endLine ==> int
+ Line 36) endColumn ==> int
+ Line 40) v.visit(this, arg) ==> R
+ Line 44) v.visit(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_WildcardType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_WildcardType.txt
new file mode 100644
index 000000000..03636f88d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_type_WildcardType.txt
@@ -0,0 +1,23 @@
+
+[ Class com.github.javaparser.ast.type.WildcardType ]
+ superclass: com.github.javaparser.ast.type.Type
+ superclass: com.github.javaparser.ast.Node
+ superclass: java.lang.Object
+ interface: java.lang.Cloneable
+ Line 40) setExtends(ext) ==> void
+ Line 44) setExtends(ext) ==> void
+ Line 45) setSuper(sup) ==> void
+ Line 50) beginLine ==> int
+ Line 50) beginColumn ==> int
+ Line 50) endLine ==> int
+ Line 50) endColumn ==> int
+ Line 51) setExtends(ext) ==> void
+ Line 52) setSuper(sup) ==> void
+ Line 56) v.visit(this, arg) ==> R
+ Line 60) v.visit(this, arg) ==> void
+ Line 64) ext ==> com.github.javaparser.ast.type.ReferenceType
+ Line 68) sup ==> com.github.javaparser.ast.type.ReferenceType
+ Line 72) this.ext = ext ==> com.github.javaparser.ast.type.ReferenceType
+ Line 73) setAsParentNodeOf(this.ext) ==> void
+ Line 77) this.sup = sup ==> com.github.javaparser.ast.type.ReferenceType
+ Line 78) setAsParentNodeOf(this.sup) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_CloneVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_CloneVisitor.txt
new file mode 100644
index 000000000..f5bd81bd0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_CloneVisitor.txt
@@ -0,0 +1,819 @@
+
+[ Class com.github.javaparser.ast.visitor.CloneVisitor ]
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.visitor.GenericVisitor
+ Line 62) PackageDeclaration package_ = cloneNodes(_n.getPackage(), _arg) ==> com.github.javaparser.ast.PackageDeclaration
+ Line 62) cloneNodes(_n.getPackage(), _arg) ==> com.github.javaparser.ast.PackageDeclaration
+ Line 63) List<ImportDeclaration> imports = visit(_n.getImports(), _arg) ==> java.util.List<com.github.javaparser.ast.ImportDeclaration>
+ Line 63) visit(_n.getImports(), _arg) ==> java.util.List<com.github.javaparser.ast.ImportDeclaration>
+ Line 64) List<TypeDeclaration> types = visit(_n.getTypes(), _arg) ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 64) visit(_n.getTypes(), _arg) ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 66) new CompilationUnit(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), package_, imports, types) ==> com.github.javaparser.ast.CompilationUnit
+ Line 74) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 74) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 75) NameExpr name = cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 75) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 76) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 76) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 78) PackageDeclaration r = new PackageDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), annotations, name) ==> com.github.javaparser.ast.PackageDeclaration
+ Line 78) new PackageDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), annotations, name) ==> com.github.javaparser.ast.PackageDeclaration
+ Line 82) r.setComment(comment) ==> void
+ Line 83) r ==> com.github.javaparser.ast.PackageDeclaration
+ Line 88) NameExpr name = cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 88) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 89) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 89) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 91) ImportDeclaration r = new ImportDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name, _n.isStatic(), _n.isAsterisk()) ==> com.github.javaparser.ast.ImportDeclaration
+ Line 91) new ImportDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name, _n.isStatic(), _n.isAsterisk()) ==> com.github.javaparser.ast.ImportDeclaration
+ Line 95) r.setComment(comment) ==> void
+ Line 96) r ==> com.github.javaparser.ast.ImportDeclaration
+ Line 101) List<ClassOrInterfaceType> typeBound = visit(_n.getTypeBound(), _arg) ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 101) visit(_n.getTypeBound(), _arg) ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 103) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 103) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 104) TypeParameter r = new TypeParameter(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getName(), typeBound, annotations) ==> com.github.javaparser.ast.TypeParameter
+ Line 104) new TypeParameter(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getName(), typeBound, annotations) ==> com.github.javaparser.ast.TypeParameter
+ Line 108) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 108) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 109) r.setComment(comment) ==> void
+ Line 110) r ==> com.github.javaparser.ast.TypeParameter
+ Line 115) new LineComment(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getContent()) ==> com.github.javaparser.ast.comments.LineComment
+ Line 120) new BlockComment(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getContent()) ==> com.github.javaparser.ast.comments.BlockComment
+ Line 125) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 125) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 126) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 126) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 127) List<TypeParameter> typeParameters = visit(_n.getTypeParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 127) visit(_n.getTypeParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 128) List<ClassOrInterfaceType> extendsList = visit(_n.getExtends(), _arg) ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 128) visit(_n.getExtends(), _arg) ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 129) List<ClassOrInterfaceType> implementsList = visit(_n.getImplements(), _arg) ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 129) visit(_n.getImplements(), _arg) ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 130) List<BodyDeclaration> members = visit(_n.getMembers(), _arg) ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 130) visit(_n.getMembers(), _arg) ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 131) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 131) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 133) ClassOrInterfaceDeclaration r = new ClassOrInterfaceDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, _n.isInterface(), _n.getName(), typeParameters, extendsList, implementsList, members) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration
+ Line 133) new ClassOrInterfaceDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, _n.isInterface(), _n.getName(), typeParameters, extendsList, implementsList, members) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration
+ Line 137) r.setComment(comment) ==> void
+ Line 138) r ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration
+ Line 143) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 143) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 144) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 144) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 145) List<ClassOrInterfaceType> implementsList = visit(_n.getImplements(), _arg) ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 145) visit(_n.getImplements(), _arg) ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 146) List<EnumConstantDeclaration> entries = visit(_n.getEntries(), _arg) ==> java.util.List<com.github.javaparser.ast.body.EnumConstantDeclaration>
+ Line 146) visit(_n.getEntries(), _arg) ==> java.util.List<com.github.javaparser.ast.body.EnumConstantDeclaration>
+ Line 147) List<BodyDeclaration> members = visit(_n.getMembers(), _arg) ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 147) visit(_n.getMembers(), _arg) ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 148) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 148) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 150) EnumDeclaration r = new EnumDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, _n.getName(), implementsList, entries, members) ==> com.github.javaparser.ast.body.EnumDeclaration
+ Line 150) new EnumDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, _n.getName(), implementsList, entries, members) ==> com.github.javaparser.ast.body.EnumDeclaration
+ Line 154) r.setComment(comment) ==> void
+ Line 155) r ==> com.github.javaparser.ast.body.EnumDeclaration
+ Line 160) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 160) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 161) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 161) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 163) EmptyTypeDeclaration r = new EmptyTypeDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.body.EmptyTypeDeclaration
+ Line 163) new EmptyTypeDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.body.EmptyTypeDeclaration
+ Line 166) r.setComment(comment) ==> void
+ Line 167) r ==> com.github.javaparser.ast.body.EmptyTypeDeclaration
+ Line 172) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 172) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 173) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 173) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 174) List<Expression> args = visit(_n.getArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 174) visit(_n.getArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 175) List<BodyDeclaration> classBody = visit(_n.getClassBody(), _arg) ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 175) visit(_n.getClassBody(), _arg) ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 176) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 176) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 178) EnumConstantDeclaration r = new EnumConstantDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), annotations, _n.getName(), args, classBody) ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 178) new EnumConstantDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), annotations, _n.getName(), args, classBody) ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 182) r.setComment(comment) ==> void
+ Line 183) r ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 188) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 188) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 189) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 189) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 190) List<BodyDeclaration> members = visit(_n.getMembers(), _arg) ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 190) visit(_n.getMembers(), _arg) ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 191) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 191) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 193) AnnotationDeclaration r = new AnnotationDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, _n.getName(), members) ==> com.github.javaparser.ast.body.AnnotationDeclaration
+ Line 193) new AnnotationDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, _n.getName(), members) ==> com.github.javaparser.ast.body.AnnotationDeclaration
+ Line 197) r.setComment(comment) ==> void
+ Line 198) r ==> com.github.javaparser.ast.body.AnnotationDeclaration
+ Line 203) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 203) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 204) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 204) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 205) Type type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 205) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 206) Expression defaultValue = cloneNodes(_n.getDefaultValue(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 206) cloneNodes(_n.getDefaultValue(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 207) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 207) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 209) AnnotationMemberDeclaration r = new AnnotationMemberDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, type_, _n.getName(), defaultValue) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration
+ Line 209) new AnnotationMemberDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, type_, _n.getName(), defaultValue) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration
+ Line 213) r.setComment(comment) ==> void
+ Line 214) r ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration
+ Line 219) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 219) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 220) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 220) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 221) Type type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 221) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 222) List<VariableDeclarator> variables = visit(_n.getVariables(), _arg) ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 222) visit(_n.getVariables(), _arg) ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 223) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 223) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 225) FieldDeclaration r = new FieldDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, type_, variables) ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 225) new FieldDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, type_, variables) ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 229) r.setComment(comment) ==> void
+ Line 230) r ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 235) VariableDeclaratorId id = cloneNodes(_n.getId(), _arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 235) cloneNodes(_n.getId(), _arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 236) Expression init = cloneNodes(_n.getInit(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 236) cloneNodes(_n.getInit(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 237) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 237) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 239) VariableDeclarator r = new VariableDeclarator(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), id, init) ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 239) new VariableDeclarator(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), id, init) ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 243) r.setComment(comment) ==> void
+ Line 244) r ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 249) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 249) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 251) VariableDeclaratorId r = new VariableDeclaratorId(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getName(), _n.getArrayCount()) ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 251) new VariableDeclaratorId(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getName(), _n.getArrayCount()) ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 255) r.setComment(comment) ==> void
+ Line 256) r ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 261) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 261) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 262) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 262) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 263) List<TypeParameter> typeParameters = visit(_n.getTypeParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 263) visit(_n.getTypeParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 264) List<Parameter> parameters = visit(_n.getParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 264) visit(_n.getParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 265) List<NameExpr> throws_ = visit(_n.getThrows(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 265) visit(_n.getThrows(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 266) BlockStmt block = cloneNodes(_n.getBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 266) cloneNodes(_n.getBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 267) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 267) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 269) ConstructorDeclaration r = new ConstructorDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, typeParameters, _n.getName(), parameters, throws_, block) ==> com.github.javaparser.ast.body.ConstructorDeclaration
+ Line 269) new ConstructorDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, typeParameters, _n.getName(), parameters, throws_, block) ==> com.github.javaparser.ast.body.ConstructorDeclaration
+ Line 273) r.setComment(comment) ==> void
+ Line 274) r ==> com.github.javaparser.ast.body.ConstructorDeclaration
+ Line 279) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 279) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 280) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 280) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 281) List<TypeParameter> typeParameters = visit(_n.getTypeParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 281) visit(_n.getTypeParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 282) Type type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 282) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 283) List<Parameter> parameters = visit(_n.getParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 283) visit(_n.getParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 284) List<NameExpr> throws_ = visit(_n.getThrows(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 284) visit(_n.getThrows(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 285) BlockStmt block = cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 285) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 286) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 286) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 288) MethodDeclaration r = new MethodDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, typeParameters, type_, _n.getName(), parameters, _n.getArrayCount(), throws_, block) ==> com.github.javaparser.ast.body.MethodDeclaration
+ Line 288) new MethodDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, typeParameters, type_, _n.getName(), parameters, _n.getArrayCount(), throws_, block) ==> com.github.javaparser.ast.body.MethodDeclaration
+ Line 292) r.setComment(comment) ==> void
+ Line 293) r ==> com.github.javaparser.ast.body.MethodDeclaration
+ Line 298) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 298) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 299) Type type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 299) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 300) VariableDeclaratorId id = cloneNodes(_n.getId(), _arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 300) cloneNodes(_n.getId(), _arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 301) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 301) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 303) Parameter r = new Parameter(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, type_, _n.isVarArgs(), id) ==> com.github.javaparser.ast.body.Parameter
+ Line 303) new Parameter(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, type_, _n.isVarArgs(), id) ==> com.github.javaparser.ast.body.Parameter
+ Line 307) r.setComment(comment) ==> void
+ Line 308) r ==> com.github.javaparser.ast.body.Parameter
+ Line 313) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 313) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 314) List<Type> types = visit(_n.getTypes(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 314) visit(_n.getTypes(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 315) VariableDeclaratorId id = cloneNodes(_n.getId(), _arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 315) cloneNodes(_n.getId(), _arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 316) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 316) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 318) MultiTypeParameter r = new MultiTypeParameter(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, types, id) ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 318) new MultiTypeParameter(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, types, id) ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 322) r.setComment(comment) ==> void
+ Line 323) r ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 328) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 328) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 329) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 329) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 331) EmptyMemberDeclaration r = new EmptyMemberDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.body.EmptyMemberDeclaration
+ Line 331) new EmptyMemberDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.body.EmptyMemberDeclaration
+ Line 334) r.setComment(comment) ==> void
+ Line 335) r ==> com.github.javaparser.ast.body.EmptyMemberDeclaration
+ Line 340) JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 340) cloneNodes(_n.getJavaDoc(), _arg) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 341) BlockStmt block = cloneNodes(_n.getBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 341) cloneNodes(_n.getBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 342) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 342) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 344) InitializerDeclaration r = new InitializerDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.isStatic(), block) ==> com.github.javaparser.ast.body.InitializerDeclaration
+ Line 344) new InitializerDeclaration(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.isStatic(), block) ==> com.github.javaparser.ast.body.InitializerDeclaration
+ Line 348) r.setComment(comment) ==> void
+ Line 349) r ==> com.github.javaparser.ast.body.InitializerDeclaration
+ Line 354) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 354) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 355) JavadocComment r = new JavadocComment(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getContent()) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 355) new JavadocComment(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getContent()) ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 359) r.setComment(comment) ==> void
+ Line 360) r ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 365) ClassOrInterfaceType scope = cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 365) cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 366) List<Type> typeArgs = visit(_n.getTypeArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 366) visit(_n.getTypeArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 367) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 367) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 369) ClassOrInterfaceType r = new ClassOrInterfaceType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, _n.getName(), typeArgs) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 369) new ClassOrInterfaceType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, _n.getName(), typeArgs) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 373) r.setComment(comment) ==> void
+ Line 374) r ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 379) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 379) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 381) PrimitiveType r = new PrimitiveType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getType()) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 381) new PrimitiveType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getType()) ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 385) r.setComment(comment) ==> void
+ Line 386) r ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 391) List<AnnotationExpr> ann = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 391) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 392) Type type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 392) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 393) List<List<AnnotationExpr>> arraysAnnotations = _n.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 393) _n.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 394) List<List<AnnotationExpr>> _arraysAnnotations = null ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 394) null ==> null
+ Line 395) arraysAnnotations != null ==> boolean
+ Line 396) _arraysAnnotations = new LinkedList<List<AnnotationExpr>>() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 397) List<AnnotationExpr> aux ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 397) arraysAnnotations ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 398) _arraysAnnotations.add(visit(aux, _arg)) ==> boolean
+ Line 402) ReferenceType r = new ReferenceType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), type_, _n.getArrayCount(), ann, _arraysAnnotations) ==> com.github.javaparser.ast.type.ReferenceType
+ Line 402) new ReferenceType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), type_, _n.getArrayCount(), ann, _arraysAnnotations) ==> com.github.javaparser.ast.type.ReferenceType
+ Line 405) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 405) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 406) r.setComment(comment) ==> void
+ Line 407) r ==> com.github.javaparser.ast.type.ReferenceType
+ Line 412) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 412) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 414) VoidType r = new VoidType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.type.VoidType
+ Line 414) new VoidType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.type.VoidType
+ Line 415) r.setComment(comment) ==> void
+ Line 416) r ==> com.github.javaparser.ast.type.VoidType
+ Line 421) ReferenceType ext = cloneNodes(_n.getExtends(), _arg) ==> com.github.javaparser.ast.type.ReferenceType
+ Line 421) cloneNodes(_n.getExtends(), _arg) ==> com.github.javaparser.ast.type.ReferenceType
+ Line 422) ReferenceType sup = cloneNodes(_n.getSuper(), _arg) ==> com.github.javaparser.ast.type.ReferenceType
+ Line 422) cloneNodes(_n.getSuper(), _arg) ==> com.github.javaparser.ast.type.ReferenceType
+ Line 423) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 423) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 425) WildcardType r = new WildcardType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), ext, sup) ==> com.github.javaparser.ast.type.WildcardType
+ Line 425) new WildcardType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), ext, sup) ==> com.github.javaparser.ast.type.WildcardType
+ Line 429) r.setComment(comment) ==> void
+ Line 430) r ==> com.github.javaparser.ast.type.WildcardType
+ Line 435) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 435) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 437) UnknownType r = new UnknownType() ==> com.github.javaparser.ast.type.UnknownType
+ Line 437) new UnknownType() ==> com.github.javaparser.ast.type.UnknownType
+ Line 438) r.setComment(comment) ==> void
+ Line 439) r ==> com.github.javaparser.ast.type.UnknownType
+ Line 444) Expression name = cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 444) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 445) Expression index = cloneNodes(_n.getIndex(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 445) cloneNodes(_n.getIndex(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 446) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 446) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 448) ArrayAccessExpr r = new ArrayAccessExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name, index) ==> com.github.javaparser.ast.expr.ArrayAccessExpr
+ Line 448) new ArrayAccessExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name, index) ==> com.github.javaparser.ast.expr.ArrayAccessExpr
+ Line 452) r.setComment(comment) ==> void
+ Line 453) r ==> com.github.javaparser.ast.expr.ArrayAccessExpr
+ Line 458) Type type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 458) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 459) List<Expression> dimensions = visit(_n.getDimensions(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 459) visit(_n.getDimensions(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 460) ArrayCreationExpr r = new ArrayCreationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), type_, dimensions, _n.getArrayCount()) ==> com.github.javaparser.ast.expr.ArrayCreationExpr
+ Line 460) new ArrayCreationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), type_, dimensions, _n.getArrayCount()) ==> com.github.javaparser.ast.expr.ArrayCreationExpr
+ Line 463) _n.getInitializer() != null ==> boolean
+ Line 465) r.setInitializer(cloneNodes(_n.getInitializer(), _arg)) ==> void
+ Line 467) List<List<AnnotationExpr>> arraysAnnotations = _n.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 467) _n.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 468) List<List<AnnotationExpr>> _arraysAnnotations = null ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 468) null ==> null
+ Line 469) arraysAnnotations != null ==> boolean
+ Line 470) _arraysAnnotations = new LinkedList<List<AnnotationExpr>>() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 471) List<AnnotationExpr> aux ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 471) arraysAnnotations ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 472) _arraysAnnotations.add(visit(aux, _arg)) ==> boolean
+ Line 475) r.setArraysAnnotations(_arraysAnnotations) ==> void
+ Line 476) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 476) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 477) r.setComment(comment) ==> void
+ Line 478) r ==> com.github.javaparser.ast.expr.ArrayCreationExpr
+ Line 483) List<Expression> values = visit(_n.getValues(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 483) visit(_n.getValues(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 484) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 484) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 486) ArrayInitializerExpr r = new ArrayInitializerExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), values) ==> com.github.javaparser.ast.expr.ArrayInitializerExpr
+ Line 486) new ArrayInitializerExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), values) ==> com.github.javaparser.ast.expr.ArrayInitializerExpr
+ Line 490) r.setComment(comment) ==> void
+ Line 491) r ==> com.github.javaparser.ast.expr.ArrayInitializerExpr
+ Line 496) Expression target = cloneNodes(_n.getTarget(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 496) cloneNodes(_n.getTarget(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 497) Expression value = cloneNodes(_n.getValue(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 497) cloneNodes(_n.getValue(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 498) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 498) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 500) AssignExpr r = new AssignExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), target, value, _n.getOperator()) ==> com.github.javaparser.ast.expr.AssignExpr
+ Line 500) new AssignExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), target, value, _n.getOperator()) ==> com.github.javaparser.ast.expr.AssignExpr
+ Line 503) r.setComment(comment) ==> void
+ Line 504) r ==> com.github.javaparser.ast.expr.AssignExpr
+ Line 509) Expression left = cloneNodes(_n.getLeft(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 509) cloneNodes(_n.getLeft(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 510) Expression right = cloneNodes(_n.getRight(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 510) cloneNodes(_n.getRight(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 511) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 511) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 513) BinaryExpr r = new BinaryExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), left, right, _n.getOperator()) ==> com.github.javaparser.ast.expr.BinaryExpr
+ Line 513) new BinaryExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), left, right, _n.getOperator()) ==> com.github.javaparser.ast.expr.BinaryExpr
+ Line 517) r.setComment(comment) ==> void
+ Line 518) r ==> com.github.javaparser.ast.expr.BinaryExpr
+ Line 523) Type type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 523) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 524) Expression expr = cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 524) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 525) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 525) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 527) CastExpr r = new CastExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), type_, expr) ==> com.github.javaparser.ast.expr.CastExpr
+ Line 527) new CastExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), type_, expr) ==> com.github.javaparser.ast.expr.CastExpr
+ Line 531) r.setComment(comment) ==> void
+ Line 532) r ==> com.github.javaparser.ast.expr.CastExpr
+ Line 537) Type type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 537) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 538) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 538) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 540) ClassExpr r = new ClassExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), type_) ==> com.github.javaparser.ast.expr.ClassExpr
+ Line 540) new ClassExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), type_) ==> com.github.javaparser.ast.expr.ClassExpr
+ Line 544) r.setComment(comment) ==> void
+ Line 545) r ==> com.github.javaparser.ast.expr.ClassExpr
+ Line 550) Expression condition = cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 550) cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 551) Expression thenExpr = cloneNodes(_n.getThenExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 551) cloneNodes(_n.getThenExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 552) Expression elseExpr = cloneNodes(_n.getElseExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 552) cloneNodes(_n.getElseExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 553) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 553) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 555) ConditionalExpr r = new ConditionalExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), condition, thenExpr, elseExpr) ==> com.github.javaparser.ast.expr.ConditionalExpr
+ Line 555) new ConditionalExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), condition, thenExpr, elseExpr) ==> com.github.javaparser.ast.expr.ConditionalExpr
+ Line 559) r.setComment(comment) ==> void
+ Line 560) r ==> com.github.javaparser.ast.expr.ConditionalExpr
+ Line 565) Expression inner = cloneNodes(_n.getInner(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 565) cloneNodes(_n.getInner(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 566) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 566) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 568) EnclosedExpr r = new EnclosedExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), inner) ==> com.github.javaparser.ast.expr.EnclosedExpr
+ Line 568) new EnclosedExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), inner) ==> com.github.javaparser.ast.expr.EnclosedExpr
+ Line 572) r.setComment(comment) ==> void
+ Line 573) r ==> com.github.javaparser.ast.expr.EnclosedExpr
+ Line 578) Expression scope = cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 578) cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 579) List<Type> typeArgs = visit(_n.getTypeArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 579) visit(_n.getTypeArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 580) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 580) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 582) FieldAccessExpr r = new FieldAccessExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, typeArgs, _n.getField()) ==> com.github.javaparser.ast.expr.FieldAccessExpr
+ Line 582) new FieldAccessExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, typeArgs, _n.getField()) ==> com.github.javaparser.ast.expr.FieldAccessExpr
+ Line 586) r.setComment(comment) ==> void
+ Line 587) r ==> com.github.javaparser.ast.expr.FieldAccessExpr
+ Line 592) Expression expr = cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 592) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 593) Type type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 593) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 594) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 594) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 596) InstanceOfExpr r = new InstanceOfExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr, type_) ==> com.github.javaparser.ast.expr.InstanceOfExpr
+ Line 596) new InstanceOfExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr, type_) ==> com.github.javaparser.ast.expr.InstanceOfExpr
+ Line 600) r.setComment(comment) ==> void
+ Line 601) r ==> com.github.javaparser.ast.expr.InstanceOfExpr
+ Line 606) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 606) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 607) StringLiteralExpr r = new StringLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.StringLiteralExpr
+ Line 607) new StringLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.StringLiteralExpr
+ Line 611) r.setComment(comment) ==> void
+ Line 612) r ==> com.github.javaparser.ast.expr.StringLiteralExpr
+ Line 617) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 617) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 619) IntegerLiteralExpr r = new IntegerLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.IntegerLiteralExpr
+ Line 619) new IntegerLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.IntegerLiteralExpr
+ Line 623) r.setComment(comment) ==> void
+ Line 624) r ==> com.github.javaparser.ast.expr.IntegerLiteralExpr
+ Line 629) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 629) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 631) LongLiteralExpr r = new LongLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.LongLiteralExpr
+ Line 631) new LongLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.LongLiteralExpr
+ Line 635) r.setComment(comment) ==> void
+ Line 636) r ==> com.github.javaparser.ast.expr.LongLiteralExpr
+ Line 641) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 641) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 643) IntegerLiteralMinValueExpr r = new IntegerLiteralMinValueExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr
+ Line 643) new IntegerLiteralMinValueExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr
+ Line 644) r.setComment(comment) ==> void
+ Line 645) r ==> com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr
+ Line 650) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 650) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 652) LongLiteralMinValueExpr r = new LongLiteralMinValueExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.expr.LongLiteralMinValueExpr
+ Line 652) new LongLiteralMinValueExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.expr.LongLiteralMinValueExpr
+ Line 653) r.setComment(comment) ==> void
+ Line 654) r ==> com.github.javaparser.ast.expr.LongLiteralMinValueExpr
+ Line 659) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 659) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 661) CharLiteralExpr r = new CharLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.CharLiteralExpr
+ Line 661) new CharLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.CharLiteralExpr
+ Line 665) r.setComment(comment) ==> void
+ Line 666) r ==> com.github.javaparser.ast.expr.CharLiteralExpr
+ Line 671) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 671) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 673) DoubleLiteralExpr r = new DoubleLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.DoubleLiteralExpr
+ Line 673) new DoubleLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.DoubleLiteralExpr
+ Line 677) r.setComment(comment) ==> void
+ Line 678) r ==> com.github.javaparser.ast.expr.DoubleLiteralExpr
+ Line 683) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 683) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 685) BooleanLiteralExpr r = new BooleanLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.BooleanLiteralExpr
+ Line 685) new BooleanLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getValue()) ==> com.github.javaparser.ast.expr.BooleanLiteralExpr
+ Line 689) r.setComment(comment) ==> void
+ Line 690) r ==> com.github.javaparser.ast.expr.BooleanLiteralExpr
+ Line 695) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 695) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 697) NullLiteralExpr r = new NullLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.expr.NullLiteralExpr
+ Line 697) new NullLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.expr.NullLiteralExpr
+ Line 698) r.setComment(comment) ==> void
+ Line 699) r ==> com.github.javaparser.ast.expr.NullLiteralExpr
+ Line 704) Expression scope = cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 704) cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 705) List<Type> typeArgs = visit(_n.getTypeArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 705) visit(_n.getTypeArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 706) List<Expression> args = visit(_n.getArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 706) visit(_n.getArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 707) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 707) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 709) MethodCallExpr r = new MethodCallExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, typeArgs, _n.getName(), args) ==> com.github.javaparser.ast.expr.MethodCallExpr
+ Line 709) new MethodCallExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, typeArgs, _n.getName(), args) ==> com.github.javaparser.ast.expr.MethodCallExpr
+ Line 713) r.setComment(comment) ==> void
+ Line 714) r ==> com.github.javaparser.ast.expr.MethodCallExpr
+ Line 719) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 719) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 721) NameExpr r = new NameExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getName()) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 721) new NameExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getName()) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 725) r.setComment(comment) ==> void
+ Line 726) r ==> com.github.javaparser.ast.expr.NameExpr
+ Line 731) Expression scope = cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 731) cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 732) ClassOrInterfaceType type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 732) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 733) List<Type> typeArgs = visit(_n.getTypeArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 733) visit(_n.getTypeArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 734) List<Expression> args = visit(_n.getArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 734) visit(_n.getArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 735) List<BodyDeclaration> anonymousBody = visit(_n.getAnonymousClassBody(), _arg) ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 735) visit(_n.getAnonymousClassBody(), _arg) ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 736) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 736) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 738) ObjectCreationExpr r = new ObjectCreationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, type_, typeArgs, args, anonymousBody) ==> com.github.javaparser.ast.expr.ObjectCreationExpr
+ Line 738) new ObjectCreationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, type_, typeArgs, args, anonymousBody) ==> com.github.javaparser.ast.expr.ObjectCreationExpr
+ Line 742) r.setComment(comment) ==> void
+ Line 743) r ==> com.github.javaparser.ast.expr.ObjectCreationExpr
+ Line 748) NameExpr scope = cloneNodes(_n.getQualifier(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 748) cloneNodes(_n.getQualifier(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 749) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 749) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 751) QualifiedNameExpr r = new QualifiedNameExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, _n.getName()) ==> com.github.javaparser.ast.expr.QualifiedNameExpr
+ Line 751) new QualifiedNameExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, _n.getName()) ==> com.github.javaparser.ast.expr.QualifiedNameExpr
+ Line 755) r.setComment(comment) ==> void
+ Line 756) r ==> com.github.javaparser.ast.expr.QualifiedNameExpr
+ Line 761) Expression classExpr = cloneNodes(_n.getClassExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 761) cloneNodes(_n.getClassExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 762) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 762) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 764) ThisExpr r = new ThisExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), classExpr) ==> com.github.javaparser.ast.expr.ThisExpr
+ Line 764) new ThisExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), classExpr) ==> com.github.javaparser.ast.expr.ThisExpr
+ Line 768) r.setComment(comment) ==> void
+ Line 769) r ==> com.github.javaparser.ast.expr.ThisExpr
+ Line 774) Expression classExpr = cloneNodes(_n.getClassExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 774) cloneNodes(_n.getClassExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 775) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 775) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 777) SuperExpr r = new SuperExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), classExpr) ==> com.github.javaparser.ast.expr.SuperExpr
+ Line 777) new SuperExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), classExpr) ==> com.github.javaparser.ast.expr.SuperExpr
+ Line 781) r.setComment(comment) ==> void
+ Line 782) r ==> com.github.javaparser.ast.expr.SuperExpr
+ Line 787) Expression expr = cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 787) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 788) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 788) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 790) UnaryExpr r = new UnaryExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr, _n.getOperator()) ==> com.github.javaparser.ast.expr.UnaryExpr
+ Line 790) new UnaryExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr, _n.getOperator()) ==> com.github.javaparser.ast.expr.UnaryExpr
+ Line 794) r.setComment(comment) ==> void
+ Line 795) r ==> com.github.javaparser.ast.expr.UnaryExpr
+ Line 800) List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 800) visit(_n.getAnnotations(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 801) Type type_ = cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 801) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.type.Type
+ Line 802) List<VariableDeclarator> vars = visit(_n.getVars(), _arg) ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 802) visit(_n.getVars(), _arg) ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 803) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 803) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 805) VariableDeclarationExpr r = new VariableDeclarationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, type_, vars) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 805) new VariableDeclarationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getModifiers(), annotations, type_, vars) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 809) r.setComment(comment) ==> void
+ Line 810) r ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 815) NameExpr name = cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 815) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 816) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 816) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 818) MarkerAnnotationExpr r = new MarkerAnnotationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name) ==> com.github.javaparser.ast.expr.MarkerAnnotationExpr
+ Line 818) new MarkerAnnotationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name) ==> com.github.javaparser.ast.expr.MarkerAnnotationExpr
+ Line 822) r.setComment(comment) ==> void
+ Line 823) r ==> com.github.javaparser.ast.expr.MarkerAnnotationExpr
+ Line 828) NameExpr name = cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 828) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 829) Expression memberValue = cloneNodes(_n.getMemberValue(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 829) cloneNodes(_n.getMemberValue(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 830) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 830) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 832) SingleMemberAnnotationExpr r = new SingleMemberAnnotationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name, memberValue) ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr
+ Line 832) new SingleMemberAnnotationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name, memberValue) ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr
+ Line 836) r.setComment(comment) ==> void
+ Line 837) r ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr
+ Line 842) NameExpr name = cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 842) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 843) List<MemberValuePair> pairs = visit(_n.getPairs(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.MemberValuePair>
+ Line 843) visit(_n.getPairs(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.MemberValuePair>
+ Line 844) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 844) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 846) NormalAnnotationExpr r = new NormalAnnotationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name, pairs) ==> com.github.javaparser.ast.expr.NormalAnnotationExpr
+ Line 846) new NormalAnnotationExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name, pairs) ==> com.github.javaparser.ast.expr.NormalAnnotationExpr
+ Line 850) r.setComment(comment) ==> void
+ Line 851) r ==> com.github.javaparser.ast.expr.NormalAnnotationExpr
+ Line 856) Expression value = cloneNodes(_n.getValue(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 856) cloneNodes(_n.getValue(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 857) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 857) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 859) MemberValuePair r = new MemberValuePair(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getName(), value) ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 859) new MemberValuePair(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getName(), value) ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 863) r.setComment(comment) ==> void
+ Line 864) r ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 869) List<Type> typeArgs = visit(_n.getTypeArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 869) visit(_n.getTypeArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 870) Expression expr = cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 870) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 871) List<Expression> args = visit(_n.getArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 871) visit(_n.getArgs(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 872) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 872) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 874) ExplicitConstructorInvocationStmt r = new ExplicitConstructorInvocationStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), typeArgs, _n.isThis(), expr, args) ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt
+ Line 874) new ExplicitConstructorInvocationStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), typeArgs, _n.isThis(), expr, args) ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt
+ Line 878) r.setComment(comment) ==> void
+ Line 879) r ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt
+ Line 884) TypeDeclaration typeDecl = cloneNodes(_n.getTypeDeclaration(), _arg) ==> com.github.javaparser.ast.body.TypeDeclaration
+ Line 884) cloneNodes(_n.getTypeDeclaration(), _arg) ==> com.github.javaparser.ast.body.TypeDeclaration
+ Line 885) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 885) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 887) TypeDeclarationStmt r = new TypeDeclarationStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), typeDecl) ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt
+ Line 887) new TypeDeclarationStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), typeDecl) ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt
+ Line 891) r.setComment(comment) ==> void
+ Line 892) r ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt
+ Line 897) Expression check = cloneNodes(_n.getCheck(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 897) cloneNodes(_n.getCheck(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 898) Expression message = cloneNodes(_n.getMessage(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 898) cloneNodes(_n.getMessage(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 899) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 899) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 901) AssertStmt r = new AssertStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), check, message) ==> com.github.javaparser.ast.stmt.AssertStmt
+ Line 901) new AssertStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), check, message) ==> com.github.javaparser.ast.stmt.AssertStmt
+ Line 905) r.setComment(comment) ==> void
+ Line 906) r ==> com.github.javaparser.ast.stmt.AssertStmt
+ Line 911) List<Statement> stmts = visit(_n.getStmts(), _arg) ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 911) visit(_n.getStmts(), _arg) ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 912) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 912) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 914) BlockStmt r = new BlockStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), stmts) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 914) new BlockStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), stmts) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 918) r.setComment(comment) ==> void
+ Line 919) r ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 924) Statement stmt = cloneNodes(_n.getStmt(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 924) cloneNodes(_n.getStmt(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 925) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 925) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 927) LabeledStmt r = new LabeledStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getLabel(), stmt) ==> com.github.javaparser.ast.stmt.LabeledStmt
+ Line 927) new LabeledStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getLabel(), stmt) ==> com.github.javaparser.ast.stmt.LabeledStmt
+ Line 931) r.setComment(comment) ==> void
+ Line 932) r ==> com.github.javaparser.ast.stmt.LabeledStmt
+ Line 937) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 937) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 939) EmptyStmt r = new EmptyStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.stmt.EmptyStmt
+ Line 939) new EmptyStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()) ==> com.github.javaparser.ast.stmt.EmptyStmt
+ Line 940) r.setComment(comment) ==> void
+ Line 941) r ==> com.github.javaparser.ast.stmt.EmptyStmt
+ Line 946) Expression expr = cloneNodes(_n.getExpression(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 946) cloneNodes(_n.getExpression(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 947) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 947) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 949) ExpressionStmt r = new ExpressionStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr) ==> com.github.javaparser.ast.stmt.ExpressionStmt
+ Line 949) new ExpressionStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr) ==> com.github.javaparser.ast.stmt.ExpressionStmt
+ Line 953) r.setComment(comment) ==> void
+ Line 954) r ==> com.github.javaparser.ast.stmt.ExpressionStmt
+ Line 959) Expression selector = cloneNodes(_n.getSelector(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 959) cloneNodes(_n.getSelector(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 960) List<SwitchEntryStmt> entries = visit(_n.getEntries(), _arg) ==> java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>
+ Line 960) visit(_n.getEntries(), _arg) ==> java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>
+ Line 961) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 961) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 963) SwitchStmt r = new SwitchStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), selector, entries) ==> com.github.javaparser.ast.stmt.SwitchStmt
+ Line 963) new SwitchStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), selector, entries) ==> com.github.javaparser.ast.stmt.SwitchStmt
+ Line 967) r.setComment(comment) ==> void
+ Line 968) r ==> com.github.javaparser.ast.stmt.SwitchStmt
+ Line 973) Expression label = cloneNodes(_n.getLabel(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 973) cloneNodes(_n.getLabel(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 974) List<Statement> stmts = visit(_n.getStmts(), _arg) ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 974) visit(_n.getStmts(), _arg) ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 975) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 975) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 977) SwitchEntryStmt r = new SwitchEntryStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), label, stmts) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt
+ Line 977) new SwitchEntryStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), label, stmts) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt
+ Line 981) r.setComment(comment) ==> void
+ Line 982) r ==> com.github.javaparser.ast.stmt.SwitchEntryStmt
+ Line 987) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 987) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 989) BreakStmt r = new BreakStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getId()) ==> com.github.javaparser.ast.stmt.BreakStmt
+ Line 989) new BreakStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getId()) ==> com.github.javaparser.ast.stmt.BreakStmt
+ Line 993) r.setComment(comment) ==> void
+ Line 994) r ==> com.github.javaparser.ast.stmt.BreakStmt
+ Line 999) Expression expr = cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 999) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1000) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1000) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1002) ReturnStmt r = new ReturnStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr) ==> com.github.javaparser.ast.stmt.ReturnStmt
+ Line 1002) new ReturnStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr) ==> com.github.javaparser.ast.stmt.ReturnStmt
+ Line 1006) r.setComment(comment) ==> void
+ Line 1007) r ==> com.github.javaparser.ast.stmt.ReturnStmt
+ Line 1012) Expression condition = cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1012) cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1013) Statement thenStmt = cloneNodes(_n.getThenStmt(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1013) cloneNodes(_n.getThenStmt(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1014) Statement elseStmt = cloneNodes(_n.getElseStmt(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1014) cloneNodes(_n.getElseStmt(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1015) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1015) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1017) IfStmt r = new IfStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), condition, thenStmt, elseStmt) ==> com.github.javaparser.ast.stmt.IfStmt
+ Line 1017) new IfStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), condition, thenStmt, elseStmt) ==> com.github.javaparser.ast.stmt.IfStmt
+ Line 1021) r.setComment(comment) ==> void
+ Line 1022) r ==> com.github.javaparser.ast.stmt.IfStmt
+ Line 1027) Expression condition = cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1027) cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1028) Statement body = cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1028) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1029) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1029) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1031) WhileStmt r = new WhileStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), condition, body) ==> com.github.javaparser.ast.stmt.WhileStmt
+ Line 1031) new WhileStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), condition, body) ==> com.github.javaparser.ast.stmt.WhileStmt
+ Line 1035) r.setComment(comment) ==> void
+ Line 1036) r ==> com.github.javaparser.ast.stmt.WhileStmt
+ Line 1041) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1041) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1043) ContinueStmt r = new ContinueStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getId()) ==> com.github.javaparser.ast.stmt.ContinueStmt
+ Line 1043) new ContinueStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getId()) ==> com.github.javaparser.ast.stmt.ContinueStmt
+ Line 1047) r.setComment(comment) ==> void
+ Line 1048) r ==> com.github.javaparser.ast.stmt.ContinueStmt
+ Line 1053) Statement body = cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1053) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1054) Expression condition = cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1054) cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1055) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1055) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1057) DoStmt r = new DoStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), body, condition) ==> com.github.javaparser.ast.stmt.DoStmt
+ Line 1057) new DoStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), body, condition) ==> com.github.javaparser.ast.stmt.DoStmt
+ Line 1061) r.setComment(comment) ==> void
+ Line 1062) r ==> com.github.javaparser.ast.stmt.DoStmt
+ Line 1067) VariableDeclarationExpr var = cloneNodes(_n.getVariable(), _arg) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 1067) cloneNodes(_n.getVariable(), _arg) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 1068) Expression iterable = cloneNodes(_n.getIterable(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1068) cloneNodes(_n.getIterable(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1069) Statement body = cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1069) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1070) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1070) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1072) ForeachStmt r = new ForeachStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), var, iterable, body) ==> com.github.javaparser.ast.stmt.ForeachStmt
+ Line 1072) new ForeachStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), var, iterable, body) ==> com.github.javaparser.ast.stmt.ForeachStmt
+ Line 1076) r.setComment(comment) ==> void
+ Line 1077) r ==> com.github.javaparser.ast.stmt.ForeachStmt
+ Line 1082) List<Expression> init = visit(_n.getInit(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 1082) visit(_n.getInit(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 1083) Expression compare = cloneNodes(_n.getCompare(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1083) cloneNodes(_n.getCompare(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1084) List<Expression> update = visit(_n.getUpdate(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 1084) visit(_n.getUpdate(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 1085) Statement body = cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1085) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1086) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1086) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1088) ForStmt r = new ForStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), init, compare, update, body) ==> com.github.javaparser.ast.stmt.ForStmt
+ Line 1088) new ForStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), init, compare, update, body) ==> com.github.javaparser.ast.stmt.ForStmt
+ Line 1092) r.setComment(comment) ==> void
+ Line 1093) r ==> com.github.javaparser.ast.stmt.ForStmt
+ Line 1098) Expression expr = cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1098) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1099) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1099) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1101) ThrowStmt r = new ThrowStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr) ==> com.github.javaparser.ast.stmt.ThrowStmt
+ Line 1101) new ThrowStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr) ==> com.github.javaparser.ast.stmt.ThrowStmt
+ Line 1105) r.setComment(comment) ==> void
+ Line 1106) r ==> com.github.javaparser.ast.stmt.ThrowStmt
+ Line 1111) Expression expr = cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1111) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1112) BlockStmt block = cloneNodes(_n.getBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 1112) cloneNodes(_n.getBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 1113) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1113) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1115) SynchronizedStmt r = new SynchronizedStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr, block) ==> com.github.javaparser.ast.stmt.SynchronizedStmt
+ Line 1115) new SynchronizedStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), expr, block) ==> com.github.javaparser.ast.stmt.SynchronizedStmt
+ Line 1119) r.setComment(comment) ==> void
+ Line 1120) r ==> com.github.javaparser.ast.stmt.SynchronizedStmt
+ Line 1125) List<VariableDeclarationExpr> resources = visit(_n.getResources(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.VariableDeclarationExpr>
+ Line 1125) visit(_n.getResources(), _arg) ==> java.util.List<com.github.javaparser.ast.expr.VariableDeclarationExpr>
+ Line 1126) BlockStmt tryBlock = cloneNodes(_n.getTryBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 1126) cloneNodes(_n.getTryBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 1127) List<CatchClause> catchs = visit(_n.getCatchs(), _arg) ==> java.util.List<com.github.javaparser.ast.stmt.CatchClause>
+ Line 1127) visit(_n.getCatchs(), _arg) ==> java.util.List<com.github.javaparser.ast.stmt.CatchClause>
+ Line 1128) BlockStmt finallyBlock = cloneNodes(_n.getFinallyBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 1128) cloneNodes(_n.getFinallyBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 1129) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1129) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1131) TryStmt r = new TryStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), resources, tryBlock, catchs, finallyBlock) ==> com.github.javaparser.ast.stmt.TryStmt
+ Line 1131) new TryStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), resources, tryBlock, catchs, finallyBlock) ==> com.github.javaparser.ast.stmt.TryStmt
+ Line 1135) r.setComment(comment) ==> void
+ Line 1136) r ==> com.github.javaparser.ast.stmt.TryStmt
+ Line 1141) MultiTypeParameter except = cloneNodes(_n.getExcept(), _arg) ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 1141) cloneNodes(_n.getExcept(), _arg) ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 1142) BlockStmt catchBlock = cloneNodes(_n.getCatchBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 1142) cloneNodes(_n.getCatchBlock(), _arg) ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 1143) Comment comment = cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1143) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.comments.Comment
+ Line 1145) CatchClause r = new CatchClause(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), except.getModifiers(), except.getAnnotations(), except.getTypes(), except.getId(), catchBlock) ==> com.github.javaparser.ast.stmt.CatchClause
+ Line 1145) new CatchClause(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), except.getModifiers(), except.getAnnotations(), except.getTypes(), except.getId(), catchBlock) ==> com.github.javaparser.ast.stmt.CatchClause
+ Line 1149) r.setComment(comment) ==> void
+ Line 1150) r ==> com.github.javaparser.ast.stmt.CatchClause
+ Line 1156) List<Parameter> lambdaParameters = visit(_n.getParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 1156) visit(_n.getParameters(), _arg) ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 1158) Statement body = cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1158) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.stmt.Statement
+ Line 1160) LambdaExpr r = new LambdaExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), lambdaParameters, body, _n.isParametersEnclosed()) ==> com.github.javaparser.ast.expr.LambdaExpr
+ Line 1160) new LambdaExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), lambdaParameters, body, _n.isParametersEnclosed()) ==> com.github.javaparser.ast.expr.LambdaExpr
+ Line 1164) r ==> com.github.javaparser.ast.expr.LambdaExpr
+ Line 1170) List<TypeParameter> typeParams = visit(_n.getTypeParameters(), arg) ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 1170) visit(_n.getTypeParameters(), arg) ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 1171) Expression scope = cloneNodes(_n.getScope(), arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1171) cloneNodes(_n.getScope(), arg) ==> com.github.javaparser.ast.expr.Expression
+ Line 1173) MethodReferenceExpr r = new MethodReferenceExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, typeParams, _n.getIdentifier()) ==> com.github.javaparser.ast.expr.MethodReferenceExpr
+ Line 1173) new MethodReferenceExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope, typeParams, _n.getIdentifier()) ==> com.github.javaparser.ast.expr.MethodReferenceExpr
+ Line 1176) r ==> com.github.javaparser.ast.expr.MethodReferenceExpr
+ Line 1182) Type t = cloneNodes(n.getType(), arg) ==> com.github.javaparser.ast.type.Type
+ Line 1182) cloneNodes(n.getType(), arg) ==> com.github.javaparser.ast.type.Type
+ Line 1184) TypeExpr r = new TypeExpr(n.getBeginLine(), n.getBeginColumn(), n.getEndLine(), n.getEndColumn(), t) ==> com.github.javaparser.ast.expr.TypeExpr
+ Line 1184) new TypeExpr(n.getBeginLine(), n.getBeginColumn(), n.getEndLine(), n.getEndColumn(), t) ==> com.github.javaparser.ast.expr.TypeExpr
+ Line 1187) r ==> com.github.javaparser.ast.expr.TypeExpr
+ Line 1191) _nodes == null ==> boolean
+ Line 1192) null ==> null
+ Line 1193) List<T> r = new ArrayList<T>(_nodes.size()) ==> java.util.List<T>
+ Line 1193) new ArrayList<T>(_nodes.size()) ==> java.util.ArrayList<T>
+ Line 1194) T n ==> T
+ Line 1194) _nodes ==> java.util.List<T>
+ Line 1195) T rN = cloneNodes(n, _arg) ==> T
+ Line 1195) cloneNodes(n, _arg) ==> T
+ Line 1196) rN != null ==> boolean
+ Line 1197) r.add(rN) ==> boolean
+ Line 1199) r ==> java.util.List<T>
+ Line 1203) _node == null ==> boolean
+ Line 1204) null ==> null
+ Line 1205) Node r = _node.accept(this, _arg) ==> com.github.javaparser.ast.Node
+ Line 1205) _node.accept(this, _arg) ==> com.github.javaparser.ast.Node
+ Line 1206) r == null ==> boolean
+ Line 1207) null ==> null
+ Line 1208) (T) r ==> T
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_DumpVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_DumpVisitor.txt
new file mode 100644
index 000000000..248452470
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_DumpVisitor.txt
@@ -0,0 +1,1076 @@
+
+[ Class com.github.javaparser.ast.visitor.DumpVisitor ]
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.visitor.VoidVisitor
+ Line 93) true ==> boolean
+ Line 97) this.printComments = printComments ==> boolean
+
+[ Class com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter ]
+ superclass: java.lang.Object
+ Line 102) 0 ==> int
+ Line 104) false ==> boolean
+ Line 106) new StringBuilder() ==> java.lang.StringBuilder
+ Line 109) level++ ==> int
+ Line 113) level-- ==> int
+ Line 117) int i = 0 ==> int
+ Line 117) 0 ==> int
+ Line 117) i < level ==> boolean
+ Line 117) i++ ==> int
+ Line 118) buf.append(" ") ==> java.lang.StringBuilder
+ Line 123) !indented ==> boolean
+ Line 124) makeIndent() ==> void
+ Line 125) indented = true ==> boolean
+ Line 127) buf.append(arg) ==> java.lang.StringBuilder
+ Line 131) print(arg) ==> void
+ Line 132) printLn() ==> void
+ Line 136) buf.append(System.getProperty("line.separator")) ==> java.lang.StringBuilder
+ Line 137) indented = false ==> boolean
+ Line 141) buf.toString() ==> java.lang.String
+ Line 145) getSource() ==> java.lang.String
+ Line 149) new SourcePrinter() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter
+ Line 152) printer.getSource() ==> java.lang.String
+ Line 156) ModifierSet.isPrivate(modifiers) ==> boolean
+ Line 157) printer.print("private ") ==> void
+ Line 159) ModifierSet.isProtected(modifiers) ==> boolean
+ Line 160) printer.print("protected ") ==> void
+ Line 162) ModifierSet.isPublic(modifiers) ==> boolean
+ Line 163) printer.print("public ") ==> void
+ Line 165) ModifierSet.isAbstract(modifiers) ==> boolean
+ Line 166) printer.print("abstract ") ==> void
+ Line 168) ModifierSet.isStatic(modifiers) ==> boolean
+ Line 169) printer.print("static ") ==> void
+ Line 171) ModifierSet.isFinal(modifiers) ==> boolean
+ Line 172) printer.print("final ") ==> void
+ Line 174) ModifierSet.isNative(modifiers) ==> boolean
+ Line 175) printer.print("native ") ==> void
+ Line 177) ModifierSet.isStrictfp(modifiers) ==> boolean
+ Line 178) printer.print("strictfp ") ==> void
+ Line 180) ModifierSet.isSynchronized(modifiers) ==> boolean
+ Line 181) printer.print("synchronized ") ==> void
+ Line 183) ModifierSet.isTransient(modifiers) ==> boolean
+ Line 184) printer.print("transient ") ==> void
+ Line 186) ModifierSet.isVolatile(modifiers) ==> boolean
+ Line 187) printer.print("volatile ") ==> void
+ Line 192) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 192) members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 193) printer.printLn() ==> void
+ Line 194) member.accept(this, arg) ==> void
+ Line 195) printer.printLn() ==> void
+ Line 200) !isNullOrEmpty(annotations) ==> boolean
+ Line 201) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 201) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 202) a.accept(this, arg) ==> void
+ Line 203) printer.printLn() ==> void
+ Line 209) !isNullOrEmpty(annotations) ==> boolean
+ Line 210) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 210) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 211) a.accept(this, arg) ==> void
+ Line 212) printer.print(" ") ==> void
+ Line 218) !isNullOrEmpty(args) ==> boolean
+ Line 219) printer.print("<") ==> void
+ Line 220) final Iterator<Type> i = args.iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.Type>
+ Line 220) args.iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.Type>
+ Line 220) i.hasNext() ==> boolean
+ Line 221) final Type t = i.next() ==> com.github.javaparser.ast.type.Type
+ Line 221) i.next() ==> com.github.javaparser.ast.type.Type
+ Line 222) t.accept(this, arg) ==> void
+ Line 223) i.hasNext() ==> boolean
+ Line 224) printer.print(", ") ==> void
+ Line 227) printer.print(">") ==> void
+ Line 232) !isNullOrEmpty(args) ==> boolean
+ Line 233) printer.print("<") ==> void
+ Line 234) final Iterator<TypeParameter> i = args.iterator() ==> java.util.Iterator<com.github.javaparser.ast.TypeParameter>
+ Line 234) args.iterator() ==> java.util.Iterator<com.github.javaparser.ast.TypeParameter>
+ Line 234) i.hasNext() ==> boolean
+ Line 235) final TypeParameter t = i.next() ==> com.github.javaparser.ast.TypeParameter
+ Line 235) i.next() ==> com.github.javaparser.ast.TypeParameter
+ Line 236) t.accept(this, arg) ==> void
+ Line 237) i.hasNext() ==> boolean
+ Line 238) printer.print(", ") ==> void
+ Line 241) printer.print(">") ==> void
+ Line 246) printer.print("(") ==> void
+ Line 247) !isNullOrEmpty(args) ==> boolean
+ Line 248) final Iterator<Expression> i = args.iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.Expression>
+ Line 248) args.iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.Expression>
+ Line 248) i.hasNext() ==> boolean
+ Line 249) final Expression e = i.next() ==> com.github.javaparser.ast.expr.Expression
+ Line 249) i.next() ==> com.github.javaparser.ast.expr.Expression
+ Line 250) e.accept(this, arg) ==> void
+ Line 251) i.hasNext() ==> boolean
+ Line 252) printer.print(", ") ==> void
+ Line 256) printer.print(")") ==> void
+ Line 260) javadoc != null ==> boolean
+ Line 261) javadoc.accept(this, arg) ==> void
+ Line 266) javacomment != null ==> boolean
+ Line 267) javacomment.accept(this, arg) ==> void
+ Line 272) printJavaComment(n.getComment(), arg) ==> void
+ Line 274) n.getPackage() != null ==> boolean
+ Line 275) n.getPackage().accept(this, arg) ==> void
+ Line 278) n.getImports() != null ==> boolean
+ Line 279) final ImportDeclaration i ==> com.github.javaparser.ast.ImportDeclaration
+ Line 279) n.getImports() ==> java.util.List<com.github.javaparser.ast.ImportDeclaration>
+ Line 280) i.accept(this, arg) ==> void
+ Line 282) printer.printLn() ==> void
+ Line 285) n.getTypes() != null ==> boolean
+ Line 286) final Iterator<TypeDeclaration> i = n.getTypes().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 286) n.getTypes().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 286) i.hasNext() ==> boolean
+ Line 287) i.next().accept(this, arg) ==> void
+ Line 288) printer.printLn() ==> void
+ Line 289) i.hasNext() ==> boolean
+ Line 290) printer.printLn() ==> void
+ Line 295) printOrphanCommentsEnding(n) ==> void
+ Line 299) printJavaComment(n.getComment(), arg) ==> void
+ Line 300) printAnnotations(n.getAnnotations(), arg) ==> void
+ Line 301) printer.print("package ") ==> void
+ Line 302) n.getName().accept(this, arg) ==> void
+ Line 303) printer.printLn(";") ==> void
+ Line 304) printer.printLn() ==> void
+ Line 306) printOrphanCommentsEnding(n) ==> void
+ Line 310) printJavaComment(n.getComment(), arg) ==> void
+ Line 311) printer.print(n.getName()) ==> void
+ Line 313) printOrphanCommentsEnding(n) ==> void
+ Line 317) printJavaComment(n.getComment(), arg) ==> void
+ Line 318) n.getQualifier().accept(this, arg) ==> void
+ Line 319) printer.print(".") ==> void
+ Line 320) printer.print(n.getName()) ==> void
+ Line 322) printOrphanCommentsEnding(n) ==> void
+ Line 326) printJavaComment(n.getComment(), arg) ==> void
+ Line 327) printer.print("import ") ==> void
+ Line 328) n.isStatic() ==> boolean
+ Line 329) printer.print("static ") ==> void
+ Line 331) n.getName().accept(this, arg) ==> void
+ Line 332) n.isAsterisk() ==> boolean
+ Line 333) printer.print(".*") ==> void
+ Line 335) printer.printLn(";") ==> void
+ Line 337) printOrphanCommentsEnding(n) ==> void
+ Line 341) printJavaComment(n.getComment(), arg) ==> void
+ Line 342) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 343) printMemberAnnotations(n.getAnnotations(), arg) ==> void
+ Line 344) printModifiers(n.getModifiers()) ==> void
+ Line 346) n.isInterface() ==> boolean
+ Line 347) printer.print("interface ") ==> void
+ Line 349) printer.print("class ") ==> void
+ Line 352) printer.print(n.getName()) ==> void
+ Line 354) printTypeParameters(n.getTypeParameters(), arg) ==> void
+ Line 356) !isNullOrEmpty(n.getExtends()) ==> boolean
+ Line 357) printer.print(" extends ") ==> void
+ Line 358) final Iterator<ClassOrInterfaceType> i = n.getExtends().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 358) n.getExtends().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 358) i.hasNext() ==> boolean
+ Line 359) final ClassOrInterfaceType c = i.next() ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 359) i.next() ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 360) c.accept(this, arg) ==> void
+ Line 361) i.hasNext() ==> boolean
+ Line 362) printer.print(", ") ==> void
+ Line 367) !isNullOrEmpty(n.getImplements()) ==> boolean
+ Line 368) printer.print(" implements ") ==> void
+ Line 369) final Iterator<ClassOrInterfaceType> i = n.getImplements().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 369) n.getImplements().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 369) i.hasNext() ==> boolean
+ Line 370) final ClassOrInterfaceType c = i.next() ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 370) i.next() ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 371) c.accept(this, arg) ==> void
+ Line 372) i.hasNext() ==> boolean
+ Line 373) printer.print(", ") ==> void
+ Line 378) printer.printLn(" {") ==> void
+ Line 379) printer.indent() ==> void
+ Line 380) !isNullOrEmpty(n.getMembers()) ==> boolean
+ Line 381) printMembers(n.getMembers(), arg) ==> void
+ Line 384) printOrphanCommentsEnding(n) ==> void
+ Line 386) printer.unindent() ==> void
+ Line 387) printer.print("}") ==> void
+ Line 391) printJavaComment(n.getComment(), arg) ==> void
+ Line 392) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 393) printer.print(";") ==> void
+ Line 395) printOrphanCommentsEnding(n) ==> void
+ Line 399) printer.print("/**") ==> void
+ Line 400) printer.print(n.getContent()) ==> void
+ Line 401) printer.printLn("*/") ==> void
+ Line 405) printJavaComment(n.getComment(), arg) ==> void
+ Line 407) n.getAnnotations() != null ==> boolean
+ Line 408) AnnotationExpr ae ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 408) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 409) ae.accept(this, arg) ==> void
+ Line 410) printer.print(" ") ==> void
+ Line 414) n.getScope() != null ==> boolean
+ Line 415) n.getScope().accept(this, arg) ==> void
+ Line 416) printer.print(".") ==> void
+ Line 418) printer.print(n.getName()) ==> void
+ Line 419) printTypeArgs(n.getTypeArgs(), arg) ==> void
+ Line 423) printJavaComment(n.getComment(), arg) ==> void
+ Line 424) n.getAnnotations() != null ==> boolean
+ Line 425) AnnotationExpr ann ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 425) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 426) ann.accept(this, arg) ==> void
+ Line 427) printer.print(" ") ==> void
+ Line 430) printer.print(n.getName()) ==> void
+ Line 431) n.getTypeBound() != null ==> boolean
+ Line 432) printer.print(" extends ") ==> void
+ Line 433) final Iterator<ClassOrInterfaceType> i = n.getTypeBound().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 433) n.getTypeBound().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 433) i.hasNext() ==> boolean
+ Line 434) final ClassOrInterfaceType c = i.next() ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 434) i.next() ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 435) c.accept(this, arg) ==> void
+ Line 436) i.hasNext() ==> boolean
+ Line 437) printer.print(" & ") ==> void
+ Line 444) printJavaComment(n.getComment(), arg) ==> void
+ Line 445) n.getAnnotations() != null ==> boolean
+ Line 446) AnnotationExpr ae ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 446) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 447) ae.accept(this, arg) ==> void
+ Line 448) printer.print(" ") ==> void
+ Line 451) n.getType() ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 452) Boolean ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 453) printer.print("boolean") ==> void
+ Line 455) Byte ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 456) printer.print("byte") ==> void
+ Line 458) Char ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 459) printer.print("char") ==> void
+ Line 461) Double ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 462) printer.print("double") ==> void
+ Line 464) Float ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 465) printer.print("float") ==> void
+ Line 467) Int ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 468) printer.print("int") ==> void
+ Line 470) Long ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 471) printer.print("long") ==> void
+ Line 473) Short ==> com.github.javaparser.ast.type.PrimitiveType.Primitive
+ Line 474) printer.print("short") ==> void
+ Line 480) printJavaComment(n.getComment(), arg) ==> void
+ Line 481) n.getAnnotations() != null ==> boolean
+ Line 482) AnnotationExpr ae ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 482) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 483) ae.accept(this, arg) ==> void
+ Line 484) printer.print(" ") ==> void
+ Line 487) n.getType().accept(this, arg) ==> void
+ Line 488) List<List<AnnotationExpr>> arraysAnnotations = n.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 488) n.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 489) int i = 0 ==> int
+ Line 489) 0 ==> int
+ Line 489) i < n.getArrayCount() ==> boolean
+ Line 489) i++ ==> int
+ Line 490) arraysAnnotations != null && i < arraysAnnotations.size() ==> boolean
+ Line 491) List<AnnotationExpr> annotations = arraysAnnotations.get(i) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 491) arraysAnnotations.get(i) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 492) annotations != null ==> boolean
+ Line 493) AnnotationExpr ae ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 493) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 494) printer.print(" ") ==> void
+ Line 495) ae.accept(this, arg) ==> void
+ Line 500) printer.print("[]") ==> void
+ Line 505) printJavaComment(n.getComment(), arg) ==> void
+ Line 506) n.getAnnotations() != null ==> boolean
+ Line 507) AnnotationExpr ae ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 507) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 508) printer.print(" ") ==> void
+ Line 509) ae.accept(this, arg) ==> void
+ Line 512) printer.print("?") ==> void
+ Line 513) n.getExtends() != null ==> boolean
+ Line 514) printer.print(" extends ") ==> void
+ Line 515) n.getExtends().accept(this, arg) ==> void
+ Line 517) n.getSuper() != null ==> boolean
+ Line 518) printer.print(" super ") ==> void
+ Line 519) n.getSuper().accept(this, arg) ==> void
+ Line 528) printOrphanCommentsBeforeThisChildNode(n) ==> void
+ Line 530) printJavaComment(n.getComment(), arg) ==> void
+ Line 531) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 532) printMemberAnnotations(n.getAnnotations(), arg) ==> void
+ Line 533) printModifiers(n.getModifiers()) ==> void
+ Line 534) n.getType().accept(this, arg) ==> void
+ Line 536) printer.print(" ") ==> void
+ Line 537) final Iterator<VariableDeclarator> i = n.getVariables().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 537) n.getVariables().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 537) i.hasNext() ==> boolean
+ Line 538) final VariableDeclarator var = i.next() ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 538) i.next() ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 539) var.accept(this, arg) ==> void
+ Line 540) i.hasNext() ==> boolean
+ Line 541) printer.print(", ") ==> void
+ Line 545) printer.print(";") ==> void
+ Line 549) printJavaComment(n.getComment(), arg) ==> void
+ Line 550) n.getId().accept(this, arg) ==> void
+ Line 551) n.getInit() != null ==> boolean
+ Line 552) printer.print(" = ") ==> void
+ Line 553) n.getInit().accept(this, arg) ==> void
+ Line 558) printJavaComment(n.getComment(), arg) ==> void
+ Line 559) printer.print(n.getName()) ==> void
+ Line 560) int i = 0 ==> int
+ Line 560) 0 ==> int
+ Line 560) i < n.getArrayCount() ==> boolean
+ Line 560) i++ ==> int
+ Line 561) printer.print("[]") ==> void
+ Line 566) printJavaComment(n.getComment(), arg) ==> void
+ Line 567) printer.print("{") ==> void
+ Line 568) n.getValues() != null ==> boolean
+ Line 569) printer.print(" ") ==> void
+ Line 570) final Iterator<Expression> i = n.getValues().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.Expression>
+ Line 570) n.getValues().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.Expression>
+ Line 570) i.hasNext() ==> boolean
+ Line 571) final Expression expr = i.next() ==> com.github.javaparser.ast.expr.Expression
+ Line 571) i.next() ==> com.github.javaparser.ast.expr.Expression
+ Line 572) expr.accept(this, arg) ==> void
+ Line 573) i.hasNext() ==> boolean
+ Line 574) printer.print(", ") ==> void
+ Line 577) printer.print(" ") ==> void
+ Line 579) printer.print("}") ==> void
+ Line 583) printJavaComment(n.getComment(), arg) ==> void
+ Line 584) printer.print("void") ==> void
+ Line 588) printJavaComment(n.getComment(), arg) ==> void
+ Line 589) n.getName().accept(this, arg) ==> void
+ Line 590) printer.print("[") ==> void
+ Line 591) n.getIndex().accept(this, arg) ==> void
+ Line 592) printer.print("]") ==> void
+ Line 596) printJavaComment(n.getComment(), arg) ==> void
+ Line 597) printer.print("new ") ==> void
+ Line 598) n.getType().accept(this, arg) ==> void
+ Line 599) List<List<AnnotationExpr>> arraysAnnotations = n.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 599) n.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 600) n.getDimensions() != null ==> boolean
+ Line 601) int j = 0 ==> int
+ Line 601) 0 ==> int
+ Line 602) final Expression dim ==> com.github.javaparser.ast.expr.Expression
+ Line 602) n.getDimensions() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 604) arraysAnnotations != null && j < arraysAnnotations.size() ==> boolean
+ Line 605) List<AnnotationExpr> annotations = arraysAnnotations.get(j) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 605) arraysAnnotations.get(j) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 606) annotations != null ==> boolean
+ Line 607) AnnotationExpr ae ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 607) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 608) printer.print(" ") ==> void
+ Line 609) ae.accept(this, arg) ==> void
+ Line 613) printer.print("[") ==> void
+ Line 614) dim.accept(this, arg) ==> void
+ Line 615) printer.print("]") ==> void
+ Line 616) j++ ==> int
+ Line 618) int i = 0 ==> int
+ Line 618) 0 ==> int
+ Line 618) i < n.getArrayCount() ==> boolean
+ Line 618) i++ ==> int
+ Line 619) arraysAnnotations != null && i < arraysAnnotations.size() ==> boolean
+ Line 621) List<AnnotationExpr> annotations = arraysAnnotations.get(i) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 621) arraysAnnotations.get(i) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 622) annotations != null ==> boolean
+ Line 623) AnnotationExpr ae ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 623) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 624) printer.print(" ") ==> void
+ Line 625) ae.accept(this, arg) ==> void
+ Line 630) printer.print("[]") ==> void
+ Line 634) int i = 0 ==> int
+ Line 634) 0 ==> int
+ Line 634) i < n.getArrayCount() ==> boolean
+ Line 634) i++ ==> int
+ Line 635) arraysAnnotations != null && i < arraysAnnotations.size() ==> boolean
+ Line 636) List<AnnotationExpr> annotations = arraysAnnotations.get(i) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 636) arraysAnnotations.get(i) ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 637) annotations != null ==> boolean
+ Line 638) AnnotationExpr ae ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 638) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 639) ae.accept(this, arg) ==> void
+ Line 640) printer.print(" ") ==> void
+ Line 644) printer.print("[]") ==> void
+ Line 646) printer.print(" ") ==> void
+ Line 647) n.getInitializer().accept(this, arg) ==> void
+ Line 652) printJavaComment(n.getComment(), arg) ==> void
+ Line 653) n.getTarget().accept(this, arg) ==> void
+ Line 654) printer.print(" ") ==> void
+ Line 655) n.getOperator() ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 656) assign ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 657) printer.print("=") ==> void
+ Line 659) and ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 660) printer.print("&=") ==> void
+ Line 662) or ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 663) printer.print("|=") ==> void
+ Line 665) xor ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 666) printer.print("^=") ==> void
+ Line 668) plus ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 669) printer.print("+=") ==> void
+ Line 671) minus ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 672) printer.print("-=") ==> void
+ Line 674) rem ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 675) printer.print("%=") ==> void
+ Line 677) slash ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 678) printer.print("/=") ==> void
+ Line 680) star ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 681) printer.print("*=") ==> void
+ Line 683) lShift ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 684) printer.print("<<=") ==> void
+ Line 686) rSignedShift ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 687) printer.print(">>=") ==> void
+ Line 689) rUnsignedShift ==> com.github.javaparser.ast.expr.AssignExpr.Operator
+ Line 690) printer.print(">>>=") ==> void
+ Line 693) printer.print(" ") ==> void
+ Line 694) n.getValue().accept(this, arg) ==> void
+ Line 698) printJavaComment(n.getComment(), arg) ==> void
+ Line 699) n.getLeft().accept(this, arg) ==> void
+ Line 700) printer.print(" ") ==> void
+ Line 701) n.getOperator() ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 702) or ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 703) printer.print("||") ==> void
+ Line 705) and ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 706) printer.print("&&") ==> void
+ Line 708) binOr ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 709) printer.print("|") ==> void
+ Line 711) binAnd ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 712) printer.print("&") ==> void
+ Line 714) xor ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 715) printer.print("^") ==> void
+ Line 717) equals ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 718) printer.print("==") ==> void
+ Line 720) notEquals ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 721) printer.print("!=") ==> void
+ Line 723) less ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 724) printer.print("<") ==> void
+ Line 726) greater ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 727) printer.print(">") ==> void
+ Line 729) lessEquals ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 730) printer.print("<=") ==> void
+ Line 732) greaterEquals ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 733) printer.print(">=") ==> void
+ Line 735) lShift ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 736) printer.print("<<") ==> void
+ Line 738) rSignedShift ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 739) printer.print(">>") ==> void
+ Line 741) rUnsignedShift ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 742) printer.print(">>>") ==> void
+ Line 744) plus ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 745) printer.print("+") ==> void
+ Line 747) minus ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 748) printer.print("-") ==> void
+ Line 750) times ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 751) printer.print("*") ==> void
+ Line 753) divide ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 754) printer.print("/") ==> void
+ Line 756) remainder ==> com.github.javaparser.ast.expr.BinaryExpr.Operator
+ Line 757) printer.print("%") ==> void
+ Line 760) printer.print(" ") ==> void
+ Line 761) n.getRight().accept(this, arg) ==> void
+ Line 765) printJavaComment(n.getComment(), arg) ==> void
+ Line 766) printer.print("(") ==> void
+ Line 767) n.getType().accept(this, arg) ==> void
+ Line 768) printer.print(") ") ==> void
+ Line 769) n.getExpr().accept(this, arg) ==> void
+ Line 773) printJavaComment(n.getComment(), arg) ==> void
+ Line 774) n.getType().accept(this, arg) ==> void
+ Line 775) printer.print(".class") ==> void
+ Line 779) printJavaComment(n.getComment(), arg) ==> void
+ Line 780) n.getCondition().accept(this, arg) ==> void
+ Line 781) printer.print(" ? ") ==> void
+ Line 782) n.getThenExpr().accept(this, arg) ==> void
+ Line 783) printer.print(" : ") ==> void
+ Line 784) n.getElseExpr().accept(this, arg) ==> void
+ Line 788) printJavaComment(n.getComment(), arg) ==> void
+ Line 789) printer.print("(") ==> void
+ Line 790) n.getInner() != null ==> boolean
+ Line 791) n.getInner().accept(this, arg) ==> void
+ Line 793) printer.print(")") ==> void
+ Line 797) printJavaComment(n.getComment(), arg) ==> void
+ Line 798) n.getScope().accept(this, arg) ==> void
+ Line 799) printer.print(".") ==> void
+ Line 800) printer.print(n.getField()) ==> void
+ Line 804) printJavaComment(n.getComment(), arg) ==> void
+ Line 805) n.getExpr().accept(this, arg) ==> void
+ Line 806) printer.print(" instanceof ") ==> void
+ Line 807) n.getType().accept(this, arg) ==> void
+ Line 811) printJavaComment(n.getComment(), arg) ==> void
+ Line 812) printer.print("'") ==> void
+ Line 813) printer.print(n.getValue()) ==> void
+ Line 814) printer.print("'") ==> void
+ Line 818) printJavaComment(n.getComment(), arg) ==> void
+ Line 819) printer.print(n.getValue()) ==> void
+ Line 823) printJavaComment(n.getComment(), arg) ==> void
+ Line 824) printer.print(n.getValue()) ==> void
+ Line 828) printJavaComment(n.getComment(), arg) ==> void
+ Line 829) printer.print(n.getValue()) ==> void
+ Line 833) printJavaComment(n.getComment(), arg) ==> void
+ Line 834) printer.print(n.getValue()) ==> void
+ Line 838) printJavaComment(n.getComment(), arg) ==> void
+ Line 839) printer.print(n.getValue()) ==> void
+ Line 843) printJavaComment(n.getComment(), arg) ==> void
+ Line 844) printer.print("\"") ==> void
+ Line 845) printer.print(n.getValue()) ==> void
+ Line 846) printer.print("\"") ==> void
+ Line 850) printJavaComment(n.getComment(), arg) ==> void
+ Line 851) printer.print(String.valueOf(n.getValue())) ==> void
+ Line 855) printJavaComment(n.getComment(), arg) ==> void
+ Line 856) printer.print("null") ==> void
+ Line 860) printJavaComment(n.getComment(), arg) ==> void
+ Line 861) n.getClassExpr() != null ==> boolean
+ Line 862) n.getClassExpr().accept(this, arg) ==> void
+ Line 863) printer.print(".") ==> void
+ Line 865) printer.print("this") ==> void
+ Line 869) printJavaComment(n.getComment(), arg) ==> void
+ Line 870) n.getClassExpr() != null ==> boolean
+ Line 871) n.getClassExpr().accept(this, arg) ==> void
+ Line 872) printer.print(".") ==> void
+ Line 874) printer.print("super") ==> void
+ Line 878) printJavaComment(n.getComment(), arg) ==> void
+ Line 879) n.getScope() != null ==> boolean
+ Line 880) n.getScope().accept(this, arg) ==> void
+ Line 881) printer.print(".") ==> void
+ Line 883) printTypeArgs(n.getTypeArgs(), arg) ==> void
+ Line 884) printer.print(n.getName()) ==> void
+ Line 885) printArguments(n.getArgs(), arg) ==> void
+ Line 889) printJavaComment(n.getComment(), arg) ==> void
+ Line 890) n.getScope() != null ==> boolean
+ Line 891) n.getScope().accept(this, arg) ==> void
+ Line 892) printer.print(".") ==> void
+ Line 895) printer.print("new ") ==> void
+ Line 897) printTypeArgs(n.getTypeArgs(), arg) ==> void
+ Line 898) !isNullOrEmpty(n.getTypeArgs()) ==> boolean
+ Line 899) printer.print(" ") ==> void
+ Line 902) n.getType().accept(this, arg) ==> void
+ Line 904) printArguments(n.getArgs(), arg) ==> void
+ Line 906) n.getAnonymousClassBody() != null ==> boolean
+ Line 907) printer.printLn(" {") ==> void
+ Line 908) printer.indent() ==> void
+ Line 909) printMembers(n.getAnonymousClassBody(), arg) ==> void
+ Line 910) printer.unindent() ==> void
+ Line 911) printer.print("}") ==> void
+ Line 916) printJavaComment(n.getComment(), arg) ==> void
+ Line 917) n.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 918) positive ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 919) printer.print("+") ==> void
+ Line 921) negative ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 922) printer.print("-") ==> void
+ Line 924) inverse ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 925) printer.print("~") ==> void
+ Line 927) not ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 928) printer.print("!") ==> void
+ Line 930) preIncrement ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 931) printer.print("++") ==> void
+ Line 933) preDecrement ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 934) printer.print("--") ==> void
+ Line 939) n.getExpr().accept(this, arg) ==> void
+ Line 941) n.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 942) posIncrement ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 943) printer.print("++") ==> void
+ Line 945) posDecrement ==> com.github.javaparser.ast.expr.UnaryExpr.Operator
+ Line 946) printer.print("--") ==> void
+ Line 953) printJavaComment(n.getComment(), arg) ==> void
+ Line 954) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 955) printMemberAnnotations(n.getAnnotations(), arg) ==> void
+ Line 956) printModifiers(n.getModifiers()) ==> void
+ Line 958) printTypeParameters(n.getTypeParameters(), arg) ==> void
+ Line 959) n.getTypeParameters() != null ==> boolean
+ Line 960) printer.print(" ") ==> void
+ Line 962) printer.print(n.getName()) ==> void
+ Line 964) printer.print("(") ==> void
+ Line 965) n.getParameters() != null ==> boolean
+ Line 966) final Iterator<Parameter> i = n.getParameters().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.Parameter>
+ Line 966) n.getParameters().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.Parameter>
+ Line 966) i.hasNext() ==> boolean
+ Line 967) final Parameter p = i.next() ==> com.github.javaparser.ast.body.Parameter
+ Line 967) i.next() ==> com.github.javaparser.ast.body.Parameter
+ Line 968) p.accept(this, arg) ==> void
+ Line 969) i.hasNext() ==> boolean
+ Line 970) printer.print(", ") ==> void
+ Line 974) printer.print(")") ==> void
+ Line 976) !isNullOrEmpty(n.getThrows()) ==> boolean
+ Line 977) printer.print(" throws ") ==> void
+ Line 978) final Iterator<NameExpr> i = n.getThrows().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.NameExpr>
+ Line 978) n.getThrows().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.NameExpr>
+ Line 978) i.hasNext() ==> boolean
+ Line 979) final NameExpr name = i.next() ==> com.github.javaparser.ast.expr.NameExpr
+ Line 979) i.next() ==> com.github.javaparser.ast.expr.NameExpr
+ Line 980) name.accept(this, arg) ==> void
+ Line 981) i.hasNext() ==> boolean
+ Line 982) printer.print(", ") ==> void
+ Line 986) printer.print(" ") ==> void
+ Line 987) n.getBlock().accept(this, arg) ==> void
+ Line 991) printOrphanCommentsBeforeThisChildNode(n) ==> void
+ Line 993) printJavaComment(n.getComment(), arg) ==> void
+ Line 994) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 995) printMemberAnnotations(n.getAnnotations(), arg) ==> void
+ Line 996) printModifiers(n.getModifiers()) ==> void
+ Line 997) n.isDefault() ==> boolean
+ Line 998) printer.print("default ") ==> void
+ Line 1000) printTypeParameters(n.getTypeParameters(), arg) ==> void
+ Line 1001) n.getTypeParameters() != null ==> boolean
+ Line 1002) printer.print(" ") ==> void
+ Line 1005) n.getType().accept(this, arg) ==> void
+ Line 1006) printer.print(" ") ==> void
+ Line 1007) printer.print(n.getName()) ==> void
+ Line 1009) printer.print("(") ==> void
+ Line 1010) n.getParameters() != null ==> boolean
+ Line 1011) final Iterator<Parameter> i = n.getParameters().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.Parameter>
+ Line 1011) n.getParameters().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.Parameter>
+ Line 1011) i.hasNext() ==> boolean
+ Line 1012) final Parameter p = i.next() ==> com.github.javaparser.ast.body.Parameter
+ Line 1012) i.next() ==> com.github.javaparser.ast.body.Parameter
+ Line 1013) p.accept(this, arg) ==> void
+ Line 1014) i.hasNext() ==> boolean
+ Line 1015) printer.print(", ") ==> void
+ Line 1019) printer.print(")") ==> void
+ Line 1021) int i = 0 ==> int
+ Line 1021) 0 ==> int
+ Line 1021) i < n.getArrayCount() ==> boolean
+ Line 1021) i++ ==> int
+ Line 1022) printer.print("[]") ==> void
+ Line 1025) !isNullOrEmpty(n.getThrows()) ==> boolean
+ Line 1026) printer.print(" throws ") ==> void
+ Line 1027) final Iterator<NameExpr> i = n.getThrows().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.NameExpr>
+ Line 1027) n.getThrows().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.NameExpr>
+ Line 1027) i.hasNext() ==> boolean
+ Line 1028) final NameExpr name = i.next() ==> com.github.javaparser.ast.expr.NameExpr
+ Line 1028) i.next() ==> com.github.javaparser.ast.expr.NameExpr
+ Line 1029) name.accept(this, arg) ==> void
+ Line 1030) i.hasNext() ==> boolean
+ Line 1031) printer.print(", ") ==> void
+ Line 1035) n.getBody() == null ==> boolean
+ Line 1036) printer.print(";") ==> void
+ Line 1038) printer.print(" ") ==> void
+ Line 1039) n.getBody().accept(this, arg) ==> void
+ Line 1044) printJavaComment(n.getComment(), arg) ==> void
+ Line 1045) printAnnotations(n.getAnnotations(), arg) ==> void
+ Line 1046) printModifiers(n.getModifiers()) ==> void
+ Line 1047) n.getType() != null ==> boolean
+ Line 1048) n.getType().accept(this, arg) ==> void
+ Line 1050) n.isVarArgs() ==> boolean
+ Line 1051) printer.print("...") ==> void
+ Line 1053) printer.print(" ") ==> void
+ Line 1054) n.getId().accept(this, arg) ==> void
+ Line 1058) printAnnotations(n.getAnnotations(), arg) ==> void
+ Line 1059) printModifiers(n.getModifiers()) ==> void
+ Line 1061) Iterator<Type> types = n.getTypes().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.Type>
+ Line 1061) n.getTypes().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.Type>
+ Line 1062) types.next().accept(this, arg) ==> void
+ Line 1063) types.hasNext() ==> boolean
+ Line 1064) printer.print(" | ") ==> void
+ Line 1065) types.next().accept(this, arg) ==> void
+ Line 1068) printer.print(" ") ==> void
+ Line 1069) n.getId().accept(this, arg) ==> void
+ Line 1073) printJavaComment(n.getComment(), arg) ==> void
+ Line 1074) n.isThis() ==> boolean
+ Line 1075) printTypeArgs(n.getTypeArgs(), arg) ==> void
+ Line 1076) printer.print("this") ==> void
+ Line 1078) n.getExpr() != null ==> boolean
+ Line 1079) n.getExpr().accept(this, arg) ==> void
+ Line 1080) printer.print(".") ==> void
+ Line 1082) printTypeArgs(n.getTypeArgs(), arg) ==> void
+ Line 1083) printer.print("super") ==> void
+ Line 1085) printArguments(n.getArgs(), arg) ==> void
+ Line 1086) printer.print(";") ==> void
+ Line 1090) printJavaComment(n.getComment(), arg) ==> void
+ Line 1091) printAnnotations(n.getAnnotations(), arg) ==> void
+ Line 1092) printModifiers(n.getModifiers()) ==> void
+ Line 1094) n.getType().accept(this, arg) ==> void
+ Line 1095) printer.print(" ") ==> void
+ Line 1097) final Iterator<VariableDeclarator> i = n.getVars().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 1097) n.getVars().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 1097) i.hasNext() ==> boolean
+ Line 1098) final VariableDeclarator v = i.next() ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 1098) i.next() ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 1099) v.accept(this, arg) ==> void
+ Line 1100) i.hasNext() ==> boolean
+ Line 1101) printer.print(", ") ==> void
+ Line 1107) printJavaComment(n.getComment(), arg) ==> void
+ Line 1108) n.getTypeDeclaration().accept(this, arg) ==> void
+ Line 1112) printJavaComment(n.getComment(), arg) ==> void
+ Line 1113) printer.print("assert ") ==> void
+ Line 1114) n.getCheck().accept(this, arg) ==> void
+ Line 1115) n.getMessage() != null ==> boolean
+ Line 1116) printer.print(" : ") ==> void
+ Line 1117) n.getMessage().accept(this, arg) ==> void
+ Line 1119) printer.print(";") ==> void
+ Line 1123) printOrphanCommentsBeforeThisChildNode(n) ==> void
+ Line 1124) printJavaComment(n.getComment(), arg) ==> void
+ Line 1125) printer.printLn("{") ==> void
+ Line 1126) n.getStmts() != null ==> boolean
+ Line 1127) printer.indent() ==> void
+ Line 1128) final Statement s ==> com.github.javaparser.ast.stmt.Statement
+ Line 1128) n.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 1129) s.accept(this, arg) ==> void
+ Line 1130) printer.printLn() ==> void
+ Line 1132) printer.unindent() ==> void
+ Line 1134) printOrphanCommentsEnding(n) ==> void
+ Line 1135) printer.print("}") ==> void
+ Line 1140) printJavaComment(n.getComment(), arg) ==> void
+ Line 1141) printer.print(n.getLabel()) ==> void
+ Line 1142) printer.print(": ") ==> void
+ Line 1143) n.getStmt().accept(this, arg) ==> void
+ Line 1147) printJavaComment(n.getComment(), arg) ==> void
+ Line 1148) printer.print(";") ==> void
+ Line 1152) printOrphanCommentsBeforeThisChildNode(n) ==> void
+ Line 1153) printJavaComment(n.getComment(), arg) ==> void
+ Line 1154) n.getExpression().accept(this, arg) ==> void
+ Line 1155) printer.print(";") ==> void
+ Line 1159) printJavaComment(n.getComment(), arg) ==> void
+ Line 1160) printer.print("switch(") ==> void
+ Line 1161) n.getSelector().accept(this, arg) ==> void
+ Line 1162) printer.printLn(") {") ==> void
+ Line 1163) n.getEntries() != null ==> boolean
+ Line 1164) printer.indent() ==> void
+ Line 1165) final SwitchEntryStmt e ==> com.github.javaparser.ast.stmt.SwitchEntryStmt
+ Line 1165) n.getEntries() ==> java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>
+ Line 1166) e.accept(this, arg) ==> void
+ Line 1168) printer.unindent() ==> void
+ Line 1170) printer.print("}") ==> void
+ Line 1175) printJavaComment(n.getComment(), arg) ==> void
+ Line 1176) n.getLabel() != null ==> boolean
+ Line 1177) printer.print("case ") ==> void
+ Line 1178) n.getLabel().accept(this, arg) ==> void
+ Line 1179) printer.print(":") ==> void
+ Line 1181) printer.print("default:") ==> void
+ Line 1183) printer.printLn() ==> void
+ Line 1184) printer.indent() ==> void
+ Line 1185) n.getStmts() != null ==> boolean
+ Line 1186) final Statement s ==> com.github.javaparser.ast.stmt.Statement
+ Line 1186) n.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 1187) s.accept(this, arg) ==> void
+ Line 1188) printer.printLn() ==> void
+ Line 1191) printer.unindent() ==> void
+ Line 1195) printJavaComment(n.getComment(), arg) ==> void
+ Line 1196) printer.print("break") ==> void
+ Line 1197) n.getId() != null ==> boolean
+ Line 1198) printer.print(" ") ==> void
+ Line 1199) printer.print(n.getId()) ==> void
+ Line 1201) printer.print(";") ==> void
+ Line 1205) printJavaComment(n.getComment(), arg) ==> void
+ Line 1206) printer.print("return") ==> void
+ Line 1207) n.getExpr() != null ==> boolean
+ Line 1208) printer.print(" ") ==> void
+ Line 1209) n.getExpr().accept(this, arg) ==> void
+ Line 1211) printer.print(";") ==> void
+ Line 1215) printJavaComment(n.getComment(), arg) ==> void
+ Line 1216) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 1217) printMemberAnnotations(n.getAnnotations(), arg) ==> void
+ Line 1218) printModifiers(n.getModifiers()) ==> void
+ Line 1220) printer.print("enum ") ==> void
+ Line 1221) printer.print(n.getName()) ==> void
+ Line 1223) n.getImplements() != null ==> boolean
+ Line 1224) printer.print(" implements ") ==> void
+ Line 1225) final Iterator<ClassOrInterfaceType> i = n.getImplements().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 1225) n.getImplements().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 1225) i.hasNext() ==> boolean
+ Line 1226) final ClassOrInterfaceType c = i.next() ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 1226) i.next() ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 1227) c.accept(this, arg) ==> void
+ Line 1228) i.hasNext() ==> boolean
+ Line 1229) printer.print(", ") ==> void
+ Line 1234) printer.printLn(" {") ==> void
+ Line 1235) printer.indent() ==> void
+ Line 1236) n.getEntries() != null ==> boolean
+ Line 1237) printer.printLn() ==> void
+ Line 1238) final Iterator<EnumConstantDeclaration> i = n.getEntries().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.EnumConstantDeclaration>
+ Line 1238) n.getEntries().iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.EnumConstantDeclaration>
+ Line 1238) i.hasNext() ==> boolean
+ Line 1239) final EnumConstantDeclaration e = i.next() ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 1239) i.next() ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 1240) e.accept(this, arg) ==> void
+ Line 1241) i.hasNext() ==> boolean
+ Line 1242) printer.print(", ") ==> void
+ Line 1246) n.getMembers() != null ==> boolean
+ Line 1247) printer.printLn(";") ==> void
+ Line 1248) printMembers(n.getMembers(), arg) ==> void
+ Line 1250) n.getEntries() != null ==> boolean
+ Line 1251) printer.printLn() ==> void
+ Line 1254) printer.unindent() ==> void
+ Line 1255) printer.print("}") ==> void
+ Line 1259) printJavaComment(n.getComment(), arg) ==> void
+ Line 1260) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 1261) printMemberAnnotations(n.getAnnotations(), arg) ==> void
+ Line 1262) printer.print(n.getName()) ==> void
+ Line 1264) n.getArgs() != null ==> boolean
+ Line 1265) printArguments(n.getArgs(), arg) ==> void
+ Line 1268) n.getClassBody() != null ==> boolean
+ Line 1269) printer.printLn(" {") ==> void
+ Line 1270) printer.indent() ==> void
+ Line 1271) printMembers(n.getClassBody(), arg) ==> void
+ Line 1272) printer.unindent() ==> void
+ Line 1273) printer.printLn("}") ==> void
+ Line 1278) printJavaComment(n.getComment(), arg) ==> void
+ Line 1279) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 1280) printer.print(";") ==> void
+ Line 1284) printJavaComment(n.getComment(), arg) ==> void
+ Line 1285) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 1286) n.isStatic() ==> boolean
+ Line 1287) printer.print("static ") ==> void
+ Line 1289) n.getBlock().accept(this, arg) ==> void
+ Line 1293) printJavaComment(n.getComment(), arg) ==> void
+ Line 1294) printer.print("if (") ==> void
+ Line 1295) n.getCondition().accept(this, arg) ==> void
+ Line 1296) final boolean thenBlock = n.getThenStmt() instanceof BlockStmt ==> boolean
+ Line 1296) n.getThenStmt() instanceof BlockStmt ==> boolean
+ Line 1297) // block statement should start on the same line
+thenBlock ==> boolean
+ Line 1298) printer.print(") ") ==> void
+ Line 1300) printer.printLn(")") ==> void
+ Line 1301) printer.indent() ==> void
+ Line 1303) n.getThenStmt().accept(this, arg) ==> void
+ Line 1304) !thenBlock ==> boolean
+ Line 1305) printer.unindent() ==> void
+ Line 1306) n.getElseStmt() != null ==> boolean
+ Line 1307) thenBlock ==> boolean
+ Line 1308) printer.print(" ") ==> void
+ Line 1310) printer.printLn() ==> void
+ Line 1311) final boolean elseIf = n.getElseStmt() instanceof IfStmt ==> boolean
+ Line 1311) n.getElseStmt() instanceof IfStmt ==> boolean
+ Line 1312) final boolean elseBlock = n.getElseStmt() instanceof BlockStmt ==> boolean
+ Line 1312) n.getElseStmt() instanceof BlockStmt ==> boolean
+ Line 1313) // put chained if and start of block statement on a same level
+elseIf || elseBlock ==> boolean
+ Line 1314) printer.print("else ") ==> void
+ Line 1316) printer.printLn("else") ==> void
+ Line 1317) printer.indent() ==> void
+ Line 1319) n.getElseStmt().accept(this, arg) ==> void
+ Line 1320) !(elseIf || elseBlock) ==> boolean
+ Line 1321) printer.unindent() ==> void
+ Line 1326) printJavaComment(n.getComment(), arg) ==> void
+ Line 1327) printer.print("while (") ==> void
+ Line 1328) n.getCondition().accept(this, arg) ==> void
+ Line 1329) printer.print(") ") ==> void
+ Line 1330) n.getBody().accept(this, arg) ==> void
+ Line 1334) printJavaComment(n.getComment(), arg) ==> void
+ Line 1335) printer.print("continue") ==> void
+ Line 1336) n.getId() != null ==> boolean
+ Line 1337) printer.print(" ") ==> void
+ Line 1338) printer.print(n.getId()) ==> void
+ Line 1340) printer.print(";") ==> void
+ Line 1344) printJavaComment(n.getComment(), arg) ==> void
+ Line 1345) printer.print("do ") ==> void
+ Line 1346) n.getBody().accept(this, arg) ==> void
+ Line 1347) printer.print(" while (") ==> void
+ Line 1348) n.getCondition().accept(this, arg) ==> void
+ Line 1349) printer.print(");") ==> void
+ Line 1353) printJavaComment(n.getComment(), arg) ==> void
+ Line 1354) printer.print("for (") ==> void
+ Line 1355) n.getVariable().accept(this, arg) ==> void
+ Line 1356) printer.print(" : ") ==> void
+ Line 1357) n.getIterable().accept(this, arg) ==> void
+ Line 1358) printer.print(") ") ==> void
+ Line 1359) n.getBody().accept(this, arg) ==> void
+ Line 1363) printJavaComment(n.getComment(), arg) ==> void
+ Line 1364) printer.print("for (") ==> void
+ Line 1365) n.getInit() != null ==> boolean
+ Line 1366) final Iterator<Expression> i = n.getInit().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.Expression>
+ Line 1366) n.getInit().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.Expression>
+ Line 1366) i.hasNext() ==> boolean
+ Line 1367) final Expression e = i.next() ==> com.github.javaparser.ast.expr.Expression
+ Line 1367) i.next() ==> com.github.javaparser.ast.expr.Expression
+ Line 1368) e.accept(this, arg) ==> void
+ Line 1369) i.hasNext() ==> boolean
+ Line 1370) printer.print(", ") ==> void
+ Line 1374) printer.print("; ") ==> void
+ Line 1375) n.getCompare() != null ==> boolean
+ Line 1376) n.getCompare().accept(this, arg) ==> void
+ Line 1378) printer.print("; ") ==> void
+ Line 1379) n.getUpdate() != null ==> boolean
+ Line 1380) final Iterator<Expression> i = n.getUpdate().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.Expression>
+ Line 1380) n.getUpdate().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.Expression>
+ Line 1380) i.hasNext() ==> boolean
+ Line 1381) final Expression e = i.next() ==> com.github.javaparser.ast.expr.Expression
+ Line 1381) i.next() ==> com.github.javaparser.ast.expr.Expression
+ Line 1382) e.accept(this, arg) ==> void
+ Line 1383) i.hasNext() ==> boolean
+ Line 1384) printer.print(", ") ==> void
+ Line 1388) printer.print(") ") ==> void
+ Line 1389) n.getBody().accept(this, arg) ==> void
+ Line 1393) printJavaComment(n.getComment(), arg) ==> void
+ Line 1394) printer.print("throw ") ==> void
+ Line 1395) n.getExpr().accept(this, arg) ==> void
+ Line 1396) printer.print(";") ==> void
+ Line 1400) printJavaComment(n.getComment(), arg) ==> void
+ Line 1401) printer.print("synchronized (") ==> void
+ Line 1402) n.getExpr().accept(this, arg) ==> void
+ Line 1403) printer.print(") ") ==> void
+ Line 1404) n.getBlock().accept(this, arg) ==> void
+ Line 1408) printJavaComment(n.getComment(), arg) ==> void
+ Line 1409) printer.print("try ") ==> void
+ Line 1410) !n.getResources().isEmpty() ==> boolean
+ Line 1411) printer.print("(") ==> void
+ Line 1412) Iterator<VariableDeclarationExpr> resources = n.getResources().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.VariableDeclarationExpr>
+ Line 1412) n.getResources().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.VariableDeclarationExpr>
+ Line 1413) boolean first = true ==> boolean
+ Line 1413) true ==> boolean
+ Line 1414) resources.hasNext() ==> boolean
+ Line 1415) visit(resources.next(), arg) ==> void
+ Line 1416) resources.hasNext() ==> boolean
+ Line 1417) printer.print(";") ==> void
+ Line 1418) printer.printLn() ==> void
+ Line 1419) first ==> boolean
+ Line 1420) printer.indent() ==> void
+ Line 1423) first = false ==> boolean
+ Line 1425) n.getResources().size() > 1 ==> boolean
+ Line 1426) printer.unindent() ==> void
+ Line 1428) printer.print(") ") ==> void
+ Line 1430) n.getTryBlock().accept(this, arg) ==> void
+ Line 1431) n.getCatchs() != null ==> boolean
+ Line 1432) final CatchClause c ==> com.github.javaparser.ast.stmt.CatchClause
+ Line 1432) n.getCatchs() ==> java.util.List<com.github.javaparser.ast.stmt.CatchClause>
+ Line 1433) c.accept(this, arg) ==> void
+ Line 1436) n.getFinallyBlock() != null ==> boolean
+ Line 1437) printer.print(" finally ") ==> void
+ Line 1438) n.getFinallyBlock().accept(this, arg) ==> void
+ Line 1443) printJavaComment(n.getComment(), arg) ==> void
+ Line 1444) printer.print(" catch (") ==> void
+ Line 1445) n.getExcept().accept(this, arg) ==> void
+ Line 1446) printer.print(") ") ==> void
+ Line 1447) n.getCatchBlock().accept(this, arg) ==> void
+ Line 1452) printJavaComment(n.getComment(), arg) ==> void
+ Line 1453) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 1454) printMemberAnnotations(n.getAnnotations(), arg) ==> void
+ Line 1455) printModifiers(n.getModifiers()) ==> void
+ Line 1457) printer.print("@interface ") ==> void
+ Line 1458) printer.print(n.getName()) ==> void
+ Line 1459) printer.printLn(" {") ==> void
+ Line 1460) printer.indent() ==> void
+ Line 1461) n.getMembers() != null ==> boolean
+ Line 1462) printMembers(n.getMembers(), arg) ==> void
+ Line 1464) printer.unindent() ==> void
+ Line 1465) printer.print("}") ==> void
+ Line 1469) printJavaComment(n.getComment(), arg) ==> void
+ Line 1470) printJavadoc(n.getJavaDoc(), arg) ==> void
+ Line 1471) printMemberAnnotations(n.getAnnotations(), arg) ==> void
+ Line 1472) printModifiers(n.getModifiers()) ==> void
+ Line 1474) n.getType().accept(this, arg) ==> void
+ Line 1475) printer.print(" ") ==> void
+ Line 1476) printer.print(n.getName()) ==> void
+ Line 1477) printer.print("()") ==> void
+ Line 1478) n.getDefaultValue() != null ==> boolean
+ Line 1479) printer.print(" default ") ==> void
+ Line 1480) n.getDefaultValue().accept(this, arg) ==> void
+ Line 1482) printer.print(";") ==> void
+ Line 1486) printJavaComment(n.getComment(), arg) ==> void
+ Line 1487) printer.print("@") ==> void
+ Line 1488) n.getName().accept(this, arg) ==> void
+ Line 1492) printJavaComment(n.getComment(), arg) ==> void
+ Line 1493) printer.print("@") ==> void
+ Line 1494) n.getName().accept(this, arg) ==> void
+ Line 1495) printer.print("(") ==> void
+ Line 1496) n.getMemberValue().accept(this, arg) ==> void
+ Line 1497) printer.print(")") ==> void
+ Line 1501) printJavaComment(n.getComment(), arg) ==> void
+ Line 1502) printer.print("@") ==> void
+ Line 1503) n.getName().accept(this, arg) ==> void
+ Line 1504) printer.print("(") ==> void
+ Line 1505) n.getPairs() != null ==> boolean
+ Line 1506) final Iterator<MemberValuePair> i = n.getPairs().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.MemberValuePair>
+ Line 1506) n.getPairs().iterator() ==> java.util.Iterator<com.github.javaparser.ast.expr.MemberValuePair>
+ Line 1506) i.hasNext() ==> boolean
+ Line 1507) final MemberValuePair m = i.next() ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 1507) i.next() ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 1508) m.accept(this, arg) ==> void
+ Line 1509) i.hasNext() ==> boolean
+ Line 1510) printer.print(", ") ==> void
+ Line 1514) printer.print(")") ==> void
+ Line 1518) printJavaComment(n.getComment(), arg) ==> void
+ Line 1519) printer.print(n.getName()) ==> void
+ Line 1520) printer.print(" = ") ==> void
+ Line 1521) n.getValue().accept(this, arg) ==> void
+ Line 1525) !this.printComments ==> boolean
+ Line 1528) printer.print("//") ==> void
+ Line 1529) String tmp = n.getContent() ==> java.lang.String
+ Line 1529) n.getContent() ==> java.lang.String
+ Line 1530) tmp = tmp.replace('\r', ' ') ==> java.lang.String
+ Line 1531) tmp = tmp.replace('\n', ' ') ==> java.lang.String
+ Line 1532) printer.printLn(tmp) ==> void
+ Line 1536) !this.printComments ==> boolean
+ Line 1539) printer.print("/*") ==> void
+ Line 1540) printer.print(n.getContent()) ==> void
+ Line 1541) printer.printLn("*/") ==> void
+ Line 1546) printJavaComment(n.getComment(), arg) ==> void
+ Line 1548) List<Parameter> parameters = n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 1548) n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 1549) boolean printPar = false ==> boolean
+ Line 1549) false ==> boolean
+ Line 1550) printPar = n.isParametersEnclosed() ==> boolean
+ Line 1552) printPar ==> boolean
+ Line 1553) printer.print("(") ==> void
+ Line 1555) parameters != null ==> boolean
+ Line 1556) Iterator<Parameter> i = parameters.iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.Parameter>
+ Line 1556) parameters.iterator() ==> java.util.Iterator<com.github.javaparser.ast.body.Parameter>
+ Line 1556) i.hasNext() ==> boolean
+ Line 1557) Parameter p = i.next() ==> com.github.javaparser.ast.body.Parameter
+ Line 1557) i.next() ==> com.github.javaparser.ast.body.Parameter
+ Line 1558) p.accept(this, arg) ==> void
+ Line 1559) i.hasNext() ==> boolean
+ Line 1560) printer.print(", ") ==> void
+ Line 1564) printPar ==> boolean
+ Line 1565) printer.print(")") ==> void
+ Line 1568) printer.print(" -> ") ==> void
+ Line 1569) Statement body = n.getBody() ==> com.github.javaparser.ast.stmt.Statement
+ Line 1569) n.getBody() ==> com.github.javaparser.ast.stmt.Statement
+ Line 1570) body instanceof ExpressionStmt ==> boolean
+ Line 1572) ((ExpressionStmt) body).getExpression().accept(this, arg) ==> void
+ Line 1574) body.accept(this, arg) ==> void
+ Line 1581) printJavaComment(n.getComment(), arg) ==> void
+ Line 1582) Expression scope = n.getScope() ==> com.github.javaparser.ast.expr.Expression
+ Line 1582) n.getScope() ==> com.github.javaparser.ast.expr.Expression
+ Line 1583) String identifier = n.getIdentifier() ==> java.lang.String
+ Line 1583) n.getIdentifier() ==> java.lang.String
+ Line 1584) scope != null ==> boolean
+ Line 1585) n.getScope().accept(this, arg) ==> void
+ Line 1588) printer.print("::") ==> void
+ Line 1589) n.getTypeParameters() != null ==> boolean
+ Line 1590) printer.print("<") ==> void
+ Line 1591) Iterator<TypeParameter> i = n.getTypeParameters().iterator() ==> java.util.Iterator<com.github.javaparser.ast.TypeParameter>
+ Line 1591) n.getTypeParameters().iterator() ==> java.util.Iterator<com.github.javaparser.ast.TypeParameter>
+ Line 1591) i.hasNext() ==> boolean
+ Line 1593) TypeParameter p = i.next() ==> com.github.javaparser.ast.TypeParameter
+ Line 1593) i.next() ==> com.github.javaparser.ast.TypeParameter
+ Line 1594) p.accept(this, arg) ==> void
+ Line 1595) i.hasNext() ==> boolean
+ Line 1596) printer.print(", ") ==> void
+ Line 1599) printer.print(">") ==> void
+ Line 1601) identifier != null ==> boolean
+ Line 1602) printer.print(identifier) ==> void
+ Line 1609) printJavaComment(n.getComment(), arg) ==> void
+ Line 1610) n.getType() != null ==> boolean
+ Line 1611) n.getType().accept(this, arg) ==> void
+ Line 1616) node instanceof Comment ==> boolean
+ Line 1618) Node parent = node.getParentNode() ==> com.github.javaparser.ast.Node
+ Line 1618) node.getParentNode() ==> com.github.javaparser.ast.Node
+ Line 1619) parent == null ==> boolean
+ Line 1620) List<Node> everything = new LinkedList<Node>() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 1620) new LinkedList<Node>() ==> java.util.LinkedList<com.github.javaparser.ast.Node>
+ Line 1621) everything.addAll(parent.getChildrenNodes()) ==> boolean
+ Line 1622) sortByBeginPosition(everything) ==> void
+ Line 1623) int positionOfTheChild = -1 ==> int
+ Line 1623) -1 ==> int
+ Line 1624) int i = 0 ==> int
+ Line 1624) 0 ==> int
+ Line 1624) i < everything.size() ==> boolean
+ Line 1624) i++ ==> int
+ Line 1625) everything.get(i) == node ==> boolean
+ Line 1625) positionOfTheChild = i ==> int
+ Line 1627) positionOfTheChild == -1 ==> boolean
+ Line 1627) new RuntimeException("My index not found!!! " + node) ==> java.lang.RuntimeException
+ Line 1628) int positionOfPreviousChild = -1 ==> int
+ Line 1628) -1 ==> int
+ Line 1629) int i = positionOfTheChild - 1 ==> int
+ Line 1629) positionOfTheChild - 1 ==> int
+ Line 1629) i >= 0 && positionOfPreviousChild == -1 ==> boolean
+ Line 1629) i-- ==> int
+ Line 1630) !(everything.get(i) instanceof Comment) ==> boolean
+ Line 1630) positionOfPreviousChild = i ==> int
+ Line 1632) int i = positionOfPreviousChild + 1 ==> int
+ Line 1632) positionOfPreviousChild + 1 ==> int
+ Line 1632) i < positionOfTheChild ==> boolean
+ Line 1632) i++ ==> int
+ Line 1633) Node nodeToPrint = everything.get(i) ==> com.github.javaparser.ast.Node
+ Line 1633) everything.get(i) ==> com.github.javaparser.ast.Node
+ Line 1634) !(nodeToPrint instanceof Comment) ==> boolean
+ Line 1634) new RuntimeException("Expected comment, instead " + nodeToPrint.getClass() + ". Position of previous child: " + positionOfPreviousChild + ", position of child " + positionOfTheChild) ==> java.lang.RuntimeException
+ Line 1635) nodeToPrint.accept(this, null) ==> void
+ Line 1641) List<Node> everything = new LinkedList<Node>() ==> java.util.List<com.github.javaparser.ast.Node>
+ Line 1641) new LinkedList<Node>() ==> java.util.LinkedList<com.github.javaparser.ast.Node>
+ Line 1642) everything.addAll(node.getChildrenNodes()) ==> boolean
+ Line 1643) sortByBeginPosition(everything) ==> void
+ Line 1644) everything.size() == 0 ==> boolean
+ Line 1646) int commentsAtEnd = 0 ==> int
+ Line 1646) 0 ==> int
+ Line 1647) boolean findingComments = true ==> boolean
+ Line 1647) true ==> boolean
+ Line 1648) findingComments && commentsAtEnd < everything.size() ==> boolean
+ Line 1649) Node last = everything.get(everything.size() - 1 - commentsAtEnd) ==> com.github.javaparser.ast.Node
+ Line 1649) everything.get(everything.size() - 1 - commentsAtEnd) ==> com.github.javaparser.ast.Node
+ Line 1650) findingComments = (last instanceof Comment) ==> boolean
+ Line 1651) findingComments ==> boolean
+ Line 1651) commentsAtEnd++ ==> int
+ Line 1653) int i = 0 ==> int
+ Line 1653) 0 ==> int
+ Line 1653) i < commentsAtEnd ==> boolean
+ Line 1653) i++ ==> int
+ Line 1654) everything.get(everything.size() - commentsAtEnd + i).accept(this, null) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_EqualsVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_EqualsVisitor.txt
new file mode 100644
index 000000000..48b17f090
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_EqualsVisitor.txt
@@ -0,0 +1,720 @@
+
+[ Class com.github.javaparser.ast.visitor.EqualsVisitor ]
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.visitor.GenericVisitor
+ Line 80) new EqualsVisitor() ==> com.github.javaparser.ast.visitor.EqualsVisitor
+ Line 83) SINGLETON.nodeEquals(n1, n2) ==> boolean
+ Line 95) !nodeEquals(n1.getComment(), n2.getComment()) ==> boolean
+ Line 96) false ==> boolean
+ Line 98) !nodesEquals(n1.getOrphanComments(), n2.getOrphanComments()) ==> boolean
+ Line 99) false ==> boolean
+ Line 101) true ==> boolean
+ Line 105) nodes1 == null ==> boolean
+ Line 106) nodes2 == null ==> boolean
+ Line 107) true ==> boolean
+ Line 109) false ==> boolean
+ Line 110) nodes2 == null ==> boolean
+ Line 111) false ==> boolean
+ Line 113) nodes1.size() != nodes2.size() ==> boolean
+ Line 114) false ==> boolean
+ Line 116) int i = 0 ==> int
+ Line 116) 0 ==> int
+ Line 116) i < nodes1.size() ==> boolean
+ Line 116) i++ ==> int
+ Line 117) !nodeEquals(nodes1.get(i), nodes2.get(i)) ==> boolean
+ Line 118) false ==> boolean
+ Line 121) true ==> boolean
+ Line 125) n1 == n2 ==> boolean
+ Line 126) true ==> boolean
+ Line 128) n1 == null ==> boolean
+ Line 129) n2 == null ==> boolean
+ Line 130) true ==> boolean
+ Line 132) false ==> boolean
+ Line 133) n2 == null ==> boolean
+ Line 134) false ==> boolean
+ Line 136) n1.getClass() != n2.getClass() ==> boolean
+ Line 137) false ==> boolean
+ Line 139) !commonNodeEquality(n1, n2) ==> boolean
+ Line 140) false ==> boolean
+ Line 142) n1.accept(this, n2).booleanValue() ==> boolean
+ Line 146) n1 == n2 ==> boolean
+ Line 147) true ==> boolean
+ Line 149) n1 == null ==> boolean
+ Line 150) n2 == null ==> boolean
+ Line 151) true ==> boolean
+ Line 153) false ==> boolean
+ Line 154) n2 == null ==> boolean
+ Line 155) false ==> boolean
+ Line 157) n1.equals(n2) ==> boolean
+ Line 161) final CompilationUnit n2 = (CompilationUnit) arg ==> com.github.javaparser.ast.CompilationUnit
+ Line 161) (CompilationUnit) arg ==> com.github.javaparser.ast.CompilationUnit
+ Line 163) !nodeEquals(n1.getPackage(), n2.getPackage()) ==> boolean
+ Line 164) Boolean.FALSE ==> java.lang.Boolean
+ Line 167) !nodesEquals(n1.getImports(), n2.getImports()) ==> boolean
+ Line 168) Boolean.FALSE ==> java.lang.Boolean
+ Line 171) !nodesEquals(n1.getTypes(), n2.getTypes()) ==> boolean
+ Line 172) Boolean.FALSE ==> java.lang.Boolean
+ Line 175) !nodesEquals(n1.getComments(), n2.getComments()) ==> boolean
+ Line 176) Boolean.FALSE ==> java.lang.Boolean
+ Line 179) Boolean.TRUE ==> java.lang.Boolean
+ Line 183) final PackageDeclaration n2 = (PackageDeclaration) arg ==> com.github.javaparser.ast.PackageDeclaration
+ Line 183) (PackageDeclaration) arg ==> com.github.javaparser.ast.PackageDeclaration
+ Line 185) !nodeEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 186) Boolean.FALSE ==> java.lang.Boolean
+ Line 189) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 190) Boolean.FALSE ==> java.lang.Boolean
+ Line 193) Boolean.TRUE ==> java.lang.Boolean
+ Line 197) final ImportDeclaration n2 = (ImportDeclaration) arg ==> com.github.javaparser.ast.ImportDeclaration
+ Line 197) (ImportDeclaration) arg ==> com.github.javaparser.ast.ImportDeclaration
+ Line 199) !nodeEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 200) Boolean.FALSE ==> java.lang.Boolean
+ Line 203) Boolean.TRUE ==> java.lang.Boolean
+ Line 207) final TypeParameter n2 = (TypeParameter) arg ==> com.github.javaparser.ast.TypeParameter
+ Line 207) (TypeParameter) arg ==> com.github.javaparser.ast.TypeParameter
+ Line 209) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 210) Boolean.FALSE ==> java.lang.Boolean
+ Line 213) !nodesEquals(n1.getTypeBound(), n2.getTypeBound()) ==> boolean
+ Line 214) Boolean.FALSE ==> java.lang.Boolean
+ Line 216) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 217) Boolean.FALSE ==> java.lang.Boolean
+ Line 219) Boolean.TRUE ==> java.lang.Boolean
+ Line 223) final LineComment n2 = (LineComment) arg ==> com.github.javaparser.ast.comments.LineComment
+ Line 223) (LineComment) arg ==> com.github.javaparser.ast.comments.LineComment
+ Line 225) !objEquals(n1.getContent(), n2.getContent()) ==> boolean
+ Line 226) Boolean.FALSE ==> java.lang.Boolean
+ Line 229) !objEquals(n1.getBeginLine(), n2.getBeginLine()) ==> boolean
+ Line 230) Boolean.FALSE ==> java.lang.Boolean
+ Line 233) Boolean.TRUE ==> java.lang.Boolean
+ Line 237) final BlockComment n2 = (BlockComment) arg ==> com.github.javaparser.ast.comments.BlockComment
+ Line 237) (BlockComment) arg ==> com.github.javaparser.ast.comments.BlockComment
+ Line 239) !objEquals(n1.getContent(), n2.getContent()) ==> boolean
+ Line 240) Boolean.FALSE ==> java.lang.Boolean
+ Line 243) !objEquals(n1.getBeginLine(), n2.getBeginLine()) ==> boolean
+ Line 244) Boolean.FALSE ==> java.lang.Boolean
+ Line 247) Boolean.TRUE ==> java.lang.Boolean
+ Line 251) final ClassOrInterfaceDeclaration n2 = (ClassOrInterfaceDeclaration) arg ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration
+ Line 251) (ClassOrInterfaceDeclaration) arg ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration
+ Line 255) n1.getModifiers() != n2.getModifiers() ==> boolean
+ Line 256) Boolean.FALSE ==> java.lang.Boolean
+ Line 259) n1.isInterface() != n2.isInterface() ==> boolean
+ Line 260) Boolean.FALSE ==> java.lang.Boolean
+ Line 263) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 264) Boolean.FALSE ==> java.lang.Boolean
+ Line 267) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 268) Boolean.FALSE ==> java.lang.Boolean
+ Line 271) !nodesEquals(n1.getTypeParameters(), n2.getTypeParameters()) ==> boolean
+ Line 272) Boolean.FALSE ==> java.lang.Boolean
+ Line 275) !nodesEquals(n1.getExtends(), n2.getExtends()) ==> boolean
+ Line 276) Boolean.FALSE ==> java.lang.Boolean
+ Line 279) !nodesEquals(n1.getImplements(), n2.getImplements()) ==> boolean
+ Line 280) Boolean.FALSE ==> java.lang.Boolean
+ Line 283) !nodesEquals(n1.getMembers(), n2.getMembers()) ==> boolean
+ Line 284) Boolean.FALSE ==> java.lang.Boolean
+ Line 287) Boolean.TRUE ==> java.lang.Boolean
+ Line 291) final EnumDeclaration n2 = (EnumDeclaration) arg ==> com.github.javaparser.ast.body.EnumDeclaration
+ Line 291) (EnumDeclaration) arg ==> com.github.javaparser.ast.body.EnumDeclaration
+ Line 295) n1.getModifiers() != n2.getModifiers() ==> boolean
+ Line 296) Boolean.FALSE ==> java.lang.Boolean
+ Line 299) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 300) Boolean.FALSE ==> java.lang.Boolean
+ Line 303) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 304) Boolean.FALSE ==> java.lang.Boolean
+ Line 307) !nodesEquals(n1.getImplements(), n2.getImplements()) ==> boolean
+ Line 308) Boolean.FALSE ==> java.lang.Boolean
+ Line 311) !nodesEquals(n1.getEntries(), n2.getEntries()) ==> boolean
+ Line 312) Boolean.FALSE ==> java.lang.Boolean
+ Line 315) !nodesEquals(n1.getMembers(), n2.getMembers()) ==> boolean
+ Line 316) Boolean.FALSE ==> java.lang.Boolean
+ Line 319) Boolean.TRUE ==> java.lang.Boolean
+ Line 323) Boolean.TRUE ==> java.lang.Boolean
+ Line 327) final EnumConstantDeclaration n2 = (EnumConstantDeclaration) arg ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 327) (EnumConstantDeclaration) arg ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 331) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 332) Boolean.FALSE ==> java.lang.Boolean
+ Line 335) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 336) Boolean.FALSE ==> java.lang.Boolean
+ Line 339) !nodesEquals(n1.getArgs(), n2.getArgs()) ==> boolean
+ Line 340) Boolean.FALSE ==> java.lang.Boolean
+ Line 343) !nodesEquals(n1.getClassBody(), n2.getClassBody()) ==> boolean
+ Line 344) Boolean.FALSE ==> java.lang.Boolean
+ Line 347) Boolean.TRUE ==> java.lang.Boolean
+ Line 351) final AnnotationDeclaration n2 = (AnnotationDeclaration) arg ==> com.github.javaparser.ast.body.AnnotationDeclaration
+ Line 351) (AnnotationDeclaration) arg ==> com.github.javaparser.ast.body.AnnotationDeclaration
+ Line 355) n1.getModifiers() != n2.getModifiers() ==> boolean
+ Line 356) Boolean.FALSE ==> java.lang.Boolean
+ Line 359) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 360) Boolean.FALSE ==> java.lang.Boolean
+ Line 363) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 364) Boolean.FALSE ==> java.lang.Boolean
+ Line 367) !nodesEquals(n1.getMembers(), n2.getMembers()) ==> boolean
+ Line 368) Boolean.FALSE ==> java.lang.Boolean
+ Line 371) Boolean.TRUE ==> java.lang.Boolean
+ Line 375) final AnnotationMemberDeclaration n2 = (AnnotationMemberDeclaration) arg ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration
+ Line 375) (AnnotationMemberDeclaration) arg ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration
+ Line 379) n1.getModifiers() != n2.getModifiers() ==> boolean
+ Line 380) Boolean.FALSE ==> java.lang.Boolean
+ Line 383) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 384) Boolean.FALSE ==> java.lang.Boolean
+ Line 387) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 388) Boolean.FALSE ==> java.lang.Boolean
+ Line 391) !nodeEquals(n1.getDefaultValue(), n2.getDefaultValue()) ==> boolean
+ Line 392) Boolean.FALSE ==> java.lang.Boolean
+ Line 395) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 396) Boolean.FALSE ==> java.lang.Boolean
+ Line 399) Boolean.TRUE ==> java.lang.Boolean
+ Line 403) final FieldDeclaration n2 = (FieldDeclaration) arg ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 403) (FieldDeclaration) arg ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 407) n1.getModifiers() != n2.getModifiers() ==> boolean
+ Line 408) Boolean.FALSE ==> java.lang.Boolean
+ Line 411) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 412) Boolean.FALSE ==> java.lang.Boolean
+ Line 415) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 416) Boolean.FALSE ==> java.lang.Boolean
+ Line 419) !nodesEquals(n1.getVariables(), n2.getVariables()) ==> boolean
+ Line 420) Boolean.FALSE ==> java.lang.Boolean
+ Line 423) Boolean.TRUE ==> java.lang.Boolean
+ Line 427) final VariableDeclarator n2 = (VariableDeclarator) arg ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 427) (VariableDeclarator) arg ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 429) !nodeEquals(n1.getId(), n2.getId()) ==> boolean
+ Line 430) Boolean.FALSE ==> java.lang.Boolean
+ Line 433) !nodeEquals(n1.getInit(), n2.getInit()) ==> boolean
+ Line 434) Boolean.FALSE ==> java.lang.Boolean
+ Line 437) Boolean.TRUE ==> java.lang.Boolean
+ Line 441) final VariableDeclaratorId n2 = (VariableDeclaratorId) arg ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 441) (VariableDeclaratorId) arg ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 443) n1.getArrayCount() != n2.getArrayCount() ==> boolean
+ Line 444) Boolean.FALSE ==> java.lang.Boolean
+ Line 447) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 448) Boolean.FALSE ==> java.lang.Boolean
+ Line 451) Boolean.TRUE ==> java.lang.Boolean
+ Line 455) final ConstructorDeclaration n2 = (ConstructorDeclaration) arg ==> com.github.javaparser.ast.body.ConstructorDeclaration
+ Line 455) (ConstructorDeclaration) arg ==> com.github.javaparser.ast.body.ConstructorDeclaration
+ Line 459) n1.getModifiers() != n2.getModifiers() ==> boolean
+ Line 460) Boolean.FALSE ==> java.lang.Boolean
+ Line 463) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 464) Boolean.FALSE ==> java.lang.Boolean
+ Line 467) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 468) Boolean.FALSE ==> java.lang.Boolean
+ Line 471) !nodeEquals(n1.getBlock(), n2.getBlock()) ==> boolean
+ Line 472) Boolean.FALSE ==> java.lang.Boolean
+ Line 475) !nodesEquals(n1.getParameters(), n2.getParameters()) ==> boolean
+ Line 476) Boolean.FALSE ==> java.lang.Boolean
+ Line 479) !nodesEquals(n1.getThrows(), n2.getThrows()) ==> boolean
+ Line 480) Boolean.FALSE ==> java.lang.Boolean
+ Line 483) !nodesEquals(n1.getTypeParameters(), n2.getTypeParameters()) ==> boolean
+ Line 484) Boolean.FALSE ==> java.lang.Boolean
+ Line 487) Boolean.TRUE ==> java.lang.Boolean
+ Line 491) final MethodDeclaration n2 = (MethodDeclaration) arg ==> com.github.javaparser.ast.body.MethodDeclaration
+ Line 491) (MethodDeclaration) arg ==> com.github.javaparser.ast.body.MethodDeclaration
+ Line 495) n1.getModifiers() != n2.getModifiers() ==> boolean
+ Line 496) Boolean.FALSE ==> java.lang.Boolean
+ Line 499) n1.getArrayCount() != n2.getArrayCount() ==> boolean
+ Line 500) Boolean.FALSE ==> java.lang.Boolean
+ Line 503) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 504) Boolean.FALSE ==> java.lang.Boolean
+ Line 507) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 508) Boolean.FALSE ==> java.lang.Boolean
+ Line 511) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 512) Boolean.FALSE ==> java.lang.Boolean
+ Line 515) !nodeEquals(n1.getBody(), n2.getBody()) ==> boolean
+ Line 516) Boolean.FALSE ==> java.lang.Boolean
+ Line 519) !nodesEquals(n1.getParameters(), n2.getParameters()) ==> boolean
+ Line 520) Boolean.FALSE ==> java.lang.Boolean
+ Line 523) !nodesEquals(n1.getThrows(), n2.getThrows()) ==> boolean
+ Line 524) Boolean.FALSE ==> java.lang.Boolean
+ Line 527) !nodesEquals(n1.getTypeParameters(), n2.getTypeParameters()) ==> boolean
+ Line 528) Boolean.FALSE ==> java.lang.Boolean
+ Line 530) n1.isDefault() != n2.isDefault() ==> boolean
+ Line 531) Boolean.FALSE ==> java.lang.Boolean
+ Line 533) Boolean.TRUE ==> java.lang.Boolean
+ Line 537) final Parameter n2 = (Parameter) arg ==> com.github.javaparser.ast.body.Parameter
+ Line 537) (Parameter) arg ==> com.github.javaparser.ast.body.Parameter
+ Line 538) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 539) Boolean.FALSE ==> java.lang.Boolean
+ Line 541) visit((BaseParameter) n1, arg) ==> java.lang.Boolean
+ Line 545) MultiTypeParameter n2 = (MultiTypeParameter) arg ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 545) (MultiTypeParameter) arg ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 546) n1.getTypes().size() != n2.getTypes().size() ==> boolean
+ Line 547) Boolean.FALSE ==> java.lang.Boolean
+ Line 549) Iterator<Type> n1types = n1.getTypes().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.Type>
+ Line 549) n1.getTypes().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.Type>
+ Line 550) Iterator<Type> n2types = n2.getTypes().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.Type>
+ Line 550) n2.getTypes().iterator() ==> java.util.Iterator<com.github.javaparser.ast.type.Type>
+ Line 551) n1types.hasNext() && n2types.hasNext() ==> boolean
+ Line 552) !nodeEquals(n1types.next(), n2types.next()) ==> boolean
+ Line 553) Boolean.FALSE ==> java.lang.Boolean
+ Line 556) visit((BaseParameter) n1, arg) ==> java.lang.Boolean
+ Line 560) final BaseParameter n2 = (BaseParameter) arg ==> com.github.javaparser.ast.body.BaseParameter
+ Line 560) (BaseParameter) arg ==> com.github.javaparser.ast.body.BaseParameter
+ Line 562) n1.getModifiers() != n2.getModifiers() ==> boolean
+ Line 563) Boolean.FALSE ==> java.lang.Boolean
+ Line 566) !nodeEquals(n1.getId(), n2.getId()) ==> boolean
+ Line 567) Boolean.FALSE ==> java.lang.Boolean
+ Line 570) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 571) Boolean.FALSE ==> java.lang.Boolean
+ Line 574) Boolean.TRUE ==> java.lang.Boolean
+ Line 578) Boolean.TRUE ==> java.lang.Boolean
+ Line 582) final InitializerDeclaration n2 = (InitializerDeclaration) arg ==> com.github.javaparser.ast.body.InitializerDeclaration
+ Line 582) (InitializerDeclaration) arg ==> com.github.javaparser.ast.body.InitializerDeclaration
+ Line 584) !nodeEquals(n1.getBlock(), n2.getBlock()) ==> boolean
+ Line 585) Boolean.FALSE ==> java.lang.Boolean
+ Line 588) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 589) Boolean.FALSE ==> java.lang.Boolean
+ Line 592) Boolean.TRUE ==> java.lang.Boolean
+ Line 596) final JavadocComment n2 = (JavadocComment) arg ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 596) (JavadocComment) arg ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 598) !objEquals(n1.getContent(), n2.getContent()) ==> boolean
+ Line 599) Boolean.FALSE ==> java.lang.Boolean
+ Line 602) Boolean.TRUE ==> java.lang.Boolean
+ Line 606) final ClassOrInterfaceType n2 = (ClassOrInterfaceType) arg ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 606) (ClassOrInterfaceType) arg ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 608) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 609) Boolean.FALSE ==> java.lang.Boolean
+ Line 612) !nodeEquals(n1.getScope(), n2.getScope()) ==> boolean
+ Line 613) Boolean.FALSE ==> java.lang.Boolean
+ Line 616) !nodesEquals(n1.getTypeArgs(), n2.getTypeArgs()) ==> boolean
+ Line 617) Boolean.FALSE ==> java.lang.Boolean
+ Line 619) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 620) Boolean.FALSE ==> java.lang.Boolean
+ Line 622) Boolean.TRUE ==> java.lang.Boolean
+ Line 626) final PrimitiveType n2 = (PrimitiveType) arg ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 626) (PrimitiveType) arg ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 628) n1.getType() != n2.getType() ==> boolean
+ Line 629) Boolean.FALSE ==> java.lang.Boolean
+ Line 631) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 632) Boolean.FALSE ==> java.lang.Boolean
+ Line 634) Boolean.TRUE ==> java.lang.Boolean
+ Line 638) final ReferenceType n2 = (ReferenceType) arg ==> com.github.javaparser.ast.type.ReferenceType
+ Line 638) (ReferenceType) arg ==> com.github.javaparser.ast.type.ReferenceType
+ Line 640) n1.getArrayCount() != n2.getArrayCount() ==> boolean
+ Line 641) Boolean.FALSE ==> java.lang.Boolean
+ Line 643) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 644) Boolean.FALSE ==> java.lang.Boolean
+ Line 646) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 647) Boolean.FALSE ==> java.lang.Boolean
+ Line 649) List<List<AnnotationExpr>> n1a = n1.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 649) n1.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 650) List<List<AnnotationExpr>> n2a = n2.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 650) n2.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 652) n1a != null && n2a != null ==> boolean
+ Line 653) n1a.size() != n2a.size() ==> boolean
+ Line 654) Boolean.FALSE ==> java.lang.Boolean
+ Line 657) int i = 0 ==> int
+ Line 657) 0 ==> int
+ Line 658) List<AnnotationExpr> aux ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 658) n1a ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 659) !nodesEquals(aux, n2a.get(i)) ==> boolean
+ Line 660) Boolean.FALSE ==> java.lang.Boolean
+ Line 662) i++ ==> int
+ Line 666) n1a != n2a ==> boolean
+ Line 667) Boolean.FALSE ==> java.lang.Boolean
+ Line 669) Boolean.TRUE ==> java.lang.Boolean
+ Line 673) VoidType n2 = (VoidType) arg ==> com.github.javaparser.ast.type.VoidType
+ Line 673) (VoidType) arg ==> com.github.javaparser.ast.type.VoidType
+ Line 674) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 675) Boolean.FALSE ==> java.lang.Boolean
+ Line 677) Boolean.TRUE ==> java.lang.Boolean
+ Line 681) final WildcardType n2 = (WildcardType) arg ==> com.github.javaparser.ast.type.WildcardType
+ Line 681) (WildcardType) arg ==> com.github.javaparser.ast.type.WildcardType
+ Line 683) !nodeEquals(n1.getExtends(), n2.getExtends()) ==> boolean
+ Line 684) Boolean.FALSE ==> java.lang.Boolean
+ Line 687) !nodeEquals(n1.getSuper(), n2.getSuper()) ==> boolean
+ Line 688) Boolean.FALSE ==> java.lang.Boolean
+ Line 690) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 691) Boolean.FALSE ==> java.lang.Boolean
+ Line 693) Boolean.TRUE ==> java.lang.Boolean
+ Line 697) final WildcardType n2 = (WildcardType) arg ==> com.github.javaparser.ast.type.WildcardType
+ Line 697) (WildcardType) arg ==> com.github.javaparser.ast.type.WildcardType
+ Line 699) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 700) Boolean.FALSE ==> java.lang.Boolean
+ Line 702) Boolean.TRUE ==> java.lang.Boolean
+ Line 706) final ArrayAccessExpr n2 = (ArrayAccessExpr) arg ==> com.github.javaparser.ast.expr.ArrayAccessExpr
+ Line 706) (ArrayAccessExpr) arg ==> com.github.javaparser.ast.expr.ArrayAccessExpr
+ Line 708) !nodeEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 709) Boolean.FALSE ==> java.lang.Boolean
+ Line 712) !nodeEquals(n1.getIndex(), n2.getIndex()) ==> boolean
+ Line 713) Boolean.FALSE ==> java.lang.Boolean
+ Line 716) Boolean.TRUE ==> java.lang.Boolean
+ Line 720) final ArrayCreationExpr n2 = (ArrayCreationExpr) arg ==> com.github.javaparser.ast.expr.ArrayCreationExpr
+ Line 720) (ArrayCreationExpr) arg ==> com.github.javaparser.ast.expr.ArrayCreationExpr
+ Line 722) n1.getArrayCount() != n2.getArrayCount() ==> boolean
+ Line 723) Boolean.FALSE ==> java.lang.Boolean
+ Line 726) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 727) Boolean.FALSE ==> java.lang.Boolean
+ Line 730) !nodeEquals(n1.getInitializer(), n2.getInitializer()) ==> boolean
+ Line 731) Boolean.FALSE ==> java.lang.Boolean
+ Line 734) !nodesEquals(n1.getDimensions(), n2.getDimensions()) ==> boolean
+ Line 735) Boolean.FALSE ==> java.lang.Boolean
+ Line 737) List<List<AnnotationExpr>> n1a = n1.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 737) n1.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 738) List<List<AnnotationExpr>> n2a = n2.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 738) n2.getArraysAnnotations() ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 740) n1a != null && n2a != null ==> boolean
+ Line 741) n1a.size() != n2a.size() ==> boolean
+ Line 742) Boolean.FALSE ==> java.lang.Boolean
+ Line 745) int i = 0 ==> int
+ Line 745) 0 ==> int
+ Line 746) List<AnnotationExpr> aux ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 746) n1a ==> java.util.List<java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>>
+ Line 747) !nodesEquals(aux, n2a.get(i)) ==> boolean
+ Line 748) Boolean.FALSE ==> java.lang.Boolean
+ Line 750) i++ ==> int
+ Line 754) n1a != n2a ==> boolean
+ Line 755) Boolean.FALSE ==> java.lang.Boolean
+ Line 757) Boolean.TRUE ==> java.lang.Boolean
+ Line 761) final ArrayInitializerExpr n2 = (ArrayInitializerExpr) arg ==> com.github.javaparser.ast.expr.ArrayInitializerExpr
+ Line 761) (ArrayInitializerExpr) arg ==> com.github.javaparser.ast.expr.ArrayInitializerExpr
+ Line 763) !nodesEquals(n1.getValues(), n2.getValues()) ==> boolean
+ Line 764) Boolean.FALSE ==> java.lang.Boolean
+ Line 767) Boolean.TRUE ==> java.lang.Boolean
+ Line 771) final AssignExpr n2 = (AssignExpr) arg ==> com.github.javaparser.ast.expr.AssignExpr
+ Line 771) (AssignExpr) arg ==> com.github.javaparser.ast.expr.AssignExpr
+ Line 773) n1.getOperator() != n2.getOperator() ==> boolean
+ Line 774) Boolean.FALSE ==> java.lang.Boolean
+ Line 777) !nodeEquals(n1.getTarget(), n2.getTarget()) ==> boolean
+ Line 778) Boolean.FALSE ==> java.lang.Boolean
+ Line 781) !nodeEquals(n1.getValue(), n2.getValue()) ==> boolean
+ Line 782) Boolean.FALSE ==> java.lang.Boolean
+ Line 785) Boolean.TRUE ==> java.lang.Boolean
+ Line 789) final BinaryExpr n2 = (BinaryExpr) arg ==> com.github.javaparser.ast.expr.BinaryExpr
+ Line 789) (BinaryExpr) arg ==> com.github.javaparser.ast.expr.BinaryExpr
+ Line 791) n1.getOperator() != n2.getOperator() ==> boolean
+ Line 792) Boolean.FALSE ==> java.lang.Boolean
+ Line 795) !nodeEquals(n1.getLeft(), n2.getLeft()) ==> boolean
+ Line 796) Boolean.FALSE ==> java.lang.Boolean
+ Line 799) !nodeEquals(n1.getRight(), n2.getRight()) ==> boolean
+ Line 800) Boolean.FALSE ==> java.lang.Boolean
+ Line 803) Boolean.TRUE ==> java.lang.Boolean
+ Line 807) final CastExpr n2 = (CastExpr) arg ==> com.github.javaparser.ast.expr.CastExpr
+ Line 807) (CastExpr) arg ==> com.github.javaparser.ast.expr.CastExpr
+ Line 809) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 810) Boolean.FALSE ==> java.lang.Boolean
+ Line 813) !nodeEquals(n1.getExpr(), n2.getExpr()) ==> boolean
+ Line 814) Boolean.FALSE ==> java.lang.Boolean
+ Line 817) Boolean.TRUE ==> java.lang.Boolean
+ Line 821) final ClassExpr n2 = (ClassExpr) arg ==> com.github.javaparser.ast.expr.ClassExpr
+ Line 821) (ClassExpr) arg ==> com.github.javaparser.ast.expr.ClassExpr
+ Line 823) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 824) Boolean.FALSE ==> java.lang.Boolean
+ Line 827) Boolean.TRUE ==> java.lang.Boolean
+ Line 831) final ConditionalExpr n2 = (ConditionalExpr) arg ==> com.github.javaparser.ast.expr.ConditionalExpr
+ Line 831) (ConditionalExpr) arg ==> com.github.javaparser.ast.expr.ConditionalExpr
+ Line 833) !nodeEquals(n1.getCondition(), n2.getCondition()) ==> boolean
+ Line 834) Boolean.FALSE ==> java.lang.Boolean
+ Line 837) !nodeEquals(n1.getThenExpr(), n2.getThenExpr()) ==> boolean
+ Line 838) Boolean.FALSE ==> java.lang.Boolean
+ Line 841) !nodeEquals(n1.getElseExpr(), n2.getElseExpr()) ==> boolean
+ Line 842) Boolean.FALSE ==> java.lang.Boolean
+ Line 845) Boolean.TRUE ==> java.lang.Boolean
+ Line 849) final EnclosedExpr n2 = (EnclosedExpr) arg ==> com.github.javaparser.ast.expr.EnclosedExpr
+ Line 849) (EnclosedExpr) arg ==> com.github.javaparser.ast.expr.EnclosedExpr
+ Line 851) !nodeEquals(n1.getInner(), n2.getInner()) ==> boolean
+ Line 852) Boolean.FALSE ==> java.lang.Boolean
+ Line 855) Boolean.TRUE ==> java.lang.Boolean
+ Line 859) final FieldAccessExpr n2 = (FieldAccessExpr) arg ==> com.github.javaparser.ast.expr.FieldAccessExpr
+ Line 859) (FieldAccessExpr) arg ==> com.github.javaparser.ast.expr.FieldAccessExpr
+ Line 861) !nodeEquals(n1.getScope(), n2.getScope()) ==> boolean
+ Line 862) Boolean.FALSE ==> java.lang.Boolean
+ Line 865) !objEquals(n1.getField(), n2.getField()) ==> boolean
+ Line 866) Boolean.FALSE ==> java.lang.Boolean
+ Line 869) !nodesEquals(n1.getTypeArgs(), n2.getTypeArgs()) ==> boolean
+ Line 870) Boolean.FALSE ==> java.lang.Boolean
+ Line 873) Boolean.TRUE ==> java.lang.Boolean
+ Line 877) final InstanceOfExpr n2 = (InstanceOfExpr) arg ==> com.github.javaparser.ast.expr.InstanceOfExpr
+ Line 877) (InstanceOfExpr) arg ==> com.github.javaparser.ast.expr.InstanceOfExpr
+ Line 879) !nodeEquals(n1.getExpr(), n2.getExpr()) ==> boolean
+ Line 880) Boolean.FALSE ==> java.lang.Boolean
+ Line 883) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 884) Boolean.FALSE ==> java.lang.Boolean
+ Line 887) Boolean.TRUE ==> java.lang.Boolean
+ Line 891) final StringLiteralExpr n2 = (StringLiteralExpr) arg ==> com.github.javaparser.ast.expr.StringLiteralExpr
+ Line 891) (StringLiteralExpr) arg ==> com.github.javaparser.ast.expr.StringLiteralExpr
+ Line 893) !objEquals(n1.getValue(), n2.getValue()) ==> boolean
+ Line 894) Boolean.FALSE ==> java.lang.Boolean
+ Line 897) Boolean.TRUE ==> java.lang.Boolean
+ Line 901) final IntegerLiteralExpr n2 = (IntegerLiteralExpr) arg ==> com.github.javaparser.ast.expr.IntegerLiteralExpr
+ Line 901) (IntegerLiteralExpr) arg ==> com.github.javaparser.ast.expr.IntegerLiteralExpr
+ Line 903) !objEquals(n1.getValue(), n2.getValue()) ==> boolean
+ Line 904) Boolean.FALSE ==> java.lang.Boolean
+ Line 907) Boolean.TRUE ==> java.lang.Boolean
+ Line 911) final LongLiteralExpr n2 = (LongLiteralExpr) arg ==> com.github.javaparser.ast.expr.LongLiteralExpr
+ Line 911) (LongLiteralExpr) arg ==> com.github.javaparser.ast.expr.LongLiteralExpr
+ Line 913) !objEquals(n1.getValue(), n2.getValue()) ==> boolean
+ Line 914) Boolean.FALSE ==> java.lang.Boolean
+ Line 917) Boolean.TRUE ==> java.lang.Boolean
+ Line 921) final IntegerLiteralMinValueExpr n2 = (IntegerLiteralMinValueExpr) arg ==> com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr
+ Line 921) (IntegerLiteralMinValueExpr) arg ==> com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr
+ Line 923) !objEquals(n1.getValue(), n2.getValue()) ==> boolean
+ Line 924) Boolean.FALSE ==> java.lang.Boolean
+ Line 927) Boolean.TRUE ==> java.lang.Boolean
+ Line 931) final LongLiteralMinValueExpr n2 = (LongLiteralMinValueExpr) arg ==> com.github.javaparser.ast.expr.LongLiteralMinValueExpr
+ Line 931) (LongLiteralMinValueExpr) arg ==> com.github.javaparser.ast.expr.LongLiteralMinValueExpr
+ Line 933) !objEquals(n1.getValue(), n2.getValue()) ==> boolean
+ Line 934) Boolean.FALSE ==> java.lang.Boolean
+ Line 937) Boolean.TRUE ==> java.lang.Boolean
+ Line 941) final CharLiteralExpr n2 = (CharLiteralExpr) arg ==> com.github.javaparser.ast.expr.CharLiteralExpr
+ Line 941) (CharLiteralExpr) arg ==> com.github.javaparser.ast.expr.CharLiteralExpr
+ Line 943) !objEquals(n1.getValue(), n2.getValue()) ==> boolean
+ Line 944) Boolean.FALSE ==> java.lang.Boolean
+ Line 947) Boolean.TRUE ==> java.lang.Boolean
+ Line 951) final DoubleLiteralExpr n2 = (DoubleLiteralExpr) arg ==> com.github.javaparser.ast.expr.DoubleLiteralExpr
+ Line 951) (DoubleLiteralExpr) arg ==> com.github.javaparser.ast.expr.DoubleLiteralExpr
+ Line 953) !objEquals(n1.getValue(), n2.getValue()) ==> boolean
+ Line 954) Boolean.FALSE ==> java.lang.Boolean
+ Line 957) Boolean.TRUE ==> java.lang.Boolean
+ Line 961) final BooleanLiteralExpr n2 = (BooleanLiteralExpr) arg ==> com.github.javaparser.ast.expr.BooleanLiteralExpr
+ Line 961) (BooleanLiteralExpr) arg ==> com.github.javaparser.ast.expr.BooleanLiteralExpr
+ Line 963) n1.getValue() != n2.getValue() ==> boolean
+ Line 964) Boolean.FALSE ==> java.lang.Boolean
+ Line 967) Boolean.TRUE ==> java.lang.Boolean
+ Line 971) Boolean.TRUE ==> java.lang.Boolean
+ Line 975) final MethodCallExpr n2 = (MethodCallExpr) arg ==> com.github.javaparser.ast.expr.MethodCallExpr
+ Line 975) (MethodCallExpr) arg ==> com.github.javaparser.ast.expr.MethodCallExpr
+ Line 977) !nodeEquals(n1.getScope(), n2.getScope()) ==> boolean
+ Line 978) Boolean.FALSE ==> java.lang.Boolean
+ Line 981) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 982) Boolean.FALSE ==> java.lang.Boolean
+ Line 985) !nodesEquals(n1.getArgs(), n2.getArgs()) ==> boolean
+ Line 986) Boolean.FALSE ==> java.lang.Boolean
+ Line 989) !nodesEquals(n1.getTypeArgs(), n2.getTypeArgs()) ==> boolean
+ Line 990) Boolean.FALSE ==> java.lang.Boolean
+ Line 993) Boolean.TRUE ==> java.lang.Boolean
+ Line 997) final NameExpr n2 = (NameExpr) arg ==> com.github.javaparser.ast.expr.NameExpr
+ Line 997) (NameExpr) arg ==> com.github.javaparser.ast.expr.NameExpr
+ Line 999) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 1000) Boolean.FALSE ==> java.lang.Boolean
+ Line 1003) Boolean.TRUE ==> java.lang.Boolean
+ Line 1007) final ObjectCreationExpr n2 = (ObjectCreationExpr) arg ==> com.github.javaparser.ast.expr.ObjectCreationExpr
+ Line 1007) (ObjectCreationExpr) arg ==> com.github.javaparser.ast.expr.ObjectCreationExpr
+ Line 1009) !nodeEquals(n1.getScope(), n2.getScope()) ==> boolean
+ Line 1010) Boolean.FALSE ==> java.lang.Boolean
+ Line 1013) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 1014) Boolean.FALSE ==> java.lang.Boolean
+ Line 1017) !nodesEquals(n1.getAnonymousClassBody(), n2.getAnonymousClassBody()) ==> boolean
+ Line 1018) Boolean.FALSE ==> java.lang.Boolean
+ Line 1021) !nodesEquals(n1.getArgs(), n2.getArgs()) ==> boolean
+ Line 1022) Boolean.FALSE ==> java.lang.Boolean
+ Line 1025) !nodesEquals(n1.getTypeArgs(), n2.getTypeArgs()) ==> boolean
+ Line 1026) Boolean.FALSE ==> java.lang.Boolean
+ Line 1029) Boolean.TRUE ==> java.lang.Boolean
+ Line 1033) final QualifiedNameExpr n2 = (QualifiedNameExpr) arg ==> com.github.javaparser.ast.expr.QualifiedNameExpr
+ Line 1033) (QualifiedNameExpr) arg ==> com.github.javaparser.ast.expr.QualifiedNameExpr
+ Line 1035) !nodeEquals(n1.getQualifier(), n2.getQualifier()) ==> boolean
+ Line 1036) Boolean.FALSE ==> java.lang.Boolean
+ Line 1039) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 1040) Boolean.FALSE ==> java.lang.Boolean
+ Line 1043) Boolean.TRUE ==> java.lang.Boolean
+ Line 1047) final ThisExpr n2 = (ThisExpr) arg ==> com.github.javaparser.ast.expr.ThisExpr
+ Line 1047) (ThisExpr) arg ==> com.github.javaparser.ast.expr.ThisExpr
+ Line 1049) !nodeEquals(n1.getClassExpr(), n2.getClassExpr()) ==> boolean
+ Line 1050) Boolean.FALSE ==> java.lang.Boolean
+ Line 1053) Boolean.TRUE ==> java.lang.Boolean
+ Line 1057) final SuperExpr n2 = (SuperExpr) arg ==> com.github.javaparser.ast.expr.SuperExpr
+ Line 1057) (SuperExpr) arg ==> com.github.javaparser.ast.expr.SuperExpr
+ Line 1059) !nodeEquals(n1.getClassExpr(), n2.getClassExpr()) ==> boolean
+ Line 1060) Boolean.FALSE ==> java.lang.Boolean
+ Line 1063) Boolean.TRUE ==> java.lang.Boolean
+ Line 1067) final UnaryExpr n2 = (UnaryExpr) arg ==> com.github.javaparser.ast.expr.UnaryExpr
+ Line 1067) (UnaryExpr) arg ==> com.github.javaparser.ast.expr.UnaryExpr
+ Line 1069) n1.getOperator() != n2.getOperator() ==> boolean
+ Line 1070) Boolean.FALSE ==> java.lang.Boolean
+ Line 1073) !nodeEquals(n1.getExpr(), n2.getExpr()) ==> boolean
+ Line 1074) Boolean.FALSE ==> java.lang.Boolean
+ Line 1077) Boolean.TRUE ==> java.lang.Boolean
+ Line 1081) final VariableDeclarationExpr n2 = (VariableDeclarationExpr) arg ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 1081) (VariableDeclarationExpr) arg ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 1083) n1.getModifiers() != n2.getModifiers() ==> boolean
+ Line 1084) Boolean.FALSE ==> java.lang.Boolean
+ Line 1087) !nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> boolean
+ Line 1088) Boolean.FALSE ==> java.lang.Boolean
+ Line 1091) !nodeEquals(n1.getType(), n2.getType()) ==> boolean
+ Line 1092) Boolean.FALSE ==> java.lang.Boolean
+ Line 1095) !nodesEquals(n1.getVars(), n2.getVars()) ==> boolean
+ Line 1096) Boolean.FALSE ==> java.lang.Boolean
+ Line 1099) Boolean.TRUE ==> java.lang.Boolean
+ Line 1103) final MarkerAnnotationExpr n2 = (MarkerAnnotationExpr) arg ==> com.github.javaparser.ast.expr.MarkerAnnotationExpr
+ Line 1103) (MarkerAnnotationExpr) arg ==> com.github.javaparser.ast.expr.MarkerAnnotationExpr
+ Line 1105) !nodeEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 1106) Boolean.FALSE ==> java.lang.Boolean
+ Line 1109) Boolean.TRUE ==> java.lang.Boolean
+ Line 1113) final SingleMemberAnnotationExpr n2 = (SingleMemberAnnotationExpr) arg ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr
+ Line 1113) (SingleMemberAnnotationExpr) arg ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr
+ Line 1115) !nodeEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 1116) Boolean.FALSE ==> java.lang.Boolean
+ Line 1119) !nodeEquals(n1.getMemberValue(), n2.getMemberValue()) ==> boolean
+ Line 1120) Boolean.FALSE ==> java.lang.Boolean
+ Line 1123) Boolean.TRUE ==> java.lang.Boolean
+ Line 1127) final NormalAnnotationExpr n2 = (NormalAnnotationExpr) arg ==> com.github.javaparser.ast.expr.NormalAnnotationExpr
+ Line 1127) (NormalAnnotationExpr) arg ==> com.github.javaparser.ast.expr.NormalAnnotationExpr
+ Line 1129) !nodeEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 1130) Boolean.FALSE ==> java.lang.Boolean
+ Line 1133) !nodesEquals(n1.getPairs(), n2.getPairs()) ==> boolean
+ Line 1134) Boolean.FALSE ==> java.lang.Boolean
+ Line 1137) Boolean.TRUE ==> java.lang.Boolean
+ Line 1141) final MemberValuePair n2 = (MemberValuePair) arg ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 1141) (MemberValuePair) arg ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 1143) !objEquals(n1.getName(), n2.getName()) ==> boolean
+ Line 1144) Boolean.FALSE ==> java.lang.Boolean
+ Line 1147) !nodeEquals(n1.getValue(), n2.getValue()) ==> boolean
+ Line 1148) Boolean.FALSE ==> java.lang.Boolean
+ Line 1151) Boolean.TRUE ==> java.lang.Boolean
+ Line 1155) final ExplicitConstructorInvocationStmt n2 = (ExplicitConstructorInvocationStmt) arg ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt
+ Line 1155) (ExplicitConstructorInvocationStmt) arg ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt
+ Line 1157) !nodeEquals(n1.getExpr(), n2.getExpr()) ==> boolean
+ Line 1158) Boolean.FALSE ==> java.lang.Boolean
+ Line 1161) !nodesEquals(n1.getArgs(), n2.getArgs()) ==> boolean
+ Line 1162) Boolean.FALSE ==> java.lang.Boolean
+ Line 1165) !nodesEquals(n1.getTypeArgs(), n2.getTypeArgs()) ==> boolean
+ Line 1166) Boolean.FALSE ==> java.lang.Boolean
+ Line 1169) Boolean.TRUE ==> java.lang.Boolean
+ Line 1173) final TypeDeclarationStmt n2 = (TypeDeclarationStmt) arg ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt
+ Line 1173) (TypeDeclarationStmt) arg ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt
+ Line 1175) !nodeEquals(n1.getTypeDeclaration(), n2.getTypeDeclaration()) ==> boolean
+ Line 1176) Boolean.FALSE ==> java.lang.Boolean
+ Line 1179) Boolean.TRUE ==> java.lang.Boolean
+ Line 1183) final AssertStmt n2 = (AssertStmt) arg ==> com.github.javaparser.ast.stmt.AssertStmt
+ Line 1183) (AssertStmt) arg ==> com.github.javaparser.ast.stmt.AssertStmt
+ Line 1185) !nodeEquals(n1.getCheck(), n2.getCheck()) ==> boolean
+ Line 1186) Boolean.FALSE ==> java.lang.Boolean
+ Line 1189) !nodeEquals(n1.getMessage(), n2.getMessage()) ==> boolean
+ Line 1190) Boolean.FALSE ==> java.lang.Boolean
+ Line 1193) Boolean.TRUE ==> java.lang.Boolean
+ Line 1197) final BlockStmt n2 = (BlockStmt) arg ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 1197) (BlockStmt) arg ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 1199) !nodesEquals(n1.getStmts(), n2.getStmts()) ==> boolean
+ Line 1200) Boolean.FALSE ==> java.lang.Boolean
+ Line 1203) Boolean.TRUE ==> java.lang.Boolean
+ Line 1207) final LabeledStmt n2 = (LabeledStmt) arg ==> com.github.javaparser.ast.stmt.LabeledStmt
+ Line 1207) (LabeledStmt) arg ==> com.github.javaparser.ast.stmt.LabeledStmt
+ Line 1209) !nodeEquals(n1.getStmt(), n2.getStmt()) ==> boolean
+ Line 1210) Boolean.FALSE ==> java.lang.Boolean
+ Line 1213) Boolean.TRUE ==> java.lang.Boolean
+ Line 1217) Boolean.TRUE ==> java.lang.Boolean
+ Line 1221) final ExpressionStmt n2 = (ExpressionStmt) arg ==> com.github.javaparser.ast.stmt.ExpressionStmt
+ Line 1221) (ExpressionStmt) arg ==> com.github.javaparser.ast.stmt.ExpressionStmt
+ Line 1223) !nodeEquals(n1.getExpression(), n2.getExpression()) ==> boolean
+ Line 1224) Boolean.FALSE ==> java.lang.Boolean
+ Line 1227) Boolean.TRUE ==> java.lang.Boolean
+ Line 1231) final SwitchStmt n2 = (SwitchStmt) arg ==> com.github.javaparser.ast.stmt.SwitchStmt
+ Line 1231) (SwitchStmt) arg ==> com.github.javaparser.ast.stmt.SwitchStmt
+ Line 1233) !nodeEquals(n1.getSelector(), n2.getSelector()) ==> boolean
+ Line 1234) Boolean.FALSE ==> java.lang.Boolean
+ Line 1237) !nodesEquals(n1.getEntries(), n2.getEntries()) ==> boolean
+ Line 1238) Boolean.FALSE ==> java.lang.Boolean
+ Line 1241) Boolean.TRUE ==> java.lang.Boolean
+ Line 1245) final SwitchEntryStmt n2 = (SwitchEntryStmt) arg ==> com.github.javaparser.ast.stmt.SwitchEntryStmt
+ Line 1245) (SwitchEntryStmt) arg ==> com.github.javaparser.ast.stmt.SwitchEntryStmt
+ Line 1247) !nodeEquals(n1.getLabel(), n2.getLabel()) ==> boolean
+ Line 1248) Boolean.FALSE ==> java.lang.Boolean
+ Line 1251) !nodesEquals(n1.getStmts(), n2.getStmts()) ==> boolean
+ Line 1252) Boolean.FALSE ==> java.lang.Boolean
+ Line 1255) Boolean.TRUE ==> java.lang.Boolean
+ Line 1259) final BreakStmt n2 = (BreakStmt) arg ==> com.github.javaparser.ast.stmt.BreakStmt
+ Line 1259) (BreakStmt) arg ==> com.github.javaparser.ast.stmt.BreakStmt
+ Line 1261) !objEquals(n1.getId(), n2.getId()) ==> boolean
+ Line 1262) Boolean.FALSE ==> java.lang.Boolean
+ Line 1265) Boolean.TRUE ==> java.lang.Boolean
+ Line 1269) final ReturnStmt n2 = (ReturnStmt) arg ==> com.github.javaparser.ast.stmt.ReturnStmt
+ Line 1269) (ReturnStmt) arg ==> com.github.javaparser.ast.stmt.ReturnStmt
+ Line 1271) !nodeEquals(n1.getExpr(), n2.getExpr()) ==> boolean
+ Line 1272) Boolean.FALSE ==> java.lang.Boolean
+ Line 1275) Boolean.TRUE ==> java.lang.Boolean
+ Line 1279) final IfStmt n2 = (IfStmt) arg ==> com.github.javaparser.ast.stmt.IfStmt
+ Line 1279) (IfStmt) arg ==> com.github.javaparser.ast.stmt.IfStmt
+ Line 1281) !nodeEquals(n1.getCondition(), n2.getCondition()) ==> boolean
+ Line 1282) Boolean.FALSE ==> java.lang.Boolean
+ Line 1285) !nodeEquals(n1.getThenStmt(), n2.getThenStmt()) ==> boolean
+ Line 1286) Boolean.FALSE ==> java.lang.Boolean
+ Line 1289) !nodeEquals(n1.getElseStmt(), n2.getElseStmt()) ==> boolean
+ Line 1290) Boolean.FALSE ==> java.lang.Boolean
+ Line 1293) Boolean.TRUE ==> java.lang.Boolean
+ Line 1297) final WhileStmt n2 = (WhileStmt) arg ==> com.github.javaparser.ast.stmt.WhileStmt
+ Line 1297) (WhileStmt) arg ==> com.github.javaparser.ast.stmt.WhileStmt
+ Line 1299) !nodeEquals(n1.getCondition(), n2.getCondition()) ==> boolean
+ Line 1300) Boolean.FALSE ==> java.lang.Boolean
+ Line 1303) !nodeEquals(n1.getBody(), n2.getBody()) ==> boolean
+ Line 1304) Boolean.FALSE ==> java.lang.Boolean
+ Line 1307) Boolean.TRUE ==> java.lang.Boolean
+ Line 1311) final ContinueStmt n2 = (ContinueStmt) arg ==> com.github.javaparser.ast.stmt.ContinueStmt
+ Line 1311) (ContinueStmt) arg ==> com.github.javaparser.ast.stmt.ContinueStmt
+ Line 1313) !objEquals(n1.getId(), n2.getId()) ==> boolean
+ Line 1314) Boolean.FALSE ==> java.lang.Boolean
+ Line 1317) Boolean.TRUE ==> java.lang.Boolean
+ Line 1321) final DoStmt n2 = (DoStmt) arg ==> com.github.javaparser.ast.stmt.DoStmt
+ Line 1321) (DoStmt) arg ==> com.github.javaparser.ast.stmt.DoStmt
+ Line 1323) !nodeEquals(n1.getBody(), n2.getBody()) ==> boolean
+ Line 1324) Boolean.FALSE ==> java.lang.Boolean
+ Line 1327) !nodeEquals(n1.getCondition(), n2.getCondition()) ==> boolean
+ Line 1328) Boolean.FALSE ==> java.lang.Boolean
+ Line 1331) Boolean.TRUE ==> java.lang.Boolean
+ Line 1335) final ForeachStmt n2 = (ForeachStmt) arg ==> com.github.javaparser.ast.stmt.ForeachStmt
+ Line 1335) (ForeachStmt) arg ==> com.github.javaparser.ast.stmt.ForeachStmt
+ Line 1337) !nodeEquals(n1.getVariable(), n2.getVariable()) ==> boolean
+ Line 1338) Boolean.FALSE ==> java.lang.Boolean
+ Line 1341) !nodeEquals(n1.getIterable(), n2.getIterable()) ==> boolean
+ Line 1342) Boolean.FALSE ==> java.lang.Boolean
+ Line 1345) !nodeEquals(n1.getBody(), n2.getBody()) ==> boolean
+ Line 1346) Boolean.FALSE ==> java.lang.Boolean
+ Line 1349) Boolean.TRUE ==> java.lang.Boolean
+ Line 1353) final ForStmt n2 = (ForStmt) arg ==> com.github.javaparser.ast.stmt.ForStmt
+ Line 1353) (ForStmt) arg ==> com.github.javaparser.ast.stmt.ForStmt
+ Line 1355) !nodesEquals(n1.getInit(), n2.getInit()) ==> boolean
+ Line 1356) Boolean.FALSE ==> java.lang.Boolean
+ Line 1359) !nodeEquals(n1.getCompare(), n2.getCompare()) ==> boolean
+ Line 1360) Boolean.FALSE ==> java.lang.Boolean
+ Line 1363) !nodesEquals(n1.getUpdate(), n2.getUpdate()) ==> boolean
+ Line 1364) Boolean.FALSE ==> java.lang.Boolean
+ Line 1367) !nodeEquals(n1.getBody(), n2.getBody()) ==> boolean
+ Line 1368) Boolean.FALSE ==> java.lang.Boolean
+ Line 1371) Boolean.TRUE ==> java.lang.Boolean
+ Line 1375) final ThrowStmt n2 = (ThrowStmt) arg ==> com.github.javaparser.ast.stmt.ThrowStmt
+ Line 1375) (ThrowStmt) arg ==> com.github.javaparser.ast.stmt.ThrowStmt
+ Line 1377) !nodeEquals(n1.getExpr(), n2.getExpr()) ==> boolean
+ Line 1378) Boolean.FALSE ==> java.lang.Boolean
+ Line 1381) Boolean.TRUE ==> java.lang.Boolean
+ Line 1385) final SynchronizedStmt n2 = (SynchronizedStmt) arg ==> com.github.javaparser.ast.stmt.SynchronizedStmt
+ Line 1385) (SynchronizedStmt) arg ==> com.github.javaparser.ast.stmt.SynchronizedStmt
+ Line 1387) !nodeEquals(n1.getExpr(), n2.getExpr()) ==> boolean
+ Line 1388) Boolean.FALSE ==> java.lang.Boolean
+ Line 1391) !nodeEquals(n1.getBlock(), n2.getBlock()) ==> boolean
+ Line 1392) Boolean.FALSE ==> java.lang.Boolean
+ Line 1395) Boolean.TRUE ==> java.lang.Boolean
+ Line 1399) final TryStmt n2 = (TryStmt) arg ==> com.github.javaparser.ast.stmt.TryStmt
+ Line 1399) (TryStmt) arg ==> com.github.javaparser.ast.stmt.TryStmt
+ Line 1401) !nodeEquals(n1.getTryBlock(), n2.getTryBlock()) ==> boolean
+ Line 1402) Boolean.FALSE ==> java.lang.Boolean
+ Line 1405) !nodesEquals(n1.getCatchs(), n2.getCatchs()) ==> boolean
+ Line 1406) Boolean.FALSE ==> java.lang.Boolean
+ Line 1409) !nodeEquals(n1.getFinallyBlock(), n2.getFinallyBlock()) ==> boolean
+ Line 1410) Boolean.FALSE ==> java.lang.Boolean
+ Line 1413) Boolean.TRUE ==> java.lang.Boolean
+ Line 1417) final CatchClause n2 = (CatchClause) arg ==> com.github.javaparser.ast.stmt.CatchClause
+ Line 1417) (CatchClause) arg ==> com.github.javaparser.ast.stmt.CatchClause
+ Line 1419) !nodeEquals(n1.getExcept(), n2.getExcept()) ==> boolean
+ Line 1420) Boolean.FALSE ==> java.lang.Boolean
+ Line 1423) !nodeEquals(n1.getCatchBlock(), n2.getCatchBlock()) ==> boolean
+ Line 1424) Boolean.FALSE ==> java.lang.Boolean
+ Line 1427) Boolean.TRUE ==> java.lang.Boolean
+ Line 1432) LambdaExpr n2 = (LambdaExpr) arg ==> com.github.javaparser.ast.expr.LambdaExpr
+ Line 1432) (LambdaExpr) arg ==> com.github.javaparser.ast.expr.LambdaExpr
+ Line 1433) !nodesEquals(n1.getParameters(), n2.getParameters()) ==> boolean
+ Line 1434) Boolean.FALSE ==> java.lang.Boolean
+ Line 1436) n1.isParametersEnclosed() != n2.isParametersEnclosed() ==> boolean
+ Line 1437) Boolean.FALSE ==> java.lang.Boolean
+ Line 1439) !nodeEquals(n1.getBody(), n2.getBody()) ==> boolean
+ Line 1440) Boolean.FALSE ==> java.lang.Boolean
+ Line 1442) Boolean.TRUE ==> java.lang.Boolean
+ Line 1447) MethodReferenceExpr n2 = (MethodReferenceExpr) arg ==> com.github.javaparser.ast.expr.MethodReferenceExpr
+ Line 1447) (MethodReferenceExpr) arg ==> com.github.javaparser.ast.expr.MethodReferenceExpr
+ Line 1448) !nodeEquals(n1.getScope(), n2.getScope()) ==> boolean
+ Line 1449) Boolean.FALSE ==> java.lang.Boolean
+ Line 1451) !nodesEquals(n1.getTypeParameters(), n2.getTypeParameters()) ==> boolean
+ Line 1452) Boolean.FALSE ==> java.lang.Boolean
+ Line 1454) !objEquals(n1.getIdentifier(), n2.getIdentifier()) ==> boolean
+ Line 1455) Boolean.FALSE ==> java.lang.Boolean
+ Line 1457) Boolean.TRUE ==> java.lang.Boolean
+ Line 1462) TypeExpr n2 = (TypeExpr) arg ==> com.github.javaparser.ast.expr.TypeExpr
+ Line 1462) (TypeExpr) arg ==> com.github.javaparser.ast.expr.TypeExpr
+ Line 1463) !nodeEquals(n.getType(), n2.getType()) ==> boolean
+ Line 1464) Boolean.FALSE ==> java.lang.Boolean
+ Line 1466) Boolean.TRUE ==> java.lang.Boolean
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_GenericVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_GenericVisitor.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_GenericVisitor.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_GenericVisitorAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_GenericVisitorAdapter.txt
new file mode 100644
index 000000000..a0f97fb06
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_GenericVisitorAdapter.txt
@@ -0,0 +1,836 @@
+
+[ Class com.github.javaparser.ast.visitor.GenericVisitorAdapter ]
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.visitor.GenericVisitor
+ Line 80) n.getJavaDoc() != null ==> boolean
+ Line 82) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 82) n.getJavaDoc().accept(this, arg) ==> R
+ Line 83) result != null ==> boolean
+ Line 84) result ==> R
+ Line 88) n.getAnnotations() != null ==> boolean
+ Line 89) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 89) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 91) R result = a.accept(this, arg) ==> R
+ Line 91) a.accept(this, arg) ==> R
+ Line 92) result != null ==> boolean
+ Line 93) result ==> R
+ Line 98) n.getMembers() != null ==> boolean
+ Line 99) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 99) n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 101) R result = member.accept(this, arg) ==> R
+ Line 101) member.accept(this, arg) ==> R
+ Line 102) result != null ==> boolean
+ Line 103) result ==> R
+ Line 108) null ==> null
+ Line 113) n.getJavaDoc() != null ==> boolean
+ Line 115) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 115) n.getJavaDoc().accept(this, arg) ==> R
+ Line 116) result != null ==> boolean
+ Line 117) result ==> R
+ Line 121) n.getAnnotations() != null ==> boolean
+ Line 122) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 122) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 124) R result = a.accept(this, arg) ==> R
+ Line 124) a.accept(this, arg) ==> R
+ Line 125) result != null ==> boolean
+ Line 126) result ==> R
+ Line 132) R result = n.getType().accept(this, arg) ==> R
+ Line 132) n.getType().accept(this, arg) ==> R
+ Line 133) result != null ==> boolean
+ Line 134) result ==> R
+ Line 137) n.getDefaultValue() != null ==> boolean
+ Line 139) R result = n.getDefaultValue().accept(this, arg) ==> R
+ Line 139) n.getDefaultValue().accept(this, arg) ==> R
+ Line 140) result != null ==> boolean
+ Line 141) result ==> R
+ Line 145) null ==> null
+ Line 151) R result = n.getName().accept(this, arg) ==> R
+ Line 151) n.getName().accept(this, arg) ==> R
+ Line 152) result != null ==> boolean
+ Line 153) result ==> R
+ Line 157) R result = n.getIndex().accept(this, arg) ==> R
+ Line 157) n.getIndex().accept(this, arg) ==> R
+ Line 158) result != null ==> boolean
+ Line 159) result ==> R
+ Line 162) null ==> null
+ Line 168) R result = n.getType().accept(this, arg) ==> R
+ Line 168) n.getType().accept(this, arg) ==> R
+ Line 169) result != null ==> boolean
+ Line 170) result ==> R
+ Line 173) n.getDimensions() != null ==> boolean
+ Line 174) final Expression dim ==> com.github.javaparser.ast.expr.Expression
+ Line 174) n.getDimensions() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 176) R result = dim.accept(this, arg) ==> R
+ Line 176) dim.accept(this, arg) ==> R
+ Line 177) result != null ==> boolean
+ Line 178) result ==> R
+ Line 184) R result = n.getInitializer().accept(this, arg) ==> R
+ Line 184) n.getInitializer().accept(this, arg) ==> R
+ Line 185) result != null ==> boolean
+ Line 186) result ==> R
+ Line 190) null ==> null
+ Line 195) n.getValues() != null ==> boolean
+ Line 196) final Expression expr ==> com.github.javaparser.ast.expr.Expression
+ Line 196) n.getValues() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 198) R result = expr.accept(this, arg) ==> R
+ Line 198) expr.accept(this, arg) ==> R
+ Line 199) result != null ==> boolean
+ Line 200) result ==> R
+ Line 205) null ==> null
+ Line 211) R result = n.getCheck().accept(this, arg) ==> R
+ Line 211) n.getCheck().accept(this, arg) ==> R
+ Line 212) result != null ==> boolean
+ Line 213) result ==> R
+ Line 216) n.getMessage() != null ==> boolean
+ Line 218) R result = n.getMessage().accept(this, arg) ==> R
+ Line 218) n.getMessage().accept(this, arg) ==> R
+ Line 219) result != null ==> boolean
+ Line 220) result ==> R
+ Line 224) null ==> null
+ Line 230) R result = n.getTarget().accept(this, arg) ==> R
+ Line 230) n.getTarget().accept(this, arg) ==> R
+ Line 231) result != null ==> boolean
+ Line 232) result ==> R
+ Line 236) R result = n.getValue().accept(this, arg) ==> R
+ Line 236) n.getValue().accept(this, arg) ==> R
+ Line 237) result != null ==> boolean
+ Line 238) result ==> R
+ Line 241) null ==> null
+ Line 247) R result = n.getLeft().accept(this, arg) ==> R
+ Line 247) n.getLeft().accept(this, arg) ==> R
+ Line 248) result != null ==> boolean
+ Line 249) result ==> R
+ Line 253) R result = n.getRight().accept(this, arg) ==> R
+ Line 253) n.getRight().accept(this, arg) ==> R
+ Line 254) result != null ==> boolean
+ Line 255) result ==> R
+ Line 258) null ==> null
+ Line 263) n.getStmts() != null ==> boolean
+ Line 264) final Statement s ==> com.github.javaparser.ast.stmt.Statement
+ Line 264) n.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 266) R result = s.accept(this, arg) ==> R
+ Line 266) s.accept(this, arg) ==> R
+ Line 267) result != null ==> boolean
+ Line 268) result ==> R
+ Line 273) null ==> null
+ Line 279) null ==> null
+ Line 284) null ==> null
+ Line 290) R result = n.getType().accept(this, arg) ==> R
+ Line 290) n.getType().accept(this, arg) ==> R
+ Line 291) result != null ==> boolean
+ Line 292) result ==> R
+ Line 296) R result = n.getExpr().accept(this, arg) ==> R
+ Line 296) n.getExpr().accept(this, arg) ==> R
+ Line 297) result != null ==> boolean
+ Line 298) result ==> R
+ Line 301) null ==> null
+ Line 307) R result = n.getExcept().accept(this, arg) ==> R
+ Line 307) n.getExcept().accept(this, arg) ==> R
+ Line 308) result != null ==> boolean
+ Line 309) result ==> R
+ Line 313) R result = n.getCatchBlock().accept(this, arg) ==> R
+ Line 313) n.getCatchBlock().accept(this, arg) ==> R
+ Line 314) result != null ==> boolean
+ Line 315) result ==> R
+ Line 318) null ==> null
+ Line 324) null ==> null
+ Line 330) R result = n.getType().accept(this, arg) ==> R
+ Line 330) n.getType().accept(this, arg) ==> R
+ Line 331) result != null ==> boolean
+ Line 332) result ==> R
+ Line 335) null ==> null
+ Line 340) n.getJavaDoc() != null ==> boolean
+ Line 342) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 342) n.getJavaDoc().accept(this, arg) ==> R
+ Line 343) result != null ==> boolean
+ Line 344) result ==> R
+ Line 348) n.getAnnotations() != null ==> boolean
+ Line 349) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 349) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 351) R result = a.accept(this, arg) ==> R
+ Line 351) a.accept(this, arg) ==> R
+ Line 352) result != null ==> boolean
+ Line 353) result ==> R
+ Line 358) n.getTypeParameters() != null ==> boolean
+ Line 359) final TypeParameter t ==> com.github.javaparser.ast.TypeParameter
+ Line 359) n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 361) R result = t.accept(this, arg) ==> R
+ Line 361) t.accept(this, arg) ==> R
+ Line 362) result != null ==> boolean
+ Line 363) result ==> R
+ Line 368) n.getExtends() != null ==> boolean
+ Line 369) final ClassOrInterfaceType c ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 369) n.getExtends() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 371) R result = c.accept(this, arg) ==> R
+ Line 371) c.accept(this, arg) ==> R
+ Line 372) result != null ==> boolean
+ Line 373) result ==> R
+ Line 379) n.getImplements() != null ==> boolean
+ Line 380) final ClassOrInterfaceType c ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 380) n.getImplements() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 382) R result = c.accept(this, arg) ==> R
+ Line 382) c.accept(this, arg) ==> R
+ Line 383) result != null ==> boolean
+ Line 384) result ==> R
+ Line 389) n.getMembers() != null ==> boolean
+ Line 390) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 390) n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 392) R result = member.accept(this, arg) ==> R
+ Line 392) member.accept(this, arg) ==> R
+ Line 393) result != null ==> boolean
+ Line 394) result ==> R
+ Line 399) null ==> null
+ Line 404) n.getScope() != null ==> boolean
+ Line 406) R result = n.getScope().accept(this, arg) ==> R
+ Line 406) n.getScope().accept(this, arg) ==> R
+ Line 407) result != null ==> boolean
+ Line 408) result ==> R
+ Line 412) n.getTypeArgs() != null ==> boolean
+ Line 413) final Type t ==> com.github.javaparser.ast.type.Type
+ Line 413) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 415) R result = t.accept(this, arg) ==> R
+ Line 415) t.accept(this, arg) ==> R
+ Line 416) result != null ==> boolean
+ Line 417) result ==> R
+ Line 422) null ==> null
+ Line 427) n.getPackage() != null ==> boolean
+ Line 429) R result = n.getPackage().accept(this, arg) ==> R
+ Line 429) n.getPackage().accept(this, arg) ==> R
+ Line 430) result != null ==> boolean
+ Line 431) result ==> R
+ Line 435) n.getImports() != null ==> boolean
+ Line 436) final ImportDeclaration i ==> com.github.javaparser.ast.ImportDeclaration
+ Line 436) n.getImports() ==> java.util.List<com.github.javaparser.ast.ImportDeclaration>
+ Line 438) R result = i.accept(this, arg) ==> R
+ Line 438) i.accept(this, arg) ==> R
+ Line 439) result != null ==> boolean
+ Line 440) result ==> R
+ Line 445) n.getTypes() != null ==> boolean
+ Line 446) final TypeDeclaration typeDeclaration ==> com.github.javaparser.ast.body.TypeDeclaration
+ Line 446) n.getTypes() ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 448) R result = typeDeclaration.accept(this, arg) ==> R
+ Line 448) typeDeclaration.accept(this, arg) ==> R
+ Line 449) result != null ==> boolean
+ Line 450) result ==> R
+ Line 455) null ==> null
+ Line 461) R result = n.getCondition().accept(this, arg) ==> R
+ Line 461) n.getCondition().accept(this, arg) ==> R
+ Line 462) result != null ==> boolean
+ Line 463) result ==> R
+ Line 467) R result = n.getThenExpr().accept(this, arg) ==> R
+ Line 467) n.getThenExpr().accept(this, arg) ==> R
+ Line 468) result != null ==> boolean
+ Line 469) result ==> R
+ Line 473) R result = n.getElseExpr().accept(this, arg) ==> R
+ Line 473) n.getElseExpr().accept(this, arg) ==> R
+ Line 474) result != null ==> boolean
+ Line 475) result ==> R
+ Line 478) null ==> null
+ Line 483) n.getJavaDoc() != null ==> boolean
+ Line 485) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 485) n.getJavaDoc().accept(this, arg) ==> R
+ Line 486) result != null ==> boolean
+ Line 487) result ==> R
+ Line 491) n.getAnnotations() != null ==> boolean
+ Line 492) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 492) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 494) R result = a.accept(this, arg) ==> R
+ Line 494) a.accept(this, arg) ==> R
+ Line 495) result != null ==> boolean
+ Line 496) result ==> R
+ Line 501) n.getTypeParameters() != null ==> boolean
+ Line 502) final TypeParameter t ==> com.github.javaparser.ast.TypeParameter
+ Line 502) n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 504) R result = t.accept(this, arg) ==> R
+ Line 504) t.accept(this, arg) ==> R
+ Line 505) result != null ==> boolean
+ Line 506) result ==> R
+ Line 511) n.getParameters() != null ==> boolean
+ Line 512) final Parameter p ==> com.github.javaparser.ast.body.Parameter
+ Line 512) n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 514) R result = p.accept(this, arg) ==> R
+ Line 514) p.accept(this, arg) ==> R
+ Line 515) result != null ==> boolean
+ Line 516) result ==> R
+ Line 521) n.getThrows() != null ==> boolean
+ Line 522) final NameExpr name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 522) n.getThrows() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 524) R result = name.accept(this, arg) ==> R
+ Line 524) name.accept(this, arg) ==> R
+ Line 525) result != null ==> boolean
+ Line 526) result ==> R
+ Line 532) R result = n.getBlock().accept(this, arg) ==> R
+ Line 532) n.getBlock().accept(this, arg) ==> R
+ Line 533) result != null ==> boolean
+ Line 534) result ==> R
+ Line 537) null ==> null
+ Line 542) null ==> null
+ Line 548) R result = n.getBody().accept(this, arg) ==> R
+ Line 548) n.getBody().accept(this, arg) ==> R
+ Line 549) result != null ==> boolean
+ Line 550) result ==> R
+ Line 554) R result = n.getCondition().accept(this, arg) ==> R
+ Line 554) n.getCondition().accept(this, arg) ==> R
+ Line 555) result != null ==> boolean
+ Line 556) result ==> R
+ Line 559) null ==> null
+ Line 564) null ==> null
+ Line 569) n.getJavaDoc() != null ==> boolean
+ Line 571) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 571) n.getJavaDoc().accept(this, arg) ==> R
+ Line 572) result != null ==> boolean
+ Line 573) result ==> R
+ Line 577) null ==> null
+ Line 582) null ==> null
+ Line 587) n.getJavaDoc() != null ==> boolean
+ Line 589) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 589) n.getJavaDoc().accept(this, arg) ==> R
+ Line 590) result != null ==> boolean
+ Line 591) result ==> R
+ Line 595) null ==> null
+ Line 601) R result = n.getInner().accept(this, arg) ==> R
+ Line 601) n.getInner().accept(this, arg) ==> R
+ Line 602) result != null ==> boolean
+ Line 603) result ==> R
+ Line 606) null ==> null
+ Line 611) n.getJavaDoc() != null ==> boolean
+ Line 613) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 613) n.getJavaDoc().accept(this, arg) ==> R
+ Line 614) result != null ==> boolean
+ Line 615) result ==> R
+ Line 619) n.getAnnotations() != null ==> boolean
+ Line 620) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 620) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 622) R result = a.accept(this, arg) ==> R
+ Line 622) a.accept(this, arg) ==> R
+ Line 623) result != null ==> boolean
+ Line 624) result ==> R
+ Line 629) n.getArgs() != null ==> boolean
+ Line 630) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 630) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 632) R result = e.accept(this, arg) ==> R
+ Line 632) e.accept(this, arg) ==> R
+ Line 633) result != null ==> boolean
+ Line 634) result ==> R
+ Line 639) n.getClassBody() != null ==> boolean
+ Line 640) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 640) n.getClassBody() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 642) R result = member.accept(this, arg) ==> R
+ Line 642) member.accept(this, arg) ==> R
+ Line 643) result != null ==> boolean
+ Line 644) result ==> R
+ Line 649) null ==> null
+ Line 654) n.getJavaDoc() != null ==> boolean
+ Line 656) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 656) n.getJavaDoc().accept(this, arg) ==> R
+ Line 657) result != null ==> boolean
+ Line 658) result ==> R
+ Line 662) n.getAnnotations() != null ==> boolean
+ Line 663) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 663) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 665) R result = a.accept(this, arg) ==> R
+ Line 665) a.accept(this, arg) ==> R
+ Line 666) result != null ==> boolean
+ Line 667) result ==> R
+ Line 672) n.getImplements() != null ==> boolean
+ Line 673) final ClassOrInterfaceType c ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 673) n.getImplements() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 675) R result = c.accept(this, arg) ==> R
+ Line 675) c.accept(this, arg) ==> R
+ Line 676) result != null ==> boolean
+ Line 677) result ==> R
+ Line 682) n.getEntries() != null ==> boolean
+ Line 683) final EnumConstantDeclaration e ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 683) n.getEntries() ==> java.util.List<com.github.javaparser.ast.body.EnumConstantDeclaration>
+ Line 685) R result = e.accept(this, arg) ==> R
+ Line 685) e.accept(this, arg) ==> R
+ Line 686) result != null ==> boolean
+ Line 687) result ==> R
+ Line 692) n.getMembers() != null ==> boolean
+ Line 693) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 693) n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 695) R result = member.accept(this, arg) ==> R
+ Line 695) member.accept(this, arg) ==> R
+ Line 696) result != null ==> boolean
+ Line 697) result ==> R
+ Line 702) null ==> null
+ Line 707) !n.isThis() ==> boolean
+ Line 708) n.getExpr() != null ==> boolean
+ Line 710) R result = n.getExpr().accept(this, arg) ==> R
+ Line 710) n.getExpr().accept(this, arg) ==> R
+ Line 711) result != null ==> boolean
+ Line 712) result ==> R
+ Line 717) n.getTypeArgs() != null ==> boolean
+ Line 718) final Type t ==> com.github.javaparser.ast.type.Type
+ Line 718) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 720) R result = t.accept(this, arg) ==> R
+ Line 720) t.accept(this, arg) ==> R
+ Line 721) result != null ==> boolean
+ Line 722) result ==> R
+ Line 727) n.getArgs() != null ==> boolean
+ Line 728) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 728) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 730) R result = e.accept(this, arg) ==> R
+ Line 730) e.accept(this, arg) ==> R
+ Line 731) result != null ==> boolean
+ Line 732) result ==> R
+ Line 737) null ==> null
+ Line 743) R result = n.getExpression().accept(this, arg) ==> R
+ Line 743) n.getExpression().accept(this, arg) ==> R
+ Line 744) result != null ==> boolean
+ Line 745) result ==> R
+ Line 748) null ==> null
+ Line 754) R result = n.getScope().accept(this, arg) ==> R
+ Line 754) n.getScope().accept(this, arg) ==> R
+ Line 755) result != null ==> boolean
+ Line 756) result ==> R
+ Line 759) null ==> null
+ Line 764) n.getJavaDoc() != null ==> boolean
+ Line 766) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 766) n.getJavaDoc().accept(this, arg) ==> R
+ Line 767) result != null ==> boolean
+ Line 768) result ==> R
+ Line 772) n.getAnnotations() != null ==> boolean
+ Line 773) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 773) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 775) R result = a.accept(this, arg) ==> R
+ Line 775) a.accept(this, arg) ==> R
+ Line 776) result != null ==> boolean
+ Line 777) result ==> R
+ Line 783) R result = n.getType().accept(this, arg) ==> R
+ Line 783) n.getType().accept(this, arg) ==> R
+ Line 784) result != null ==> boolean
+ Line 785) result ==> R
+ Line 788) final VariableDeclarator var ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 788) n.getVariables() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 790) R result = var.accept(this, arg) ==> R
+ Line 790) var.accept(this, arg) ==> R
+ Line 791) result != null ==> boolean
+ Line 792) result ==> R
+ Line 796) null ==> null
+ Line 802) R result = n.getVariable().accept(this, arg) ==> R
+ Line 802) n.getVariable().accept(this, arg) ==> R
+ Line 803) result != null ==> boolean
+ Line 804) result ==> R
+ Line 808) R result = n.getIterable().accept(this, arg) ==> R
+ Line 808) n.getIterable().accept(this, arg) ==> R
+ Line 809) result != null ==> boolean
+ Line 810) result ==> R
+ Line 814) R result = n.getBody().accept(this, arg) ==> R
+ Line 814) n.getBody().accept(this, arg) ==> R
+ Line 815) result != null ==> boolean
+ Line 816) result ==> R
+ Line 819) null ==> null
+ Line 824) n.getInit() != null ==> boolean
+ Line 825) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 825) n.getInit() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 827) R result = e.accept(this, arg) ==> R
+ Line 827) e.accept(this, arg) ==> R
+ Line 828) result != null ==> boolean
+ Line 829) result ==> R
+ Line 834) n.getCompare() != null ==> boolean
+ Line 836) R result = n.getCompare().accept(this, arg) ==> R
+ Line 836) n.getCompare().accept(this, arg) ==> R
+ Line 837) result != null ==> boolean
+ Line 838) result ==> R
+ Line 842) n.getUpdate() != null ==> boolean
+ Line 843) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 843) n.getUpdate() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 845) R result = e.accept(this, arg) ==> R
+ Line 845) e.accept(this, arg) ==> R
+ Line 846) result != null ==> boolean
+ Line 847) result ==> R
+ Line 853) R result = n.getBody().accept(this, arg) ==> R
+ Line 853) n.getBody().accept(this, arg) ==> R
+ Line 854) result != null ==> boolean
+ Line 855) result ==> R
+ Line 858) null ==> null
+ Line 864) R result = n.getCondition().accept(this, arg) ==> R
+ Line 864) n.getCondition().accept(this, arg) ==> R
+ Line 865) result != null ==> boolean
+ Line 866) result ==> R
+ Line 870) R result = n.getThenStmt().accept(this, arg) ==> R
+ Line 870) n.getThenStmt().accept(this, arg) ==> R
+ Line 871) result != null ==> boolean
+ Line 872) result ==> R
+ Line 875) n.getElseStmt() != null ==> boolean
+ Line 877) R result = n.getElseStmt().accept(this, arg) ==> R
+ Line 877) n.getElseStmt().accept(this, arg) ==> R
+ Line 878) result != null ==> boolean
+ Line 879) result ==> R
+ Line 883) null ==> null
+ Line 889) R result = n.getName().accept(this, arg) ==> R
+ Line 889) n.getName().accept(this, arg) ==> R
+ Line 890) result != null ==> boolean
+ Line 891) result ==> R
+ Line 894) null ==> null
+ Line 899) n.getJavaDoc() != null ==> boolean
+ Line 901) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 901) n.getJavaDoc().accept(this, arg) ==> R
+ Line 902) result != null ==> boolean
+ Line 903) result ==> R
+ Line 908) R result = n.getBlock().accept(this, arg) ==> R
+ Line 908) n.getBlock().accept(this, arg) ==> R
+ Line 909) result != null ==> boolean
+ Line 910) result ==> R
+ Line 913) null ==> null
+ Line 919) R result = n.getExpr().accept(this, arg) ==> R
+ Line 919) n.getExpr().accept(this, arg) ==> R
+ Line 920) result != null ==> boolean
+ Line 921) result ==> R
+ Line 925) R result = n.getType().accept(this, arg) ==> R
+ Line 925) n.getType().accept(this, arg) ==> R
+ Line 926) result != null ==> boolean
+ Line 927) result ==> R
+ Line 930) null ==> null
+ Line 935) null ==> null
+ Line 940) null ==> null
+ Line 945) null ==> null
+ Line 951) R result = n.getStmt().accept(this, arg) ==> R
+ Line 951) n.getStmt().accept(this, arg) ==> R
+ Line 952) result != null ==> boolean
+ Line 953) result ==> R
+ Line 956) null ==> null
+ Line 961) null ==> null
+ Line 966) null ==> null
+ Line 972) R result = n.getName().accept(this, arg) ==> R
+ Line 972) n.getName().accept(this, arg) ==> R
+ Line 973) result != null ==> boolean
+ Line 974) result ==> R
+ Line 977) null ==> null
+ Line 983) R result = n.getValue().accept(this, arg) ==> R
+ Line 983) n.getValue().accept(this, arg) ==> R
+ Line 984) result != null ==> boolean
+ Line 985) result ==> R
+ Line 988) null ==> null
+ Line 993) n.getScope() != null ==> boolean
+ Line 995) R result = n.getScope().accept(this, arg) ==> R
+ Line 995) n.getScope().accept(this, arg) ==> R
+ Line 996) result != null ==> boolean
+ Line 997) result ==> R
+ Line 1001) n.getTypeArgs() != null ==> boolean
+ Line 1002) final Type t ==> com.github.javaparser.ast.type.Type
+ Line 1002) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 1004) R result = t.accept(this, arg) ==> R
+ Line 1004) t.accept(this, arg) ==> R
+ Line 1005) result != null ==> boolean
+ Line 1006) result ==> R
+ Line 1011) n.getArgs() != null ==> boolean
+ Line 1012) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 1012) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 1014) R result = e.accept(this, arg) ==> R
+ Line 1014) e.accept(this, arg) ==> R
+ Line 1015) result != null ==> boolean
+ Line 1016) result ==> R
+ Line 1021) null ==> null
+ Line 1026) n.getJavaDoc() != null ==> boolean
+ Line 1028) R result = n.getJavaDoc().accept(this, arg) ==> R
+ Line 1028) n.getJavaDoc().accept(this, arg) ==> R
+ Line 1029) result != null ==> boolean
+ Line 1030) result ==> R
+ Line 1034) n.getAnnotations() != null ==> boolean
+ Line 1035) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 1035) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 1037) R result = a.accept(this, arg) ==> R
+ Line 1037) a.accept(this, arg) ==> R
+ Line 1038) result != null ==> boolean
+ Line 1039) result ==> R
+ Line 1044) n.getTypeParameters() != null ==> boolean
+ Line 1045) final TypeParameter t ==> com.github.javaparser.ast.TypeParameter
+ Line 1045) n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 1047) R result = t.accept(this, arg) ==> R
+ Line 1047) t.accept(this, arg) ==> R
+ Line 1048) result != null ==> boolean
+ Line 1049) result ==> R
+ Line 1055) R result = n.getType().accept(this, arg) ==> R
+ Line 1055) n.getType().accept(this, arg) ==> R
+ Line 1056) result != null ==> boolean
+ Line 1057) result ==> R
+ Line 1060) n.getParameters() != null ==> boolean
+ Line 1061) final Parameter p ==> com.github.javaparser.ast.body.Parameter
+ Line 1061) n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 1063) R result = p.accept(this, arg) ==> R
+ Line 1063) p.accept(this, arg) ==> R
+ Line 1064) result != null ==> boolean
+ Line 1065) result ==> R
+ Line 1070) n.getThrows() != null ==> boolean
+ Line 1071) final NameExpr name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 1071) n.getThrows() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 1073) R result = name.accept(this, arg) ==> R
+ Line 1073) name.accept(this, arg) ==> R
+ Line 1074) result != null ==> boolean
+ Line 1075) result ==> R
+ Line 1080) n.getBody() != null ==> boolean
+ Line 1082) R result = n.getBody().accept(this, arg) ==> R
+ Line 1082) n.getBody().accept(this, arg) ==> R
+ Line 1083) result != null ==> boolean
+ Line 1084) result ==> R
+ Line 1088) null ==> null
+ Line 1093) null ==> null
+ Line 1099) R result = n.getName().accept(this, arg) ==> R
+ Line 1099) n.getName().accept(this, arg) ==> R
+ Line 1100) result != null ==> boolean
+ Line 1101) result ==> R
+ Line 1104) n.getPairs() != null ==> boolean
+ Line 1105) final MemberValuePair m ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 1105) n.getPairs() ==> java.util.List<com.github.javaparser.ast.expr.MemberValuePair>
+ Line 1107) R result = m.accept(this, arg) ==> R
+ Line 1107) m.accept(this, arg) ==> R
+ Line 1108) result != null ==> boolean
+ Line 1109) result ==> R
+ Line 1114) null ==> null
+ Line 1119) null ==> null
+ Line 1124) n.getScope() != null ==> boolean
+ Line 1126) R result = n.getScope().accept(this, arg) ==> R
+ Line 1126) n.getScope().accept(this, arg) ==> R
+ Line 1127) result != null ==> boolean
+ Line 1128) result ==> R
+ Line 1132) n.getTypeArgs() != null ==> boolean
+ Line 1133) final Type t ==> com.github.javaparser.ast.type.Type
+ Line 1133) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 1135) R result = t.accept(this, arg) ==> R
+ Line 1135) t.accept(this, arg) ==> R
+ Line 1136) result != null ==> boolean
+ Line 1137) result ==> R
+ Line 1143) R result = n.getType().accept(this, arg) ==> R
+ Line 1143) n.getType().accept(this, arg) ==> R
+ Line 1144) result != null ==> boolean
+ Line 1145) result ==> R
+ Line 1148) n.getArgs() != null ==> boolean
+ Line 1149) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 1149) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 1151) R result = e.accept(this, arg) ==> R
+ Line 1151) e.accept(this, arg) ==> R
+ Line 1152) result != null ==> boolean
+ Line 1153) result ==> R
+ Line 1158) n.getAnonymousClassBody() != null ==> boolean
+ Line 1159) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 1159) n.getAnonymousClassBody() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 1161) R result = member.accept(this, arg) ==> R
+ Line 1161) member.accept(this, arg) ==> R
+ Line 1162) result != null ==> boolean
+ Line 1163) result ==> R
+ Line 1168) null ==> null
+ Line 1173) n.getAnnotations() != null ==> boolean
+ Line 1174) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 1174) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 1176) R result = a.accept(this, arg) ==> R
+ Line 1176) a.accept(this, arg) ==> R
+ Line 1177) result != null ==> boolean
+ Line 1178) result ==> R
+ Line 1184) R result = n.getName().accept(this, arg) ==> R
+ Line 1184) n.getName().accept(this, arg) ==> R
+ Line 1185) result != null ==> boolean
+ Line 1186) result ==> R
+ Line 1189) null ==> null
+ Line 1194) n.getAnnotations() != null ==> boolean
+ Line 1195) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 1195) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 1197) R result = a.accept(this, arg) ==> R
+ Line 1197) a.accept(this, arg) ==> R
+ Line 1198) result != null ==> boolean
+ Line 1199) result ==> R
+ Line 1205) R result = n.getType().accept(this, arg) ==> R
+ Line 1205) n.getType().accept(this, arg) ==> R
+ Line 1206) result != null ==> boolean
+ Line 1207) result ==> R
+ Line 1211) R result = n.getId().accept(this, arg) ==> R
+ Line 1211) n.getId().accept(this, arg) ==> R
+ Line 1212) result != null ==> boolean
+ Line 1213) result ==> R
+ Line 1216) null ==> null
+ Line 1221) n.getAnnotations() != null ==> boolean
+ Line 1222) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 1222) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 1224) R result = a.accept(this, arg) ==> R
+ Line 1224) a.accept(this, arg) ==> R
+ Line 1225) result != null ==> boolean
+ Line 1226) result ==> R
+ Line 1232) final Type type ==> com.github.javaparser.ast.type.Type
+ Line 1232) n.getTypes() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 1233) R result = type.accept(this, arg) ==> R
+ Line 1233) type.accept(this, arg) ==> R
+ Line 1234) result != null ==> boolean
+ Line 1235) result ==> R
+ Line 1240) R result = n.getId().accept(this, arg) ==> R
+ Line 1240) n.getId().accept(this, arg) ==> R
+ Line 1241) result != null ==> boolean
+ Line 1242) result ==> R
+ Line 1245) null ==> null
+ Line 1250) null ==> null
+ Line 1256) R result = n.getQualifier().accept(this, arg) ==> R
+ Line 1256) n.getQualifier().accept(this, arg) ==> R
+ Line 1257) result != null ==> boolean
+ Line 1258) result ==> R
+ Line 1261) null ==> null
+ Line 1267) R result = n.getType().accept(this, arg) ==> R
+ Line 1267) n.getType().accept(this, arg) ==> R
+ Line 1268) result != null ==> boolean
+ Line 1269) result ==> R
+ Line 1272) null ==> null
+ Line 1277) n.getExpr() != null ==> boolean
+ Line 1279) R result = n.getExpr().accept(this, arg) ==> R
+ Line 1279) n.getExpr().accept(this, arg) ==> R
+ Line 1280) result != null ==> boolean
+ Line 1281) result ==> R
+ Line 1285) null ==> null
+ Line 1291) R result = n.getName().accept(this, arg) ==> R
+ Line 1291) n.getName().accept(this, arg) ==> R
+ Line 1292) result != null ==> boolean
+ Line 1293) result ==> R
+ Line 1297) R result = n.getMemberValue().accept(this, arg) ==> R
+ Line 1297) n.getMemberValue().accept(this, arg) ==> R
+ Line 1298) result != null ==> boolean
+ Line 1299) result ==> R
+ Line 1302) null ==> null
+ Line 1307) null ==> null
+ Line 1312) n.getClassExpr() != null ==> boolean
+ Line 1314) R result = n.getClassExpr().accept(this, arg) ==> R
+ Line 1314) n.getClassExpr().accept(this, arg) ==> R
+ Line 1315) result != null ==> boolean
+ Line 1316) result ==> R
+ Line 1320) null ==> null
+ Line 1325) n.getLabel() != null ==> boolean
+ Line 1327) R result = n.getLabel().accept(this, arg) ==> R
+ Line 1327) n.getLabel().accept(this, arg) ==> R
+ Line 1328) result != null ==> boolean
+ Line 1329) result ==> R
+ Line 1333) n.getStmts() != null ==> boolean
+ Line 1334) final Statement s ==> com.github.javaparser.ast.stmt.Statement
+ Line 1334) n.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 1336) R result = s.accept(this, arg) ==> R
+ Line 1336) s.accept(this, arg) ==> R
+ Line 1337) result != null ==> boolean
+ Line 1338) result ==> R
+ Line 1343) null ==> null
+ Line 1349) R result = n.getSelector().accept(this, arg) ==> R
+ Line 1349) n.getSelector().accept(this, arg) ==> R
+ Line 1350) result != null ==> boolean
+ Line 1351) result ==> R
+ Line 1354) n.getEntries() != null ==> boolean
+ Line 1355) final SwitchEntryStmt e ==> com.github.javaparser.ast.stmt.SwitchEntryStmt
+ Line 1355) n.getEntries() ==> java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>
+ Line 1357) R result = e.accept(this, arg) ==> R
+ Line 1357) e.accept(this, arg) ==> R
+ Line 1358) result != null ==> boolean
+ Line 1359) result ==> R
+ Line 1364) null ==> null
+ Line 1371) n.getExpr() != null ==> boolean
+ Line 1372) R result = n.getExpr().accept(this, arg) ==> R
+ Line 1372) n.getExpr().accept(this, arg) ==> R
+ Line 1373) result != null ==> boolean
+ Line 1374) result ==> R
+ Line 1379) R result = n.getBlock().accept(this, arg) ==> R
+ Line 1379) n.getBlock().accept(this, arg) ==> R
+ Line 1380) result != null ==> boolean
+ Line 1381) result ==> R
+ Line 1384) null ==> null
+ Line 1389) n.getClassExpr() != null ==> boolean
+ Line 1391) R result = n.getClassExpr().accept(this, arg) ==> R
+ Line 1391) n.getClassExpr().accept(this, arg) ==> R
+ Line 1392) result != null ==> boolean
+ Line 1393) result ==> R
+ Line 1397) null ==> null
+ Line 1403) R result = n.getExpr().accept(this, arg) ==> R
+ Line 1403) n.getExpr().accept(this, arg) ==> R
+ Line 1404) result != null ==> boolean
+ Line 1405) result ==> R
+ Line 1408) null ==> null
+ Line 1413) n.getResources() != null ==> boolean
+ Line 1414) final VariableDeclarationExpr v ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 1414) n.getResources() ==> java.util.List<com.github.javaparser.ast.expr.VariableDeclarationExpr>
+ Line 1416) R result = v.accept(this, arg) ==> R
+ Line 1416) v.accept(this, arg) ==> R
+ Line 1417) result != null ==> boolean
+ Line 1418) result ==> R
+ Line 1424) R result = n.getTryBlock().accept(this, arg) ==> R
+ Line 1424) n.getTryBlock().accept(this, arg) ==> R
+ Line 1425) result != null ==> boolean
+ Line 1426) result ==> R
+ Line 1429) n.getCatchs() != null ==> boolean
+ Line 1430) final CatchClause c ==> com.github.javaparser.ast.stmt.CatchClause
+ Line 1430) n.getCatchs() ==> java.util.List<com.github.javaparser.ast.stmt.CatchClause>
+ Line 1432) R result = c.accept(this, arg) ==> R
+ Line 1432) c.accept(this, arg) ==> R
+ Line 1433) result != null ==> boolean
+ Line 1434) result ==> R
+ Line 1439) n.getFinallyBlock() != null ==> boolean
+ Line 1441) R result = n.getFinallyBlock().accept(this, arg) ==> R
+ Line 1441) n.getFinallyBlock().accept(this, arg) ==> R
+ Line 1442) result != null ==> boolean
+ Line 1443) result ==> R
+ Line 1447) null ==> null
+ Line 1453) R result = n.getTypeDeclaration().accept(this, arg) ==> R
+ Line 1453) n.getTypeDeclaration().accept(this, arg) ==> R
+ Line 1454) result != null ==> boolean
+ Line 1455) result ==> R
+ Line 1458) null ==> null
+ Line 1463) n.getTypeBound() != null ==> boolean
+ Line 1464) final ClassOrInterfaceType c ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 1464) n.getTypeBound() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 1466) R result = c.accept(this, arg) ==> R
+ Line 1466) c.accept(this, arg) ==> R
+ Line 1467) result != null ==> boolean
+ Line 1468) result ==> R
+ Line 1473) null ==> null
+ Line 1479) R result = n.getExpr().accept(this, arg) ==> R
+ Line 1479) n.getExpr().accept(this, arg) ==> R
+ Line 1480) result != null ==> boolean
+ Line 1481) result ==> R
+ Line 1484) null ==> null
+ Line 1489) null ==> null
+ Line 1494) n.getAnnotations() != null ==> boolean
+ Line 1495) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 1495) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 1497) R result = a.accept(this, arg) ==> R
+ Line 1497) a.accept(this, arg) ==> R
+ Line 1498) result != null ==> boolean
+ Line 1499) result ==> R
+ Line 1505) R result = n.getType().accept(this, arg) ==> R
+ Line 1505) n.getType().accept(this, arg) ==> R
+ Line 1506) result != null ==> boolean
+ Line 1507) result ==> R
+ Line 1510) final VariableDeclarator v ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 1510) n.getVars() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 1512) R result = v.accept(this, arg) ==> R
+ Line 1512) v.accept(this, arg) ==> R
+ Line 1513) result != null ==> boolean
+ Line 1514) result ==> R
+ Line 1518) null ==> null
+ Line 1524) R result = n.getId().accept(this, arg) ==> R
+ Line 1524) n.getId().accept(this, arg) ==> R
+ Line 1525) result != null ==> boolean
+ Line 1526) result ==> R
+ Line 1529) n.getInit() != null ==> boolean
+ Line 1531) R result = n.getInit().accept(this, arg) ==> R
+ Line 1531) n.getInit().accept(this, arg) ==> R
+ Line 1532) result != null ==> boolean
+ Line 1533) result ==> R
+ Line 1537) null ==> null
+ Line 1542) null ==> null
+ Line 1547) null ==> null
+ Line 1553) R result = n.getCondition().accept(this, arg) ==> R
+ Line 1553) n.getCondition().accept(this, arg) ==> R
+ Line 1554) result != null ==> boolean
+ Line 1555) result ==> R
+ Line 1559) R result = n.getBody().accept(this, arg) ==> R
+ Line 1559) n.getBody().accept(this, arg) ==> R
+ Line 1560) result != null ==> boolean
+ Line 1561) result ==> R
+ Line 1564) null ==> null
+ Line 1569) n.getExtends() != null ==> boolean
+ Line 1571) R result = n.getExtends().accept(this, arg) ==> R
+ Line 1571) n.getExtends().accept(this, arg) ==> R
+ Line 1572) result != null ==> boolean
+ Line 1573) result ==> R
+ Line 1577) n.getSuper() != null ==> boolean
+ Line 1579) R result = n.getSuper().accept(this, arg) ==> R
+ Line 1579) n.getSuper().accept(this, arg) ==> R
+ Line 1580) result != null ==> boolean
+ Line 1581) result ==> R
+ Line 1585) null ==> null
+ Line 1590) null ==> null
+ Line 1595) null ==> null
+ Line 1600) null ==> null
+ Line 1605) null ==> null
+ Line 1610) null ==> null
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_ModifierVisitorAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_ModifierVisitorAdapter.txt
new file mode 100644
index 000000000..a02c6994a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_ModifierVisitorAdapter.txt
@@ -0,0 +1,662 @@
+
+[ Class com.github.javaparser.ast.visitor.ModifierVisitorAdapter ]
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.visitor.GenericVisitor
+ Line 124) int i = list.size() - 1 ==> int
+ Line 124) list.size() - 1 ==> int
+ Line 124) i >= 0 ==> boolean
+ Line 124) i-- ==> int
+ Line 125) list.get(i) == null ==> boolean
+ Line 126) list.remove(i) ==> ?
+ Line 132) n.getJavaDoc() != null ==> boolean
+ Line 133) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 135) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 135) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 136) annotations != null ==> boolean
+ Line 137) int i = 0 ==> int
+ Line 137) 0 ==> int
+ Line 137) i < annotations.size() ==> boolean
+ Line 137) i++ ==> int
+ Line 138) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 140) removeNulls(annotations) ==> void
+ Line 142) final List<BodyDeclaration> members = n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 142) n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 143) members != null ==> boolean
+ Line 144) int i = 0 ==> int
+ Line 144) 0 ==> int
+ Line 144) i < members.size() ==> boolean
+ Line 144) i++ ==> int
+ Line 145) members.set(i, (BodyDeclaration) members.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 147) removeNulls(members) ==> void
+ Line 149) n ==> com.github.javaparser.ast.body.AnnotationDeclaration
+ Line 153) n.getJavaDoc() != null ==> boolean
+ Line 154) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 156) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 156) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 157) annotations != null ==> boolean
+ Line 158) int i = 0 ==> int
+ Line 158) 0 ==> int
+ Line 158) i < annotations.size() ==> boolean
+ Line 158) i++ ==> int
+ Line 159) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 161) removeNulls(annotations) ==> void
+ Line 163) n.setType((Type) n.getType().accept(this, arg)) ==> void
+ Line 164) n.getDefaultValue() != null ==> boolean
+ Line 165) n.setDefaultValue((Expression) n.getDefaultValue().accept(this, arg)) ==> void
+ Line 167) n ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration
+ Line 171) n.setName((Expression) n.getName().accept(this, arg)) ==> void
+ Line 172) n.setIndex((Expression) n.getIndex().accept(this, arg)) ==> void
+ Line 173) n ==> com.github.javaparser.ast.expr.ArrayAccessExpr
+ Line 177) n.setType((Type) n.getType().accept(this, arg)) ==> void
+ Line 178) n.getDimensions() != null ==> boolean
+ Line 179) final List<Expression> dimensions = n.getDimensions() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 179) n.getDimensions() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 180) dimensions != null ==> boolean
+ Line 181) int i = 0 ==> int
+ Line 181) 0 ==> int
+ Line 181) i < dimensions.size() ==> boolean
+ Line 181) i++ ==> int
+ Line 182) dimensions.set(i, (Expression) dimensions.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.Expression
+ Line 184) removeNulls(dimensions) ==> void
+ Line 187) n.setInitializer((ArrayInitializerExpr) n.getInitializer().accept(this, arg)) ==> void
+ Line 189) n ==> com.github.javaparser.ast.expr.ArrayCreationExpr
+ Line 193) n.getValues() != null ==> boolean
+ Line 194) final List<Expression> values = n.getValues() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 194) n.getValues() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 195) values != null ==> boolean
+ Line 196) int i = 0 ==> int
+ Line 196) 0 ==> int
+ Line 196) i < values.size() ==> boolean
+ Line 196) i++ ==> int
+ Line 197) values.set(i, (Expression) values.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.Expression
+ Line 199) removeNulls(values) ==> void
+ Line 202) n ==> com.github.javaparser.ast.expr.ArrayInitializerExpr
+ Line 206) n.setCheck((Expression) n.getCheck().accept(this, arg)) ==> void
+ Line 207) n.getMessage() != null ==> boolean
+ Line 208) n.setMessage((Expression) n.getMessage().accept(this, arg)) ==> void
+ Line 210) n ==> com.github.javaparser.ast.stmt.AssertStmt
+ Line 214) n.setTarget((Expression) n.getTarget().accept(this, arg)) ==> void
+ Line 215) n.setValue((Expression) n.getValue().accept(this, arg)) ==> void
+ Line 216) n ==> com.github.javaparser.ast.expr.AssignExpr
+ Line 220) n.setLeft((Expression) n.getLeft().accept(this, arg)) ==> void
+ Line 221) n.setRight((Expression) n.getRight().accept(this, arg)) ==> void
+ Line 222) n ==> com.github.javaparser.ast.expr.BinaryExpr
+ Line 226) final List<Statement> stmts = n.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 226) n.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 227) stmts != null ==> boolean
+ Line 228) int i = 0 ==> int
+ Line 228) 0 ==> int
+ Line 228) i < stmts.size() ==> boolean
+ Line 228) i++ ==> int
+ Line 229) stmts.set(i, (Statement) stmts.get(i).accept(this, arg)) ==> com.github.javaparser.ast.stmt.Statement
+ Line 231) removeNulls(stmts) ==> void
+ Line 233) n ==> com.github.javaparser.ast.stmt.BlockStmt
+ Line 237) n ==> com.github.javaparser.ast.expr.BooleanLiteralExpr
+ Line 241) n ==> com.github.javaparser.ast.stmt.BreakStmt
+ Line 245) n.setType((Type) n.getType().accept(this, arg)) ==> void
+ Line 246) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> void
+ Line 247) n ==> com.github.javaparser.ast.expr.CastExpr
+ Line 251) n.setExcept((MultiTypeParameter) n.getExcept().accept(this, arg)) ==> void
+ Line 252) n.setCatchBlock((BlockStmt) n.getCatchBlock().accept(this, arg)) ==> void
+ Line 253) n ==> com.github.javaparser.ast.stmt.CatchClause
+ Line 258) n ==> com.github.javaparser.ast.expr.CharLiteralExpr
+ Line 262) n.setType((Type) n.getType().accept(this, arg)) ==> void
+ Line 263) n ==> com.github.javaparser.ast.expr.ClassExpr
+ Line 267) n.getJavaDoc() != null ==> boolean
+ Line 268) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 270) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 270) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 271) annotations != null ==> boolean
+ Line 272) int i = 0 ==> int
+ Line 272) 0 ==> int
+ Line 272) i < annotations.size() ==> boolean
+ Line 272) i++ ==> int
+ Line 273) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 275) removeNulls(annotations) ==> void
+ Line 277) final List<TypeParameter> typeParameters = n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 277) n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 278) typeParameters != null ==> boolean
+ Line 279) int i = 0 ==> int
+ Line 279) 0 ==> int
+ Line 279) i < typeParameters.size() ==> boolean
+ Line 279) i++ ==> int
+ Line 280) typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg)) ==> com.github.javaparser.ast.TypeParameter
+ Line 282) removeNulls(typeParameters) ==> void
+ Line 284) final List<ClassOrInterfaceType> extendz = n.getExtends() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 284) n.getExtends() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 285) extendz != null ==> boolean
+ Line 286) int i = 0 ==> int
+ Line 286) 0 ==> int
+ Line 286) i < extendz.size() ==> boolean
+ Line 286) i++ ==> int
+ Line 287) extendz.set(i, (ClassOrInterfaceType) extendz.get(i).accept(this, arg)) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 289) removeNulls(extendz) ==> void
+ Line 291) final List<ClassOrInterfaceType> implementz = n.getImplements() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 291) n.getImplements() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 292) implementz != null ==> boolean
+ Line 293) int i = 0 ==> int
+ Line 293) 0 ==> int
+ Line 293) i < implementz.size() ==> boolean
+ Line 293) i++ ==> int
+ Line 294) implementz.set(i, (ClassOrInterfaceType) implementz.get(i).accept(this, arg)) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 296) removeNulls(implementz) ==> void
+ Line 298) final List<BodyDeclaration> members = n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 298) n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 299) members != null ==> boolean
+ Line 300) int i = 0 ==> int
+ Line 300) 0 ==> int
+ Line 300) i < members.size() ==> boolean
+ Line 300) i++ ==> int
+ Line 301) members.set(i, (BodyDeclaration) members.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 303) removeNulls(members) ==> void
+ Line 305) n ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration
+ Line 309) n.getScope() != null ==> boolean
+ Line 310) n.setScope((ClassOrInterfaceType) n.getScope().accept(this, arg)) ==> void
+ Line 312) final List<Type> typeArgs = n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 312) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 313) typeArgs != null ==> boolean
+ Line 314) int i = 0 ==> int
+ Line 314) 0 ==> int
+ Line 314) i < typeArgs.size() ==> boolean
+ Line 314) i++ ==> int
+ Line 315) typeArgs.set(i, (Type) typeArgs.get(i).accept(this, arg)) ==> com.github.javaparser.ast.type.Type
+ Line 317) removeNulls(typeArgs) ==> void
+ Line 319) n ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 323) n.getPackage() != null ==> boolean
+ Line 324) n.setPackage((PackageDeclaration) n.getPackage().accept(this, arg)) ==> void
+ Line 326) final List<ImportDeclaration> imports = n.getImports() ==> java.util.List<com.github.javaparser.ast.ImportDeclaration>
+ Line 326) n.getImports() ==> java.util.List<com.github.javaparser.ast.ImportDeclaration>
+ Line 327) imports != null ==> boolean
+ Line 328) int i = 0 ==> int
+ Line 328) 0 ==> int
+ Line 328) i < imports.size() ==> boolean
+ Line 328) i++ ==> int
+ Line 329) imports.set(i, (ImportDeclaration) imports.get(i).accept(this, arg)) ==> com.github.javaparser.ast.ImportDeclaration
+ Line 331) removeNulls(imports) ==> void
+ Line 333) final List<TypeDeclaration> types = n.getTypes() ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 333) n.getTypes() ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 334) types != null ==> boolean
+ Line 335) int i = 0 ==> int
+ Line 335) 0 ==> int
+ Line 335) i < types.size() ==> boolean
+ Line 335) i++ ==> int
+ Line 336) types.set(i, (TypeDeclaration) types.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.TypeDeclaration
+ Line 338) removeNulls(types) ==> void
+ Line 340) n ==> com.github.javaparser.ast.CompilationUnit
+ Line 344) n.setCondition((Expression) n.getCondition().accept(this, arg)) ==> void
+ Line 345) n.setThenExpr((Expression) n.getThenExpr().accept(this, arg)) ==> void
+ Line 346) n.setElseExpr((Expression) n.getElseExpr().accept(this, arg)) ==> void
+ Line 347) n ==> com.github.javaparser.ast.expr.ConditionalExpr
+ Line 351) n.getJavaDoc() != null ==> boolean
+ Line 352) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 354) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 354) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 355) annotations != null ==> boolean
+ Line 356) int i = 0 ==> int
+ Line 356) 0 ==> int
+ Line 356) i < annotations.size() ==> boolean
+ Line 356) i++ ==> int
+ Line 357) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 359) removeNulls(annotations) ==> void
+ Line 361) final List<TypeParameter> typeParameters = n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 361) n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 362) typeParameters != null ==> boolean
+ Line 363) int i = 0 ==> int
+ Line 363) 0 ==> int
+ Line 363) i < typeParameters.size() ==> boolean
+ Line 363) i++ ==> int
+ Line 364) typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg)) ==> com.github.javaparser.ast.TypeParameter
+ Line 366) removeNulls(typeParameters) ==> void
+ Line 368) final List<Parameter> parameters = n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 368) n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 369) parameters != null ==> boolean
+ Line 370) int i = 0 ==> int
+ Line 370) 0 ==> int
+ Line 370) i < parameters.size() ==> boolean
+ Line 370) i++ ==> int
+ Line 371) parameters.set(i, (Parameter) parameters.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.Parameter
+ Line 373) removeNulls(parameters) ==> void
+ Line 375) final List<NameExpr> throwz = n.getThrows() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 375) n.getThrows() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 376) throwz != null ==> boolean
+ Line 377) int i = 0 ==> int
+ Line 377) 0 ==> int
+ Line 377) i < throwz.size() ==> boolean
+ Line 377) i++ ==> int
+ Line 378) throwz.set(i, (NameExpr) throwz.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 380) removeNulls(throwz) ==> void
+ Line 382) n.setBlock((BlockStmt) n.getBlock().accept(this, arg)) ==> void
+ Line 383) n ==> com.github.javaparser.ast.body.ConstructorDeclaration
+ Line 387) n ==> com.github.javaparser.ast.stmt.ContinueStmt
+ Line 391) n.setBody((Statement) n.getBody().accept(this, arg)) ==> void
+ Line 392) n.setCondition((Expression) n.getCondition().accept(this, arg)) ==> void
+ Line 393) n ==> com.github.javaparser.ast.stmt.DoStmt
+ Line 397) n ==> com.github.javaparser.ast.expr.DoubleLiteralExpr
+ Line 401) n.getJavaDoc() != null ==> boolean
+ Line 402) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 404) n ==> com.github.javaparser.ast.body.EmptyMemberDeclaration
+ Line 408) n ==> com.github.javaparser.ast.stmt.EmptyStmt
+ Line 412) n.getJavaDoc() != null ==> boolean
+ Line 413) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 415) n ==> com.github.javaparser.ast.body.EmptyTypeDeclaration
+ Line 419) n.setInner((Expression) n.getInner().accept(this, arg)) ==> void
+ Line 420) n ==> com.github.javaparser.ast.expr.EnclosedExpr
+ Line 424) n.getJavaDoc() != null ==> boolean
+ Line 425) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 427) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 427) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 428) annotations != null ==> boolean
+ Line 429) int i = 0 ==> int
+ Line 429) 0 ==> int
+ Line 429) i < annotations.size() ==> boolean
+ Line 429) i++ ==> int
+ Line 430) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 432) removeNulls(annotations) ==> void
+ Line 434) final List<Expression> args = n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 434) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 435) args != null ==> boolean
+ Line 436) int i = 0 ==> int
+ Line 436) 0 ==> int
+ Line 436) i < args.size() ==> boolean
+ Line 436) i++ ==> int
+ Line 437) args.set(i, (Expression) args.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.Expression
+ Line 439) removeNulls(args) ==> void
+ Line 441) final List<BodyDeclaration> classBody = n.getClassBody() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 441) n.getClassBody() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 442) classBody != null ==> boolean
+ Line 443) int i = 0 ==> int
+ Line 443) 0 ==> int
+ Line 443) i < classBody.size() ==> boolean
+ Line 443) i++ ==> int
+ Line 444) classBody.set(i, (BodyDeclaration) classBody.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 446) removeNulls(classBody) ==> void
+ Line 448) n ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 452) n.getJavaDoc() != null ==> boolean
+ Line 453) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 455) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 455) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 456) annotations != null ==> boolean
+ Line 457) int i = 0 ==> int
+ Line 457) 0 ==> int
+ Line 457) i < annotations.size() ==> boolean
+ Line 457) i++ ==> int
+ Line 458) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 460) removeNulls(annotations) ==> void
+ Line 462) final List<ClassOrInterfaceType> implementz = n.getImplements() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 462) n.getImplements() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 463) implementz != null ==> boolean
+ Line 464) int i = 0 ==> int
+ Line 464) 0 ==> int
+ Line 464) i < implementz.size() ==> boolean
+ Line 464) i++ ==> int
+ Line 465) implementz.set(i, (ClassOrInterfaceType) implementz.get(i).accept(this, arg)) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 467) removeNulls(implementz) ==> void
+ Line 469) final List<EnumConstantDeclaration> entries = n.getEntries() ==> java.util.List<com.github.javaparser.ast.body.EnumConstantDeclaration>
+ Line 469) n.getEntries() ==> java.util.List<com.github.javaparser.ast.body.EnumConstantDeclaration>
+ Line 470) entries != null ==> boolean
+ Line 471) int i = 0 ==> int
+ Line 471) 0 ==> int
+ Line 471) i < entries.size() ==> boolean
+ Line 471) i++ ==> int
+ Line 472) entries.set(i, (EnumConstantDeclaration) entries.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 474) removeNulls(entries) ==> void
+ Line 476) final List<BodyDeclaration> members = n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 476) n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 477) members != null ==> boolean
+ Line 478) int i = 0 ==> int
+ Line 478) 0 ==> int
+ Line 478) i < members.size() ==> boolean
+ Line 478) i++ ==> int
+ Line 479) members.set(i, (BodyDeclaration) members.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 481) removeNulls(members) ==> void
+ Line 483) n ==> com.github.javaparser.ast.body.EnumDeclaration
+ Line 487) !n.isThis() ==> boolean
+ Line 488) n.getExpr() != null ==> boolean
+ Line 489) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> void
+ Line 492) final List<Type> typeArgs = n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 492) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 493) typeArgs != null ==> boolean
+ Line 494) int i = 0 ==> int
+ Line 494) 0 ==> int
+ Line 494) i < typeArgs.size() ==> boolean
+ Line 494) i++ ==> int
+ Line 495) typeArgs.set(i, (Type) typeArgs.get(i).accept(this, arg)) ==> com.github.javaparser.ast.type.Type
+ Line 497) removeNulls(typeArgs) ==> void
+ Line 499) final List<Expression> args = n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 499) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 500) args != null ==> boolean
+ Line 501) int i = 0 ==> int
+ Line 501) 0 ==> int
+ Line 501) i < args.size() ==> boolean
+ Line 501) i++ ==> int
+ Line 502) args.set(i, (Expression) args.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.Expression
+ Line 504) removeNulls(args) ==> void
+ Line 506) n ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt
+ Line 510) n.setExpression((Expression) n.getExpression().accept(this, arg)) ==> void
+ Line 511) n ==> com.github.javaparser.ast.stmt.ExpressionStmt
+ Line 515) n.setScope((Expression) n.getScope().accept(this, arg)) ==> void
+ Line 516) n ==> com.github.javaparser.ast.expr.FieldAccessExpr
+ Line 520) n.getJavaDoc() != null ==> boolean
+ Line 521) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 523) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 523) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 524) annotations != null ==> boolean
+ Line 525) int i = 0 ==> int
+ Line 525) 0 ==> int
+ Line 525) i < annotations.size() ==> boolean
+ Line 525) i++ ==> int
+ Line 526) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 528) removeNulls(annotations) ==> void
+ Line 530) n.setType((Type) n.getType().accept(this, arg)) ==> void
+ Line 531) final List<VariableDeclarator> variables = n.getVariables() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 531) n.getVariables() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 532) int i = 0 ==> int
+ Line 532) 0 ==> int
+ Line 532) i < variables.size() ==> boolean
+ Line 532) i++ ==> int
+ Line 533) variables.set(i, (VariableDeclarator) variables.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 535) removeNulls(variables) ==> void
+ Line 536) n ==> com.github.javaparser.ast.body.FieldDeclaration
+ Line 540) n.setVariable((VariableDeclarationExpr) n.getVariable().accept(this, arg)) ==> void
+ Line 541) n.setIterable((Expression) n.getIterable().accept(this, arg)) ==> void
+ Line 542) n.setBody((Statement) n.getBody().accept(this, arg)) ==> void
+ Line 543) n ==> com.github.javaparser.ast.stmt.ForeachStmt
+ Line 547) final List<Expression> init = n.getInit() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 547) n.getInit() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 548) init != null ==> boolean
+ Line 549) int i = 0 ==> int
+ Line 549) 0 ==> int
+ Line 549) i < init.size() ==> boolean
+ Line 549) i++ ==> int
+ Line 550) init.set(i, (Expression) init.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.Expression
+ Line 552) removeNulls(init) ==> void
+ Line 554) n.getCompare() != null ==> boolean
+ Line 555) n.setCompare((Expression) n.getCompare().accept(this, arg)) ==> void
+ Line 557) final List<Expression> update = n.getUpdate() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 557) n.getUpdate() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 558) update != null ==> boolean
+ Line 559) int i = 0 ==> int
+ Line 559) 0 ==> int
+ Line 559) i < update.size() ==> boolean
+ Line 559) i++ ==> int
+ Line 560) update.set(i, (Expression) update.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.Expression
+ Line 562) removeNulls(update) ==> void
+ Line 564) n.setBody((Statement) n.getBody().accept(this, arg)) ==> void
+ Line 565) n ==> com.github.javaparser.ast.stmt.ForStmt
+ Line 569) n.setCondition((Expression) n.getCondition().accept(this, arg)) ==> void
+ Line 570) n.setThenStmt((Statement) n.getThenStmt().accept(this, arg)) ==> void
+ Line 571) n.getElseStmt() != null ==> boolean
+ Line 572) n.setElseStmt((Statement) n.getElseStmt().accept(this, arg)) ==> void
+ Line 574) n ==> com.github.javaparser.ast.stmt.IfStmt
+ Line 578) n.setName((NameExpr) n.getName().accept(this, arg)) ==> void
+ Line 579) n ==> com.github.javaparser.ast.ImportDeclaration
+ Line 583) n.getJavaDoc() != null ==> boolean
+ Line 584) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 586) n.setBlock((BlockStmt) n.getBlock().accept(this, arg)) ==> void
+ Line 587) n ==> com.github.javaparser.ast.body.InitializerDeclaration
+ Line 591) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> void
+ Line 592) n.setType((Type) n.getType().accept(this, arg)) ==> void
+ Line 593) n ==> com.github.javaparser.ast.expr.InstanceOfExpr
+ Line 597) n ==> com.github.javaparser.ast.expr.IntegerLiteralExpr
+ Line 601) n ==> com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr
+ Line 605) n ==> com.github.javaparser.ast.comments.JavadocComment
+ Line 609) n.setStmt((Statement) n.getStmt().accept(this, arg)) ==> void
+ Line 610) n ==> com.github.javaparser.ast.stmt.LabeledStmt
+ Line 614) n ==> com.github.javaparser.ast.expr.LongLiteralExpr
+ Line 618) n ==> com.github.javaparser.ast.expr.LongLiteralMinValueExpr
+ Line 622) n.setName((NameExpr) n.getName().accept(this, arg)) ==> void
+ Line 623) n ==> com.github.javaparser.ast.expr.MarkerAnnotationExpr
+ Line 627) n.setValue((Expression) n.getValue().accept(this, arg)) ==> void
+ Line 628) n ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 632) n.getScope() != null ==> boolean
+ Line 633) n.setScope((Expression) n.getScope().accept(this, arg)) ==> void
+ Line 635) final List<Type> typeArgs = n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 635) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 636) typeArgs != null ==> boolean
+ Line 637) int i = 0 ==> int
+ Line 637) 0 ==> int
+ Line 637) i < typeArgs.size() ==> boolean
+ Line 637) i++ ==> int
+ Line 638) typeArgs.set(i, (Type) typeArgs.get(i).accept(this, arg)) ==> com.github.javaparser.ast.type.Type
+ Line 640) removeNulls(typeArgs) ==> void
+ Line 642) final List<Expression> args = n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 642) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 643) args != null ==> boolean
+ Line 644) int i = 0 ==> int
+ Line 644) 0 ==> int
+ Line 644) i < args.size() ==> boolean
+ Line 644) i++ ==> int
+ Line 645) args.set(i, (Expression) args.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.Expression
+ Line 647) removeNulls(args) ==> void
+ Line 649) n ==> com.github.javaparser.ast.expr.MethodCallExpr
+ Line 653) n.getJavaDoc() != null ==> boolean
+ Line 654) n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg)) ==> void
+ Line 656) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 656) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 657) annotations != null ==> boolean
+ Line 658) int i = 0 ==> int
+ Line 658) 0 ==> int
+ Line 658) i < annotations.size() ==> boolean
+ Line 658) i++ ==> int
+ Line 659) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 661) removeNulls(annotations) ==> void
+ Line 663) final List<TypeParameter> typeParameters = n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 663) n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 664) typeParameters != null ==> boolean
+ Line 665) int i = 0 ==> int
+ Line 665) 0 ==> int
+ Line 665) i < typeParameters.size() ==> boolean
+ Line 665) i++ ==> int
+ Line 666) typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg)) ==> com.github.javaparser.ast.TypeParameter
+ Line 668) removeNulls(typeParameters) ==> void
+ Line 670) n.setType((Type) n.getType().accept(this, arg)) ==> void
+ Line 671) final List<Parameter> parameters = n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 671) n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 672) parameters != null ==> boolean
+ Line 673) int i = 0 ==> int
+ Line 673) 0 ==> int
+ Line 673) i < parameters.size() ==> boolean
+ Line 673) i++ ==> int
+ Line 674) parameters.set(i, (Parameter) parameters.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.Parameter
+ Line 676) removeNulls(parameters) ==> void
+ Line 678) final List<NameExpr> throwz = n.getThrows() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 678) n.getThrows() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 679) throwz != null ==> boolean
+ Line 680) int i = 0 ==> int
+ Line 680) 0 ==> int
+ Line 680) i < throwz.size() ==> boolean
+ Line 680) i++ ==> int
+ Line 681) throwz.set(i, (NameExpr) throwz.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.NameExpr
+ Line 683) removeNulls(throwz) ==> void
+ Line 685) n.getBody() != null ==> boolean
+ Line 686) n.setBody((BlockStmt) n.getBody().accept(this, arg)) ==> void
+ Line 688) n ==> com.github.javaparser.ast.body.MethodDeclaration
+ Line 692) n ==> com.github.javaparser.ast.expr.NameExpr
+ Line 696) n.setName((NameExpr) n.getName().accept(this, arg)) ==> void
+ Line 697) final List<MemberValuePair> pairs = n.getPairs() ==> java.util.List<com.github.javaparser.ast.expr.MemberValuePair>
+ Line 697) n.getPairs() ==> java.util.List<com.github.javaparser.ast.expr.MemberValuePair>
+ Line 698) pairs != null ==> boolean
+ Line 699) int i = 0 ==> int
+ Line 699) 0 ==> int
+ Line 699) i < pairs.size() ==> boolean
+ Line 699) i++ ==> int
+ Line 700) pairs.set(i, (MemberValuePair) pairs.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 702) removeNulls(pairs) ==> void
+ Line 704) n ==> com.github.javaparser.ast.expr.NormalAnnotationExpr
+ Line 708) n ==> com.github.javaparser.ast.expr.NullLiteralExpr
+ Line 712) n.getScope() != null ==> boolean
+ Line 713) n.setScope((Expression) n.getScope().accept(this, arg)) ==> void
+ Line 715) final List<Type> typeArgs = n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 715) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 716) typeArgs != null ==> boolean
+ Line 717) int i = 0 ==> int
+ Line 717) 0 ==> int
+ Line 717) i < typeArgs.size() ==> boolean
+ Line 717) i++ ==> int
+ Line 718) typeArgs.set(i, (Type) typeArgs.get(i).accept(this, arg)) ==> com.github.javaparser.ast.type.Type
+ Line 720) removeNulls(typeArgs) ==> void
+ Line 722) n.setType((ClassOrInterfaceType) n.getType().accept(this, arg)) ==> void
+ Line 723) final List<Expression> args = n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 723) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 724) args != null ==> boolean
+ Line 725) int i = 0 ==> int
+ Line 725) 0 ==> int
+ Line 725) i < args.size() ==> boolean
+ Line 725) i++ ==> int
+ Line 726) args.set(i, (Expression) args.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.Expression
+ Line 728) removeNulls(args) ==> void
+ Line 730) final List<BodyDeclaration> anonymousClassBody = n.getAnonymousClassBody() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 730) n.getAnonymousClassBody() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 731) anonymousClassBody != null ==> boolean
+ Line 732) int i = 0 ==> int
+ Line 732) 0 ==> int
+ Line 732) i < anonymousClassBody.size() ==> boolean
+ Line 732) i++ ==> int
+ Line 733) anonymousClassBody.set(i, (BodyDeclaration) anonymousClassBody.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 735) removeNulls(anonymousClassBody) ==> void
+ Line 737) n ==> com.github.javaparser.ast.expr.ObjectCreationExpr
+ Line 741) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 741) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 742) annotations != null ==> boolean
+ Line 743) int i = 0 ==> int
+ Line 743) 0 ==> int
+ Line 743) i < annotations.size() ==> boolean
+ Line 743) i++ ==> int
+ Line 744) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 746) removeNulls(annotations) ==> void
+ Line 748) n.setName((NameExpr) n.getName().accept(this, arg)) ==> void
+ Line 749) n ==> com.github.javaparser.ast.PackageDeclaration
+ Line 753) visit((BaseParameter) n, arg) ==> com.github.javaparser.ast.Node
+ Line 754) n.setType((Type) n.getType().accept(this, arg)) ==> void
+ Line 755) n ==> com.github.javaparser.ast.body.Parameter
+ Line 759) visit((BaseParameter) n, arg) ==> com.github.javaparser.ast.Node
+ Line 760) List<Type> types = new LinkedList<Type>() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 760) new LinkedList<Type>() ==> java.util.LinkedList<com.github.javaparser.ast.type.Type>
+ Line 761) Type type ==> com.github.javaparser.ast.type.Type
+ Line 761) n.getTypes() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 762) types.add((Type) type.accept(this, arg)) ==> boolean
+ Line 764) n.setTypes(types) ==> void
+ Line 765) n ==> com.github.javaparser.ast.body.MultiTypeParameter
+ Line 769) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 769) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 770) annotations != null ==> boolean
+ Line 771) int i = 0 ==> int
+ Line 771) 0 ==> int
+ Line 771) i < annotations.size() ==> boolean
+ Line 771) i++ ==> int
+ Line 772) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 774) removeNulls(annotations) ==> void
+ Line 777) n.setId((VariableDeclaratorId) n.getId().accept(this, arg)) ==> void
+ Line 778) n ==> com.github.javaparser.ast.body.BaseParameter
+ Line 782) n ==> com.github.javaparser.ast.type.PrimitiveType
+ Line 786) n.setQualifier((NameExpr) n.getQualifier().accept(this, arg)) ==> void
+ Line 787) n ==> com.github.javaparser.ast.expr.QualifiedNameExpr
+ Line 791) n.setType((Type) n.getType().accept(this, arg)) ==> void
+ Line 792) n ==> com.github.javaparser.ast.type.ReferenceType
+ Line 796) n.getExpr() != null ==> boolean
+ Line 797) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> void
+ Line 799) n ==> com.github.javaparser.ast.stmt.ReturnStmt
+ Line 803) n.setName((NameExpr) n.getName().accept(this, arg)) ==> void
+ Line 804) n.setMemberValue((Expression) n.getMemberValue().accept(this, arg)) ==> void
+ Line 805) n ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr
+ Line 809) n ==> com.github.javaparser.ast.expr.StringLiteralExpr
+ Line 813) n.getClassExpr() != null ==> boolean
+ Line 814) n.setClassExpr((Expression) n.getClassExpr().accept(this, arg)) ==> void
+ Line 816) n ==> com.github.javaparser.ast.expr.SuperExpr
+ Line 820) n.getLabel() != null ==> boolean
+ Line 821) n.setLabel((Expression) n.getLabel().accept(this, arg)) ==> void
+ Line 823) final List<Statement> stmts = n.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 823) n.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 824) stmts != null ==> boolean
+ Line 825) int i = 0 ==> int
+ Line 825) 0 ==> int
+ Line 825) i < stmts.size() ==> boolean
+ Line 825) i++ ==> int
+ Line 826) stmts.set(i, (Statement) stmts.get(i).accept(this, arg)) ==> com.github.javaparser.ast.stmt.Statement
+ Line 828) removeNulls(stmts) ==> void
+ Line 830) n ==> com.github.javaparser.ast.stmt.SwitchEntryStmt
+ Line 834) n.setSelector((Expression) n.getSelector().accept(this, arg)) ==> void
+ Line 835) final List<SwitchEntryStmt> entries = n.getEntries() ==> java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>
+ Line 835) n.getEntries() ==> java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>
+ Line 836) entries != null ==> boolean
+ Line 837) int i = 0 ==> int
+ Line 837) 0 ==> int
+ Line 837) i < entries.size() ==> boolean
+ Line 837) i++ ==> int
+ Line 838) entries.set(i, (SwitchEntryStmt) entries.get(i).accept(this, arg)) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt
+ Line 840) removeNulls(entries) ==> void
+ Line 842) n ==> com.github.javaparser.ast.stmt.SwitchStmt
+ Line 847) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> void
+ Line 848) n.setBlock((BlockStmt) n.getBlock().accept(this, arg)) ==> void
+ Line 849) n ==> com.github.javaparser.ast.stmt.SynchronizedStmt
+ Line 853) n.getClassExpr() != null ==> boolean
+ Line 854) n.setClassExpr((Expression) n.getClassExpr().accept(this, arg)) ==> void
+ Line 856) n ==> com.github.javaparser.ast.expr.ThisExpr
+ Line 860) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> void
+ Line 861) n ==> com.github.javaparser.ast.stmt.ThrowStmt
+ Line 865) n.setTryBlock((BlockStmt) n.getTryBlock().accept(this, arg)) ==> void
+ Line 866) final List<CatchClause> catchs = n.getCatchs() ==> java.util.List<com.github.javaparser.ast.stmt.CatchClause>
+ Line 866) n.getCatchs() ==> java.util.List<com.github.javaparser.ast.stmt.CatchClause>
+ Line 867) catchs != null ==> boolean
+ Line 868) int i = 0 ==> int
+ Line 868) 0 ==> int
+ Line 868) i < catchs.size() ==> boolean
+ Line 868) i++ ==> int
+ Line 869) catchs.set(i, (CatchClause) catchs.get(i).accept(this, arg)) ==> com.github.javaparser.ast.stmt.CatchClause
+ Line 871) removeNulls(catchs) ==> void
+ Line 873) n.getFinallyBlock() != null ==> boolean
+ Line 874) n.setFinallyBlock((BlockStmt) n.getFinallyBlock().accept(this, arg)) ==> void
+ Line 876) n ==> com.github.javaparser.ast.stmt.TryStmt
+ Line 880) n.setTypeDeclaration((TypeDeclaration) n.getTypeDeclaration().accept(this, arg)) ==> void
+ Line 881) n ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt
+ Line 885) final List<ClassOrInterfaceType> typeBound = n.getTypeBound() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 885) n.getTypeBound() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 886) typeBound != null ==> boolean
+ Line 887) int i = 0 ==> int
+ Line 887) 0 ==> int
+ Line 887) i < typeBound.size() ==> boolean
+ Line 887) i++ ==> int
+ Line 888) typeBound.set(i, (ClassOrInterfaceType) typeBound.get(i).accept(this, arg)) ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 890) removeNulls(typeBound) ==> void
+ Line 892) n ==> com.github.javaparser.ast.TypeParameter
+ Line 896) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> void
+ Line 897) n ==> com.github.javaparser.ast.expr.UnaryExpr
+ Line 901) n ==> com.github.javaparser.ast.type.UnknownType
+ Line 905) final List<AnnotationExpr> annotations = n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 905) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 906) annotations != null ==> boolean
+ Line 907) int i = 0 ==> int
+ Line 907) 0 ==> int
+ Line 907) i < annotations.size() ==> boolean
+ Line 907) i++ ==> int
+ Line 908) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 910) removeNulls(annotations) ==> void
+ Line 912) n.setType((Type) n.getType().accept(this, arg)) ==> void
+ Line 913) final List<VariableDeclarator> vars = n.getVars() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 913) n.getVars() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 914) int i = 0 ==> int
+ Line 914) 0 ==> int
+ Line 914) i < vars.size() ==> boolean
+ Line 914) i++ ==> int
+ Line 915) vars.set(i, (VariableDeclarator) vars.get(i).accept(this, arg)) ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 917) removeNulls(vars) ==> void
+ Line 918) n ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 922) n.setId((VariableDeclaratorId) n.getId().accept(this, arg)) ==> void
+ Line 923) n.getInit() != null ==> boolean
+ Line 924) n.setInit((Expression) n.getInit().accept(this, arg)) ==> void
+ Line 926) n ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 930) n ==> com.github.javaparser.ast.body.VariableDeclaratorId
+ Line 934) n ==> com.github.javaparser.ast.type.VoidType
+ Line 938) n.setCondition((Expression) n.getCondition().accept(this, arg)) ==> void
+ Line 939) n.setBody((Statement) n.getBody().accept(this, arg)) ==> void
+ Line 940) n ==> com.github.javaparser.ast.stmt.WhileStmt
+ Line 944) n.getExtends() != null ==> boolean
+ Line 945) n.setExtends((ReferenceType) n.getExtends().accept(this, arg)) ==> void
+ Line 947) n.getSuper() != null ==> boolean
+ Line 948) n.setSuper((ReferenceType) n.getSuper().accept(this, arg)) ==> void
+ Line 950) n ==> com.github.javaparser.ast.type.WildcardType
+ Line 954) n ==> com.github.javaparser.ast.expr.LambdaExpr
+ Line 958) n ==> com.github.javaparser.ast.expr.MethodReferenceExpr
+ Line 962) n ==> com.github.javaparser.ast.expr.TypeExpr
+ Line 966) n ==> com.github.javaparser.ast.comments.BlockComment
+ Line 970) n ==> com.github.javaparser.ast.comments.LineComment
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_VoidVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_VoidVisitor.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_VoidVisitor.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_VoidVisitorAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_VoidVisitorAdapter.txt
new file mode 100644
index 000000000..e3d27e412
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_expected_output/com_github_javaparser_ast_visitor_VoidVisitorAdapter.txt
@@ -0,0 +1,425 @@
+
+[ Class com.github.javaparser.ast.visitor.VoidVisitorAdapter ]
+ superclass: java.lang.Object
+ interface: com.github.javaparser.ast.visitor.VoidVisitor
+ Line 82) visitComment(n.getComment(), arg) ==> void
+ Line 83) n.getJavaDoc() != null ==> boolean
+ Line 84) n.getJavaDoc().accept(this, arg) ==> void
+ Line 86) n.getAnnotations() != null ==> boolean
+ Line 87) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 87) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 88) a.accept(this, arg) ==> void
+ Line 91) n.getMembers() != null ==> boolean
+ Line 92) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 92) n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 93) member.accept(this, arg) ==> void
+ Line 99) visitComment(n.getComment(), arg) ==> void
+ Line 100) n.getJavaDoc() != null ==> boolean
+ Line 101) n.getJavaDoc().accept(this, arg) ==> void
+ Line 103) n.getAnnotations() != null ==> boolean
+ Line 104) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 104) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 105) a.accept(this, arg) ==> void
+ Line 108) n.getType().accept(this, arg) ==> void
+ Line 109) n.getDefaultValue() != null ==> boolean
+ Line 110) n.getDefaultValue().accept(this, arg) ==> void
+ Line 115) visitComment(n.getComment(), arg) ==> void
+ Line 116) n.getName().accept(this, arg) ==> void
+ Line 117) n.getIndex().accept(this, arg) ==> void
+ Line 121) visitComment(n.getComment(), arg) ==> void
+ Line 122) n.getType().accept(this, arg) ==> void
+ Line 123) !isNullOrEmpty(n.getDimensions()) ==> boolean
+ Line 124) final Expression dim ==> com.github.javaparser.ast.expr.Expression
+ Line 124) n.getDimensions() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 125) dim.accept(this, arg) ==> void
+ Line 128) n.getInitializer().accept(this, arg) ==> void
+ Line 133) visitComment(n.getComment(), arg) ==> void
+ Line 134) n.getValues() != null ==> boolean
+ Line 135) final Expression expr ==> com.github.javaparser.ast.expr.Expression
+ Line 135) n.getValues() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 136) expr.accept(this, arg) ==> void
+ Line 142) visitComment(n.getComment(), arg) ==> void
+ Line 143) n.getCheck().accept(this, arg) ==> void
+ Line 144) n.getMessage() != null ==> boolean
+ Line 145) n.getMessage().accept(this, arg) ==> void
+ Line 150) visitComment(n.getComment(), arg) ==> void
+ Line 151) n.getTarget().accept(this, arg) ==> void
+ Line 152) n.getValue().accept(this, arg) ==> void
+ Line 156) visitComment(n.getComment(), arg) ==> void
+ Line 157) n.getLeft().accept(this, arg) ==> void
+ Line 158) n.getRight().accept(this, arg) ==> void
+ Line 162) visitComment(n.getComment(), arg) ==> void
+ Line 166) visitComment(n.getComment(), arg) ==> void
+ Line 167) n.getStmts() != null ==> boolean
+ Line 168) final Statement s ==> com.github.javaparser.ast.stmt.Statement
+ Line 168) n.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 169) s.accept(this, arg) ==> void
+ Line 175) visitComment(n.getComment(), arg) ==> void
+ Line 179) visitComment(n.getComment(), arg) ==> void
+ Line 183) visitComment(n.getComment(), arg) ==> void
+ Line 184) n.getType().accept(this, arg) ==> void
+ Line 185) n.getExpr().accept(this, arg) ==> void
+ Line 189) visitComment(n.getComment(), arg) ==> void
+ Line 190) n.getExcept().accept(this, arg) ==> void
+ Line 191) n.getCatchBlock().accept(this, arg) ==> void
+ Line 195) visitComment(n.getComment(), arg) ==> void
+ Line 199) visitComment(n.getComment(), arg) ==> void
+ Line 200) n.getType().accept(this, arg) ==> void
+ Line 204) visitComment(n.getComment(), arg) ==> void
+ Line 205) n.getJavaDoc() != null ==> boolean
+ Line 206) n.getJavaDoc().accept(this, arg) ==> void
+ Line 208) n.getAnnotations() != null ==> boolean
+ Line 209) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 209) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 210) a.accept(this, arg) ==> void
+ Line 213) n.getTypeParameters() != null ==> boolean
+ Line 214) final TypeParameter t ==> com.github.javaparser.ast.TypeParameter
+ Line 214) n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 215) t.accept(this, arg) ==> void
+ Line 218) n.getExtends() != null ==> boolean
+ Line 219) final ClassOrInterfaceType c ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 219) n.getExtends() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 220) c.accept(this, arg) ==> void
+ Line 224) n.getImplements() != null ==> boolean
+ Line 225) final ClassOrInterfaceType c ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 225) n.getImplements() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 226) c.accept(this, arg) ==> void
+ Line 229) n.getMembers() != null ==> boolean
+ Line 230) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 230) n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 231) member.accept(this, arg) ==> void
+ Line 237) visitComment(n.getComment(), arg) ==> void
+ Line 238) n.getScope() != null ==> boolean
+ Line 239) n.getScope().accept(this, arg) ==> void
+ Line 241) n.getTypeArgs() != null ==> boolean
+ Line 242) final Type t ==> com.github.javaparser.ast.type.Type
+ Line 242) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 243) t.accept(this, arg) ==> void
+ Line 249) visitComment(n.getComment(), arg) ==> void
+ Line 250) n.getPackage() != null ==> boolean
+ Line 251) n.getPackage().accept(this, arg) ==> void
+ Line 253) n.getImports() != null ==> boolean
+ Line 254) final ImportDeclaration i ==> com.github.javaparser.ast.ImportDeclaration
+ Line 254) n.getImports() ==> java.util.List<com.github.javaparser.ast.ImportDeclaration>
+ Line 255) i.accept(this, arg) ==> void
+ Line 258) n.getTypes() != null ==> boolean
+ Line 259) final TypeDeclaration typeDeclaration ==> com.github.javaparser.ast.body.TypeDeclaration
+ Line 259) n.getTypes() ==> java.util.List<com.github.javaparser.ast.body.TypeDeclaration>
+ Line 260) typeDeclaration.accept(this, arg) ==> void
+ Line 266) visitComment(n.getComment(), arg) ==> void
+ Line 267) n.getCondition().accept(this, arg) ==> void
+ Line 268) n.getThenExpr().accept(this, arg) ==> void
+ Line 269) n.getElseExpr().accept(this, arg) ==> void
+ Line 273) visitComment(n.getComment(), arg) ==> void
+ Line 274) n.getJavaDoc() != null ==> boolean
+ Line 275) n.getJavaDoc().accept(this, arg) ==> void
+ Line 277) n.getAnnotations() != null ==> boolean
+ Line 278) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 278) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 279) a.accept(this, arg) ==> void
+ Line 282) n.getTypeParameters() != null ==> boolean
+ Line 283) final TypeParameter t ==> com.github.javaparser.ast.TypeParameter
+ Line 283) n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 284) t.accept(this, arg) ==> void
+ Line 287) n.getParameters() != null ==> boolean
+ Line 288) final Parameter p ==> com.github.javaparser.ast.body.Parameter
+ Line 288) n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 289) p.accept(this, arg) ==> void
+ Line 292) n.getThrows() != null ==> boolean
+ Line 293) final NameExpr name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 293) n.getThrows() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 294) name.accept(this, arg) ==> void
+ Line 297) n.getBlock().accept(this, arg) ==> void
+ Line 301) visitComment(n.getComment(), arg) ==> void
+ Line 305) visitComment(n.getComment(), arg) ==> void
+ Line 306) n.getBody().accept(this, arg) ==> void
+ Line 307) n.getCondition().accept(this, arg) ==> void
+ Line 311) visitComment(n.getComment(), arg) ==> void
+ Line 315) visitComment(n.getComment(), arg) ==> void
+ Line 316) n.getJavaDoc() != null ==> boolean
+ Line 317) n.getJavaDoc().accept(this, arg) ==> void
+ Line 322) visitComment(n.getComment(), arg) ==> void
+ Line 326) visitComment(n.getComment(), arg) ==> void
+ Line 327) n.getJavaDoc() != null ==> boolean
+ Line 328) n.getJavaDoc().accept(this, arg) ==> void
+ Line 333) visitComment(n.getComment(), arg) ==> void
+ Line 334) n.getInner().accept(this, arg) ==> void
+ Line 338) visitComment(n.getComment(), arg) ==> void
+ Line 339) n.getJavaDoc() != null ==> boolean
+ Line 340) n.getJavaDoc().accept(this, arg) ==> void
+ Line 342) n.getAnnotations() != null ==> boolean
+ Line 343) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 343) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 344) a.accept(this, arg) ==> void
+ Line 347) n.getArgs() != null ==> boolean
+ Line 348) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 348) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 349) e.accept(this, arg) ==> void
+ Line 352) n.getClassBody() != null ==> boolean
+ Line 353) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 353) n.getClassBody() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 354) member.accept(this, arg) ==> void
+ Line 360) visitComment(n.getComment(), arg) ==> void
+ Line 361) n.getJavaDoc() != null ==> boolean
+ Line 362) n.getJavaDoc().accept(this, arg) ==> void
+ Line 364) n.getAnnotations() != null ==> boolean
+ Line 365) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 365) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 366) a.accept(this, arg) ==> void
+ Line 369) n.getImplements() != null ==> boolean
+ Line 370) final ClassOrInterfaceType c ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 370) n.getImplements() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 371) c.accept(this, arg) ==> void
+ Line 374) n.getEntries() != null ==> boolean
+ Line 375) final EnumConstantDeclaration e ==> com.github.javaparser.ast.body.EnumConstantDeclaration
+ Line 375) n.getEntries() ==> java.util.List<com.github.javaparser.ast.body.EnumConstantDeclaration>
+ Line 376) e.accept(this, arg) ==> void
+ Line 379) n.getMembers() != null ==> boolean
+ Line 380) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 380) n.getMembers() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 381) member.accept(this, arg) ==> void
+ Line 387) visitComment(n.getComment(), arg) ==> void
+ Line 388) !n.isThis() ==> boolean
+ Line 389) n.getExpr() != null ==> boolean
+ Line 390) n.getExpr().accept(this, arg) ==> void
+ Line 393) n.getTypeArgs() != null ==> boolean
+ Line 394) final Type t ==> com.github.javaparser.ast.type.Type
+ Line 394) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 395) t.accept(this, arg) ==> void
+ Line 398) n.getArgs() != null ==> boolean
+ Line 399) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 399) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 400) e.accept(this, arg) ==> void
+ Line 406) visitComment(n.getComment(), arg) ==> void
+ Line 407) n.getExpression().accept(this, arg) ==> void
+ Line 411) visitComment(n.getComment(), arg) ==> void
+ Line 412) n.getScope().accept(this, arg) ==> void
+ Line 416) visitComment(n.getComment(), arg) ==> void
+ Line 417) n.getJavaDoc() != null ==> boolean
+ Line 418) n.getJavaDoc().accept(this, arg) ==> void
+ Line 420) n.getAnnotations() != null ==> boolean
+ Line 421) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 421) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 422) a.accept(this, arg) ==> void
+ Line 425) n.getType().accept(this, arg) ==> void
+ Line 426) final VariableDeclarator var ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 426) n.getVariables() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 427) var.accept(this, arg) ==> void
+ Line 432) visitComment(n.getComment(), arg) ==> void
+ Line 433) n.getVariable().accept(this, arg) ==> void
+ Line 434) n.getIterable().accept(this, arg) ==> void
+ Line 435) n.getBody().accept(this, arg) ==> void
+ Line 439) visitComment(n.getComment(), arg) ==> void
+ Line 440) n.getInit() != null ==> boolean
+ Line 441) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 441) n.getInit() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 442) e.accept(this, arg) ==> void
+ Line 445) n.getCompare() != null ==> boolean
+ Line 446) n.getCompare().accept(this, arg) ==> void
+ Line 448) n.getUpdate() != null ==> boolean
+ Line 449) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 449) n.getUpdate() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 450) e.accept(this, arg) ==> void
+ Line 453) n.getBody().accept(this, arg) ==> void
+ Line 457) visitComment(n.getComment(), arg) ==> void
+ Line 458) n.getCondition().accept(this, arg) ==> void
+ Line 459) n.getThenStmt().accept(this, arg) ==> void
+ Line 460) n.getElseStmt() != null ==> boolean
+ Line 461) n.getElseStmt().accept(this, arg) ==> void
+ Line 466) visitComment(n.getComment(), arg) ==> void
+ Line 467) n.getName().accept(this, arg) ==> void
+ Line 471) visitComment(n.getComment(), arg) ==> void
+ Line 472) n.getJavaDoc() != null ==> boolean
+ Line 473) n.getJavaDoc().accept(this, arg) ==> void
+ Line 475) n.getBlock().accept(this, arg) ==> void
+ Line 479) visitComment(n.getComment(), arg) ==> void
+ Line 480) n.getExpr().accept(this, arg) ==> void
+ Line 481) n.getType().accept(this, arg) ==> void
+ Line 485) visitComment(n.getComment(), arg) ==> void
+ Line 489) visitComment(n.getComment(), arg) ==> void
+ Line 493) visitComment(n.getComment(), arg) ==> void
+ Line 497) visitComment(n.getComment(), arg) ==> void
+ Line 498) n.getStmt().accept(this, arg) ==> void
+ Line 502) visitComment(n.getComment(), arg) ==> void
+ Line 506) visitComment(n.getComment(), arg) ==> void
+ Line 510) visitComment(n.getComment(), arg) ==> void
+ Line 514) visitComment(n.getComment(), arg) ==> void
+ Line 515) n.getName().accept(this, arg) ==> void
+ Line 519) visitComment(n.getComment(), arg) ==> void
+ Line 520) n.getValue().accept(this, arg) ==> void
+ Line 524) visitComment(n.getComment(), arg) ==> void
+ Line 525) n.getScope() != null ==> boolean
+ Line 526) n.getScope().accept(this, arg) ==> void
+ Line 528) n.getTypeArgs() != null ==> boolean
+ Line 529) final Type t ==> com.github.javaparser.ast.type.Type
+ Line 529) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 530) t.accept(this, arg) ==> void
+ Line 533) n.getArgs() != null ==> boolean
+ Line 534) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 534) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 535) e.accept(this, arg) ==> void
+ Line 541) visitComment(n.getComment(), arg) ==> void
+ Line 542) n.getJavaDoc() != null ==> boolean
+ Line 543) n.getJavaDoc().accept(this, arg) ==> void
+ Line 545) n.getAnnotations() != null ==> boolean
+ Line 546) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 546) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 547) a.accept(this, arg) ==> void
+ Line 550) n.getTypeParameters() != null ==> boolean
+ Line 551) final TypeParameter t ==> com.github.javaparser.ast.TypeParameter
+ Line 551) n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 552) t.accept(this, arg) ==> void
+ Line 555) n.getType().accept(this, arg) ==> void
+ Line 556) n.getParameters() != null ==> boolean
+ Line 557) final Parameter p ==> com.github.javaparser.ast.body.Parameter
+ Line 557) n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 558) p.accept(this, arg) ==> void
+ Line 561) n.getThrows() != null ==> boolean
+ Line 562) final NameExpr name ==> com.github.javaparser.ast.expr.NameExpr
+ Line 562) n.getThrows() ==> java.util.List<com.github.javaparser.ast.expr.NameExpr>
+ Line 563) name.accept(this, arg) ==> void
+ Line 566) n.getBody() != null ==> boolean
+ Line 567) n.getBody().accept(this, arg) ==> void
+ Line 572) visitComment(n.getComment(), arg) ==> void
+ Line 576) visitComment(n.getComment(), arg) ==> void
+ Line 577) n.getName().accept(this, arg) ==> void
+ Line 578) n.getPairs() != null ==> boolean
+ Line 579) final MemberValuePair m ==> com.github.javaparser.ast.expr.MemberValuePair
+ Line 579) n.getPairs() ==> java.util.List<com.github.javaparser.ast.expr.MemberValuePair>
+ Line 580) m.accept(this, arg) ==> void
+ Line 586) visitComment(n.getComment(), arg) ==> void
+ Line 590) visitComment(n.getComment(), arg) ==> void
+ Line 591) n.getScope() != null ==> boolean
+ Line 592) n.getScope().accept(this, arg) ==> void
+ Line 594) n.getTypeArgs() != null ==> boolean
+ Line 595) final Type t ==> com.github.javaparser.ast.type.Type
+ Line 595) n.getTypeArgs() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 596) t.accept(this, arg) ==> void
+ Line 599) n.getType().accept(this, arg) ==> void
+ Line 600) n.getArgs() != null ==> boolean
+ Line 601) final Expression e ==> com.github.javaparser.ast.expr.Expression
+ Line 601) n.getArgs() ==> java.util.List<com.github.javaparser.ast.expr.Expression>
+ Line 602) e.accept(this, arg) ==> void
+ Line 605) n.getAnonymousClassBody() != null ==> boolean
+ Line 606) final BodyDeclaration member ==> com.github.javaparser.ast.body.BodyDeclaration
+ Line 606) n.getAnonymousClassBody() ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
+ Line 607) member.accept(this, arg) ==> void
+ Line 613) visitComment(n.getComment(), arg) ==> void
+ Line 614) n.getAnnotations() != null ==> boolean
+ Line 615) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 615) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 616) a.accept(this, arg) ==> void
+ Line 619) n.getName().accept(this, arg) ==> void
+ Line 623) visitComment(n.getComment(), arg) ==> void
+ Line 624) n.getAnnotations() != null ==> boolean
+ Line 625) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 625) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 626) a.accept(this, arg) ==> void
+ Line 629) n.getType().accept(this, arg) ==> void
+ Line 630) n.getId().accept(this, arg) ==> void
+ Line 634) visitComment(n.getComment(), arg) ==> void
+ Line 635) n.getAnnotations() != null ==> boolean
+ Line 636) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 636) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 637) a.accept(this, arg) ==> void
+ Line 640) final Type type ==> com.github.javaparser.ast.type.Type
+ Line 640) n.getTypes() ==> java.util.List<com.github.javaparser.ast.type.Type>
+ Line 641) type.accept(this, arg) ==> void
+ Line 643) n.getId().accept(this, arg) ==> void
+ Line 647) visitComment(n.getComment(), arg) ==> void
+ Line 651) visitComment(n.getComment(), arg) ==> void
+ Line 652) n.getQualifier().accept(this, arg) ==> void
+ Line 656) visitComment(n.getComment(), arg) ==> void
+ Line 657) n.getType().accept(this, arg) ==> void
+ Line 661) visitComment(n.getComment(), arg) ==> void
+ Line 662) n.getExpr() != null ==> boolean
+ Line 663) n.getExpr().accept(this, arg) ==> void
+ Line 668) visitComment(n.getComment(), arg) ==> void
+ Line 669) n.getName().accept(this, arg) ==> void
+ Line 670) n.getMemberValue().accept(this, arg) ==> void
+ Line 674) visitComment(n.getComment(), arg) ==> void
+ Line 678) visitComment(n.getComment(), arg) ==> void
+ Line 679) n.getClassExpr() != null ==> boolean
+ Line 680) n.getClassExpr().accept(this, arg) ==> void
+ Line 685) visitComment(n.getComment(), arg) ==> void
+ Line 686) n.getLabel() != null ==> boolean
+ Line 687) n.getLabel().accept(this, arg) ==> void
+ Line 689) n.getStmts() != null ==> boolean
+ Line 690) final Statement s ==> com.github.javaparser.ast.stmt.Statement
+ Line 690) n.getStmts() ==> java.util.List<com.github.javaparser.ast.stmt.Statement>
+ Line 691) s.accept(this, arg) ==> void
+ Line 697) visitComment(n.getComment(), arg) ==> void
+ Line 698) n.getSelector().accept(this, arg) ==> void
+ Line 699) n.getEntries() != null ==> boolean
+ Line 700) final SwitchEntryStmt e ==> com.github.javaparser.ast.stmt.SwitchEntryStmt
+ Line 700) n.getEntries() ==> java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>
+ Line 701) e.accept(this, arg) ==> void
+ Line 707) visitComment(n.getComment(), arg) ==> void
+ Line 708) n.getExpr().accept(this, arg) ==> void
+ Line 709) n.getBlock().accept(this, arg) ==> void
+ Line 713) visitComment(n.getComment(), arg) ==> void
+ Line 714) n.getClassExpr() != null ==> boolean
+ Line 715) n.getClassExpr().accept(this, arg) ==> void
+ Line 720) visitComment(n.getComment(), arg) ==> void
+ Line 721) n.getExpr().accept(this, arg) ==> void
+ Line 725) visitComment(n.getComment(), arg) ==> void
+ Line 726) n.getResources() != null ==> boolean
+ Line 727) final VariableDeclarationExpr v ==> com.github.javaparser.ast.expr.VariableDeclarationExpr
+ Line 727) n.getResources() ==> java.util.List<com.github.javaparser.ast.expr.VariableDeclarationExpr>
+ Line 728) v.accept(this, arg) ==> void
+ Line 731) n.getTryBlock().accept(this, arg) ==> void
+ Line 732) n.getCatchs() != null ==> boolean
+ Line 733) final CatchClause c ==> com.github.javaparser.ast.stmt.CatchClause
+ Line 733) n.getCatchs() ==> java.util.List<com.github.javaparser.ast.stmt.CatchClause>
+ Line 734) c.accept(this, arg) ==> void
+ Line 737) n.getFinallyBlock() != null ==> boolean
+ Line 738) n.getFinallyBlock().accept(this, arg) ==> void
+ Line 743) visitComment(n.getComment(), arg) ==> void
+ Line 744) n.getTypeDeclaration().accept(this, arg) ==> void
+ Line 748) visitComment(n.getComment(), arg) ==> void
+ Line 749) n.getTypeBound() != null ==> boolean
+ Line 750) final ClassOrInterfaceType c ==> com.github.javaparser.ast.type.ClassOrInterfaceType
+ Line 750) n.getTypeBound() ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
+ Line 751) c.accept(this, arg) ==> void
+ Line 757) visitComment(n.getComment(), arg) ==> void
+ Line 758) n.getExpr().accept(this, arg) ==> void
+ Line 762) visitComment(n.getComment(), arg) ==> void
+ Line 766) visitComment(n.getComment(), arg) ==> void
+ Line 767) n.getAnnotations() != null ==> boolean
+ Line 768) final AnnotationExpr a ==> com.github.javaparser.ast.expr.AnnotationExpr
+ Line 768) n.getAnnotations() ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
+ Line 769) a.accept(this, arg) ==> void
+ Line 772) n.getType().accept(this, arg) ==> void
+ Line 773) final VariableDeclarator v ==> com.github.javaparser.ast.body.VariableDeclarator
+ Line 773) n.getVars() ==> java.util.List<com.github.javaparser.ast.body.VariableDeclarator>
+ Line 774) v.accept(this, arg) ==> void
+ Line 779) visitComment(n.getComment(), arg) ==> void
+ Line 780) n.getId().accept(this, arg) ==> void
+ Line 781) n.getInit() != null ==> boolean
+ Line 782) n.getInit().accept(this, arg) ==> void
+ Line 787) visitComment(n.getComment(), arg) ==> void
+ Line 791) visitComment(n.getComment(), arg) ==> void
+ Line 795) visitComment(n.getComment(), arg) ==> void
+ Line 796) n.getCondition().accept(this, arg) ==> void
+ Line 797) n.getBody().accept(this, arg) ==> void
+ Line 801) visitComment(n.getComment(), arg) ==> void
+ Line 802) n.getExtends() != null ==> boolean
+ Line 803) n.getExtends().accept(this, arg) ==> void
+ Line 805) n.getSuper() != null ==> boolean
+ Line 806) n.getSuper().accept(this, arg) ==> void
+ Line 812) n.getParameters() != null ==> boolean
+ Line 813) final Parameter a ==> com.github.javaparser.ast.body.Parameter
+ Line 813) n.getParameters() ==> java.util.List<com.github.javaparser.ast.body.Parameter>
+ Line 814) a.accept(this, arg) ==> void
+ Line 817) n.getBody() != null ==> boolean
+ Line 818) n.getBody().accept(this, arg) ==> void
+ Line 824) n.getTypeParameters() != null ==> boolean
+ Line 825) final TypeParameter a ==> com.github.javaparser.ast.TypeParameter
+ Line 825) n.getTypeParameters() ==> java.util.List<com.github.javaparser.ast.TypeParameter>
+ Line 826) a.accept(this, arg) ==> void
+ Line 829) n.getScope() != null ==> boolean
+ Line 830) n.getScope().accept(this, arg) ==> void
+ Line 836) n.getType() != null ==> boolean
+ Line 837) n.getType().accept(this, arg) ==> void
+ Line 842) n != null ==> boolean
+ Line 843) n.accept(this, arg) ==> void
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_CommentsInserter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_CommentsInserter.txt
new file mode 100644
index 000000000..003f216cb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_CommentsInserter.txt
@@ -0,0 +1,49 @@
+ Line 52) comments.isEmpty() ==> java.util.TreeSet.isEmpty()
+ Line 63) cu.getChildrenNodes() ==> com.github.javaparser.ast.Node.getChildrenNodes()
+ Line 64) PositionUtils.sortByBeginPosition(children) ==> com.github.javaparser.utils.PositionUtils.sortByBeginPosition(java.util.List<T>)
+ Line 66) comments.iterator().next() ==> java.util.Iterator.next()
+ Line 66) comments.iterator() ==> java.util.TreeSet.iterator()
+ Line 67) cu.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 68) children.isEmpty() ==> java.util.List.isEmpty()
+ Line 68) PositionUtils.areInOrder(firstComment, children.get(0)) ==> com.github.javaparser.utils.PositionUtils.areInOrder(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node)
+ Line 69) children.get(0) ==> java.util.List.get(int)
+ Line 70) cu.setComment(firstComment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 71) comments.remove(firstComment) ==> java.util.TreeSet.remove(java.lang.Object)
+ Line 80) commentsToAttribute.isEmpty() ==> java.util.TreeSet.isEmpty()
+ Line 84) insertComments((CompilationUnit) node, commentsToAttribute) ==> com.github.javaparser.CommentsInserter.insertComments(com.github.javaparser.ast.CompilationUnit, java.util.TreeSet<com.github.javaparser.ast.comments.Comment>)
+ Line 95) node.getChildrenNodes() ==> com.github.javaparser.ast.Node.getChildrenNodes()
+ Line 96) PositionUtils.sortByBeginPosition(children) ==> com.github.javaparser.utils.PositionUtils.sortByBeginPosition(java.util.List<T>)
+ Line 101) PositionUtils.nodeContains(child, c, configuration.doNotConsiderAnnotationsAsNodeStartForCodeAttribution) ==> com.github.javaparser.utils.PositionUtils.nodeContains(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node, boolean)
+ Line 103) commentsInsideChild.add(c) ==> java.util.TreeSet.add(E)
+ Line 106) commentsToAttribute.removeAll(commentsInsideChild) ==> java.util.AbstractSet.removeAll(java.util.Collection<? extends java.lang.Object>)
+ Line 107) insertComments(child, commentsInsideChild) ==> com.github.javaparser.CommentsInserter.insertComments(com.github.javaparser.ast.Node, java.util.TreeSet<com.github.javaparser.ast.comments.Comment>)
+ Line 114) comment.isLineComment() ==> com.github.javaparser.ast.comments.Comment.isLineComment()
+ Line 116) child.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 116) comment.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 117) attributeLineCommentToNodeOrChild(child, comment.asLineComment()) ==> com.github.javaparser.CommentsInserter.attributeLineCommentToNodeOrChild(com.github.javaparser.ast.Node, com.github.javaparser.ast.comments.LineComment)
+ Line 118) comment.asLineComment() ==> com.github.javaparser.ast.comments.Comment.asLineComment()
+ Line 119) attributedComments.add(comment) ==> java.util.List.add(E)
+ Line 130) childrenAndComments.addAll(children) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 131) childrenAndComments.addAll(commentsToAttribute) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 132) PositionUtils.sortByBeginPosition(childrenAndComments, configuration.doNotConsiderAnnotationsAsNodeStartForCodeAttribution) ==> com.github.javaparser.utils.PositionUtils.sortByBeginPosition(java.util.List<T>, boolean)
+ Line 138) previousComment.isOrphan() ==> com.github.javaparser.ast.comments.Comment.isOrphan()
+ Line 142) thing.hasComment() ==> com.github.javaparser.ast.Node.hasComment()
+ Line 144) thereAreLinesBetween(previousComment, thing) ==> com.github.javaparser.CommentsInserter.thereAreLinesBetween(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node)
+ Line 145) thing.setComment(previousComment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 146) attributedComments.add(previousComment) ==> java.util.List.add(E)
+ Line 153) commentsToAttribute.removeAll(attributedComments) ==> java.util.AbstractSet.removeAll(java.util.Collection<? extends java.lang.Object>)
+ Line 157) c.isOrphan() ==> com.github.javaparser.ast.comments.Comment.isOrphan()
+ Line 158) node.addOrphanComment(c) ==> com.github.javaparser.ast.Node.addOrphanComment(com.github.javaparser.ast.comments.Comment)
+ Line 166) node.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 166) lineComment.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 167) node.hasComment() ==> com.github.javaparser.ast.Node.hasComment()
+ Line 169) node.setComment(lineComment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 176) children.addAll(node.getChildrenNodes()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 176) node.getChildrenNodes() ==> com.github.javaparser.ast.Node.getChildrenNodes()
+ Line 177) PositionUtils.sortByBeginPosition(children) ==> com.github.javaparser.utils.PositionUtils.sortByBeginPosition(java.util.List<T>)
+ Line 178) Collections.reverse(children) ==> java.util.Collections.reverse(java.util.List<? extends java.lang.Object>)
+ Line 181) attributeLineCommentToNodeOrChild(child, lineComment) ==> com.github.javaparser.CommentsInserter.attributeLineCommentToNodeOrChild(com.github.javaparser.ast.Node, com.github.javaparser.ast.comments.LineComment)
+ Line 191) PositionUtils.areInOrder(a, b) ==> com.github.javaparser.utils.PositionUtils.areInOrder(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node)
+ Line 192) thereAreLinesBetween(b, a) ==> com.github.javaparser.CommentsInserter.thereAreLinesBetween(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node)
+ Line 194) a.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 195) b.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_JavaParser.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_JavaParser.txt
new file mode 100644
index 000000000..beda6f74c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_JavaParser.txt
@@ -0,0 +1,49 @@
+ Line 73) astParser.ReInit(provider) ==> com.github.javaparser.ASTParser.ReInit(com.github.javaparser.Provider)
+ Line 90) getParserForProvider(provider) ==> com.github.javaparser.JavaParser.getParserForProvider(com.github.javaparser.Provider)
+ Line 91) start.parse(parser) ==> com.github.javaparser.ParseStart.parse(com.github.javaparser.ASTParser)
+ Line 92) astParser.getCommentsCollection() ==> com.github.javaparser.ASTParser.getCommentsCollection()
+ Line 93) commentsInserter.insertComments(resultNode, comments.copy().getComments()) ==> com.github.javaparser.CommentsInserter.insertComments(com.github.javaparser.ast.Node, java.util.TreeSet<com.github.javaparser.ast.comments.Comment>)
+ Line 93) comments.copy().getComments() ==> com.github.javaparser.ast.comments.CommentsCollection.getComments()
+ Line 93) comments.copy() ==> com.github.javaparser.ast.comments.CommentsCollection.copy()
+ Line 95) Optional.of(resultNode) ==> java.util.Optional.of(T)
+ Line 95) Optional.of(astParser.getTokens()) ==> java.util.Optional.of(T)
+ Line 95) astParser.getTokens() ==> com.github.javaparser.ASTParser.getTokens()
+ Line 95) Optional.of(astParser.getCommentsCollection()) ==> java.util.Optional.of(T)
+ Line 95) astParser.getCommentsCollection() ==> com.github.javaparser.ASTParser.getCommentsCollection()
+ Line 102) provider.close() ==> com.github.javaparser.Provider.close()
+ Line 119) simplifiedParse(COMPILATION_UNIT, provider(in, encoding)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 119) provider(in, encoding) ==> com.github.javaparser.Providers.provider(java.io.InputStream, java.nio.charset.Charset)
+ Line 132) parse(in, UTF8) ==> com.github.javaparser.JavaParser.parse(java.io.InputStream, java.nio.charset.Charset)
+ Line 146) simplifiedParse(COMPILATION_UNIT, provider(file, encoding)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 146) provider(file, encoding) ==> com.github.javaparser.Providers.provider(java.io.File, java.nio.charset.Charset)
+ Line 160) simplifiedParse(COMPILATION_UNIT, provider(file)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 160) provider(file) ==> com.github.javaparser.Providers.provider(java.io.File)
+ Line 174) simplifiedParse(COMPILATION_UNIT, provider(path, encoding)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 174) provider(path, encoding) ==> com.github.javaparser.Providers.provider(java.nio.file.Path, java.nio.charset.Charset)
+ Line 188) simplifiedParse(COMPILATION_UNIT, provider(path)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 188) provider(path) ==> com.github.javaparser.Providers.provider(java.nio.file.Path)
+ Line 200) simplifiedParse(COMPILATION_UNIT, provider(reader)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 200) provider(reader) ==> com.github.javaparser.Providers.provider(java.io.Reader)
+ Line 212) simplifiedParse(COMPILATION_UNIT, provider(code)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 212) provider(code) ==> com.github.javaparser.Providers.provider(java.lang.String)
+ Line 224) simplifiedParse(BLOCK, provider(blockStatement)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 224) provider(blockStatement) ==> com.github.javaparser.Providers.provider(java.lang.String)
+ Line 236) simplifiedParse(STATEMENT, provider(statement)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 236) provider(statement) ==> com.github.javaparser.Providers.provider(java.lang.String)
+ Line 240) new JavaParser(new ParserConfiguration()).parse(context, provider) ==> com.github.javaparser.JavaParser.parse(com.github.javaparser.ParseStart<N>, com.github.javaparser.Provider)
+ Line 241) result.isSuccessful() ==> com.github.javaparser.ParseResult.isSuccessful()
+ Line 242) result.getResult().get() ==> java.util.Optional.get()
+ Line 242) result.getResult() ==> com.github.javaparser.ParseResult.getResult()
+ Line 244) result.getProblems() ==> com.github.javaparser.ParseResult.getProblems()
+ Line 256) simplifiedParse(IMPORT_DECLARATION, provider(importDeclaration)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 256) provider(importDeclaration) ==> com.github.javaparser.Providers.provider(java.lang.String)
+ Line 268) simplifiedParse(EXPRESSION, provider(expression)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 268) provider(expression) ==> com.github.javaparser.Providers.provider(java.lang.String)
+ Line 280) simplifiedParse(ANNOTATION, provider(annotation)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 280) provider(annotation) ==> com.github.javaparser.Providers.provider(java.lang.String)
+ Line 292) simplifiedParse(ANNOTATION_BODY, provider(body)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 292) provider(body) ==> com.github.javaparser.Providers.provider(java.lang.String)
+ Line 304) simplifiedParse(CLASS_BODY, provider(body)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 304) provider(body) ==> com.github.javaparser.Providers.provider(java.lang.String)
+ Line 316) simplifiedParse(INTERFACE_BODY, provider(body)) ==> com.github.javaparser.JavaParser.simplifiedParse(com.github.javaparser.ParseStart<T>, com.github.javaparser.Provider)
+ Line 316) provider(body) ==> com.github.javaparser.Providers.provider(java.lang.String)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseProblemException.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseProblemException.txt
new file mode 100644
index 000000000..45f56b6ec
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseProblemException.txt
@@ -0,0 +1,10 @@
+ Line 21) createMessage(assertNotNull(problems)) ==> com.github.javaparser.ParseProblemException.createMessage(java.util.List<com.github.javaparser.Problem>)
+ Line 21) assertNotNull(problems) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 26) singletonList(new Problem(throwable.getMessage(), Optional.empty(), Optional.of(throwable))) ==> java.util.Collections.singletonList(T)
+ Line 26) throwable.getMessage() ==> java.lang.Throwable.getMessage()
+ Line 26) Optional.empty() ==> java.util.Optional.empty()
+ Line 26) Optional.of(throwable) ==> java.util.Optional.of(T)
+ Line 32) message.append(problem.toString()).append(EOL) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 32) message.append(problem.toString()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 32) problem.toString() ==> com.github.javaparser.Problem.toString()
+ Line 34) message.toString() ==> java.lang.StringBuilder.toString()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseResult.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseResult.txt
new file mode 100644
index 000000000..726ad562c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseResult.txt
@@ -0,0 +1,19 @@
+ Line 29) assertNotNull(commentsCollection) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 30) assertNotNull(result) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 31) assertNotNull(problems) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 32) assertNotNull(tokens) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 39) Optional.empty() ==> java.util.Optional.empty()
+ Line 39) singletonList(new Problem(throwable.getMessage(), Optional.empty(), Optional.of(throwable))) ==> java.util.Collections.singletonList(T)
+ Line 39) throwable.getMessage() ==> java.lang.Throwable.getMessage()
+ Line 39) Optional.empty() ==> java.util.Optional.empty()
+ Line 39) Optional.of(throwable) ==> java.util.Optional.of(T)
+ Line 39) Optional.empty() ==> java.util.Optional.empty()
+ Line 39) Optional.empty() ==> java.util.Optional.empty()
+ Line 46) problems.isEmpty() ==> java.util.List.isEmpty()
+ Line 46) result.isPresent() ==> java.util.Optional.isPresent()
+ Line 79) isSuccessful() ==> com.github.javaparser.ParseResult.isSuccessful()
+ Line 82) new StringBuilder("Parsing failed:").append(EOL) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 84) message.append(problem.toString()).append(EOL) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 84) message.append(problem.toString()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 84) problem.toString() ==> com.github.javaparser.Problem.toString()
+ Line 86) message.toString() ==> java.lang.StringBuilder.toString()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseStart.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseStart.txt
new file mode 100644
index 000000000..ea6800dbc
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParseStart.txt
@@ -0,0 +1,2 @@
+ Line 28) p.ClassOrInterfaceBodyDeclaration(false) ==> com.github.javaparser.ASTParser.ClassOrInterfaceBodyDeclaration(boolean)
+ Line 29) p.ClassOrInterfaceBodyDeclaration(true) ==> com.github.javaparser.ASTParser.ClassOrInterfaceBodyDeclaration(boolean)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParserConfiguration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParserConfiguration.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ParserConfiguration.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Position.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Position.txt
new file mode 100644
index 000000000..e07e79ecd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Position.txt
@@ -0,0 +1,9 @@
+ Line 78) valid() ==> com.github.javaparser.Position.valid()
+ Line 82) valid() ==> com.github.javaparser.Position.valid()
+ Line 89) assertNotNull(position) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 101) assertNotNull(position) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 113) assertNotNull(o) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 114) isBefore(o) ==> com.github.javaparser.Position.isBefore(com.github.javaparser.Position)
+ Line 117) isAfter(o) ==> com.github.javaparser.Position.isAfter(com.github.javaparser.Position)
+ Line 126) getClass() ==> java.lang.Object.getClass()
+ Line 126) o.getClass() ==> java.lang.Object.getClass()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Problem.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Problem.txt
new file mode 100644
index 000000000..a3d24eea4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Problem.txt
@@ -0,0 +1,7 @@
+ Line 16) assertNotNull(message) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 17) assertNotNull(range) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 18) assertNotNull(cause) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 24) range.ifPresent(r -> str.append(" ").append(r)) ==> java.util.Optional.ifPresent(java.util.function.Consumer<? super T>)
+ Line 24) str.append(" ").append(r) ==> java.lang.StringBuilder.append(java.lang.Object)
+ Line 24) str.append(" ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 25) str.toString() ==> java.lang.StringBuilder.toString()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Providers.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Providers.txt
new file mode 100644
index 000000000..1376d3198
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Providers.txt
@@ -0,0 +1,18 @@
+ Line 16) Charset.forName("utf-8") ==> java.nio.charset.Charset.forName(java.lang.String)
+ Line 22) assertNotNull(reader) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 26) assertNotNull(input) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 27) assertNotNull(encoding) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 29) encoding.name() ==> java.nio.charset.Charset.name()
+ Line 38) provider(input, UTF8) ==> com.github.javaparser.Providers.provider(java.io.InputStream, java.nio.charset.Charset)
+ Line 42) provider(new FileInputStream(assertNotNull(file)), assertNotNull(encoding)) ==> com.github.javaparser.Providers.provider(java.io.InputStream, java.nio.charset.Charset)
+ Line 42) assertNotNull(file) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 42) assertNotNull(encoding) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 46) provider(assertNotNull(file), UTF8) ==> com.github.javaparser.Providers.provider(java.io.File, java.nio.charset.Charset)
+ Line 46) assertNotNull(file) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 50) provider(Files.newInputStream(assertNotNull(path)), assertNotNull(encoding)) ==> com.github.javaparser.Providers.provider(java.io.InputStream, java.nio.charset.Charset)
+ Line 50) Files.newInputStream(assertNotNull(path)) ==> java.nio.file.Files.newInputStream(java.nio.file.Path, java.nio.file.OpenOption...)
+ Line 50) assertNotNull(path) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 50) assertNotNull(encoding) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 54) provider(assertNotNull(path), UTF8) ==> com.github.javaparser.Providers.provider(java.nio.file.Path, java.nio.charset.Charset)
+ Line 54) assertNotNull(path) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
+ Line 58) assertNotNull(source) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Range.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Range.txt
new file mode 100644
index 000000000..4a1547619
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_Range.txt
@@ -0,0 +1,23 @@
+ Line 9) range(Position.UNKNOWN, Position.UNKNOWN) ==> com.github.javaparser.Range.range(com.github.javaparser.Position, com.github.javaparser.Position)
+ Line 30) pos(beginLine, beginColumn) ==> com.github.javaparser.Position.pos(int, int)
+ Line 30) pos(endLine, endColumn) ==> com.github.javaparser.Position.pos(int, int)
+ Line 34) range(begin.withColumn(column), end) ==> com.github.javaparser.Range.range(com.github.javaparser.Position, com.github.javaparser.Position)
+ Line 34) begin.withColumn(column) ==> com.github.javaparser.Position.withColumn(int)
+ Line 38) range(begin.withLine(line), end) ==> com.github.javaparser.Range.range(com.github.javaparser.Position, com.github.javaparser.Position)
+ Line 38) begin.withLine(line) ==> com.github.javaparser.Position.withLine(int)
+ Line 42) range(begin, end.withColumn(column)) ==> com.github.javaparser.Range.range(com.github.javaparser.Position, com.github.javaparser.Position)
+ Line 42) end.withColumn(column) ==> com.github.javaparser.Position.withColumn(int)
+ Line 46) range(begin, end.withLine(line)) ==> com.github.javaparser.Range.range(com.github.javaparser.Position, com.github.javaparser.Position)
+ Line 46) end.withLine(line) ==> com.github.javaparser.Position.withLine(int)
+ Line 50) range(begin, this.end) ==> com.github.javaparser.Range.range(com.github.javaparser.Position, com.github.javaparser.Position)
+ Line 54) range(this.begin, end) ==> com.github.javaparser.Range.range(com.github.javaparser.Position, com.github.javaparser.Position)
+ Line 58) begin.isBefore(other.begin) ==> com.github.javaparser.Position.isBefore(com.github.javaparser.Position)
+ Line 58) end.isAfter(other.end) ==> com.github.javaparser.Position.isAfter(com.github.javaparser.Position)
+ Line 62) end.isBefore(position) ==> com.github.javaparser.Position.isBefore(com.github.javaparser.Position)
+ Line 66) begin.isAfter(position) ==> com.github.javaparser.Position.isAfter(com.github.javaparser.Position)
+ Line 72) getClass() ==> java.lang.Object.getClass()
+ Line 72) o.getClass() ==> java.lang.Object.getClass()
+ Line 76) begin.equals(range.begin) ==> com.github.javaparser.Position.equals(java.lang.Object)
+ Line 76) end.equals(range.end) ==> com.github.javaparser.Position.equals(java.lang.Object)
+ Line 82) begin.hashCode() ==> com.github.javaparser.Position.hashCode()
+ Line 82) end.hashCode() ==> com.github.javaparser.Position.hashCode()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_AccessSpecifier.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_AccessSpecifier.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_AccessSpecifier.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ArrayBracketPair.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ArrayBracketPair.txt
new file mode 100644
index 000000000..429ac176f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ArrayBracketPair.txt
@@ -0,0 +1,5 @@
+ Line 23) setAnnotations(annotations) ==> com.github.javaparser.ast.ArrayBracketPair.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 27) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.ArrayBracketPair, A)
+ Line 31) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.ArrayBracketPair, A)
+ Line 35) ensureNotNull(annotations) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 40) setAsParentNodeOf(annotations) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ArrayCreationLevel.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ArrayCreationLevel.txt
new file mode 100644
index 000000000..f096ed028
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ArrayCreationLevel.txt
@@ -0,0 +1,7 @@
+ Line 25) setDimension(dimension) ==> com.github.javaparser.ast.ArrayCreationLevel.setDimension(com.github.javaparser.ast.expr.Expression)
+ Line 26) setAnnotations(annotations) ==> com.github.javaparser.ast.ArrayCreationLevel.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 30) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.ArrayCreationLevel, A)
+ Line 34) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.ArrayCreationLevel, A)
+ Line 39) setAsParentNodeOf(dimension) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 47) ensureNotNull(annotations) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 52) setAsParentNodeOf(annotations) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_CompilationUnit.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_CompilationUnit.txt
new file mode 100644
index 000000000..eb74121e8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_CompilationUnit.txt
@@ -0,0 +1,103 @@
+ Line 79) setPackage(pakage) ==> com.github.javaparser.ast.CompilationUnit.setPackage(com.github.javaparser.ast.PackageDeclaration)
+ Line 80) setImports(imports) ==> com.github.javaparser.ast.CompilationUnit.setImports(java.util.List<com.github.javaparser.ast.ImportDeclaration>)
+ Line 81) setTypes(types) ==> com.github.javaparser.ast.CompilationUnit.setTypes(java.util.List<com.github.javaparser.ast.body.TypeDeclaration<?>>)
+ Line 87) setPackage(pakage) ==> com.github.javaparser.ast.CompilationUnit.setPackage(com.github.javaparser.ast.PackageDeclaration)
+ Line 88) setImports(imports) ==> com.github.javaparser.ast.CompilationUnit.setImports(java.util.List<com.github.javaparser.ast.ImportDeclaration>)
+ Line 89) setTypes(types) ==> com.github.javaparser.ast.CompilationUnit.setTypes(java.util.List<com.github.javaparser.ast.body.TypeDeclaration<?>>)
+ Line 94) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.CompilationUnit, A)
+ Line 99) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.CompilationUnit, A)
+ Line 115) this.getAllContainedComments() ==> com.github.javaparser.ast.Node.getAllContainedComments()
+ Line 125) ensureNotNull(imports) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 151) ensureNotNull(types) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 174) setAsParentNodeOf(this.imports) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 187) setAsParentNodeOf(this.pakage) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 199) setAsParentNodeOf(this.types) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 210) setPackage(new PackageDeclaration(name(name))) ==> com.github.javaparser.ast.CompilationUnit.setPackage(com.github.javaparser.ast.PackageDeclaration)
+ Line 210) name(name) ==> com.github.javaparser.ast.expr.NameExpr.name(java.lang.String)
+ Line 222) addImport(name, false, false) ==> com.github.javaparser.ast.CompilationUnit.addImport(java.lang.String, boolean, boolean)
+ Line 233) ClassUtils.isPrimitiveOrWrapper(clazz) ==> com.github.javaparser.utils.ClassUtils.isPrimitiveOrWrapper(java.lang.Class<?>)
+ Line 233) clazz.getName().startsWith("java.lang") ==> java.lang.String.startsWith(java.lang.String)
+ Line 233) clazz.getName() ==> java.lang.Class.getName()
+ Line 235) clazz.isArray() ==> java.lang.Class.isArray()
+ Line 235) ClassUtils.isPrimitiveOrWrapper(clazz.getComponentType()) ==> com.github.javaparser.utils.ClassUtils.isPrimitiveOrWrapper(java.lang.Class<?>)
+ Line 235) clazz.getComponentType() ==> java.lang.Class.getComponentType()
+ Line 236) clazz.getComponentType().getName().startsWith("java.lang") ==> java.lang.String.startsWith(java.lang.String)
+ Line 236) clazz.getComponentType().getName() ==> java.lang.Class.getName()
+ Line 236) clazz.getComponentType() ==> java.lang.Class.getComponentType()
+ Line 237) addImport(clazz.getComponentType().getName()) ==> com.github.javaparser.ast.CompilationUnit.addImport(java.lang.String)
+ Line 237) clazz.getComponentType().getName() ==> java.lang.Class.getName()
+ Line 237) clazz.getComponentType() ==> java.lang.Class.getComponentType()
+ Line 238) addImport(clazz.getName()) ==> com.github.javaparser.ast.CompilationUnit.addImport(java.lang.String)
+ Line 238) clazz.getName() ==> java.lang.Class.getName()
+ Line 251) getImports().stream().anyMatch(i -> i.getName().toString().equals(name)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 251) getImports().stream() ==> java.util.Collection.stream()
+ Line 251) getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 251) i.getName().toString().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 251) i.getName().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 251) i.getName() ==> com.github.javaparser.ast.ImportDeclaration.getName()
+ Line 254) name(name) ==> com.github.javaparser.ast.expr.NameExpr.name(java.lang.String)
+ Line 256) getImports().add(importDeclaration) ==> java.util.List.add(E)
+ Line 256) getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 257) importDeclaration.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 269) addClass(name, Modifier.PUBLIC) ==> com.github.javaparser.ast.CompilationUnit.addClass(java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 281) Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 281) Arrays.stream(modifiers) ==> java.util.Arrays.stream(T[])
+ Line 282) Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 282) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 284) getTypes().add(classOrInterfaceDeclaration) ==> java.util.List.add(E)
+ Line 284) getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 285) classOrInterfaceDeclaration.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 296) addInterface(name, Modifier.PUBLIC) ==> com.github.javaparser.ast.CompilationUnit.addInterface(java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 308) Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 308) Arrays.stream(modifiers) ==> java.util.Arrays.stream(T[])
+ Line 309) Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 309) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 311) getTypes().add(classOrInterfaceDeclaration) ==> java.util.List.add(E)
+ Line 311) getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 312) classOrInterfaceDeclaration.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 323) addEnum(name, Modifier.PUBLIC) ==> com.github.javaparser.ast.CompilationUnit.addEnum(java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 334) Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 334) Arrays.stream(modifiers) ==> java.util.Arrays.stream(T[])
+ Line 335) Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 335) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 336) getTypes().add(enumDeclaration) ==> java.util.List.add(E)
+ Line 336) getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 337) enumDeclaration.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 348) addAnnotationDeclaration(name, Modifier.PUBLIC) ==> com.github.javaparser.ast.CompilationUnit.addAnnotationDeclaration(java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 359) Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 359) Arrays.stream(modifiers) ==> java.util.Arrays.stream(T[])
+ Line 360) Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 360) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 361) getTypes().add(annotationDeclaration) ==> java.util.List.add(E)
+ Line 361) getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 362) annotationDeclaration.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 373) getTypes().stream().filter(type -> type.getName().equals(className) && type instanceof ClassOrInterfaceDeclaration && !((ClassOrInterfaceDeclaration) type).isInterface()).findFirst().orElse(null) ==> java.util.Optional.orElse(T)
+ Line 373) getTypes().stream().filter(type -> type.getName().equals(className) && type instanceof ClassOrInterfaceDeclaration && !((ClassOrInterfaceDeclaration) type).isInterface()).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 373) getTypes().stream().filter(type -> type.getName().equals(className) && type instanceof ClassOrInterfaceDeclaration && !((ClassOrInterfaceDeclaration) type).isInterface()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 373) getTypes().stream() ==> java.util.Collection.stream()
+ Line 373) getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 373) type.getName().equals(className) ==> java.lang.String.equals(java.lang.Object)
+ Line 373) type.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 374) ((ClassOrInterfaceDeclaration) type).isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 385) getTypes().stream().filter(type -> type.getName().equals(interfaceName) && type instanceof ClassOrInterfaceDeclaration && ((ClassOrInterfaceDeclaration) type).isInterface()).findFirst().orElse(null) ==> java.util.Optional.orElse(T)
+ Line 385) getTypes().stream().filter(type -> type.getName().equals(interfaceName) && type instanceof ClassOrInterfaceDeclaration && ((ClassOrInterfaceDeclaration) type).isInterface()).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 385) getTypes().stream().filter(type -> type.getName().equals(interfaceName) && type instanceof ClassOrInterfaceDeclaration && ((ClassOrInterfaceDeclaration) type).isInterface()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 385) getTypes().stream() ==> java.util.Collection.stream()
+ Line 385) getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 385) type.getName().equals(interfaceName) ==> java.lang.String.equals(java.lang.Object)
+ Line 385) type.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 386) ((ClassOrInterfaceDeclaration) type).isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 397) getTypes().stream().filter(type -> type.getName().equals(enumName) && type instanceof EnumDeclaration).findFirst().orElse(null) ==> java.util.Optional.orElse(T)
+ Line 397) getTypes().stream().filter(type -> type.getName().equals(enumName) && type instanceof EnumDeclaration).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 397) getTypes().stream().filter(type -> type.getName().equals(enumName) && type instanceof EnumDeclaration) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 397) getTypes().stream() ==> java.util.Collection.stream()
+ Line 397) getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 397) type.getName().equals(enumName) ==> java.lang.String.equals(java.lang.Object)
+ Line 397) type.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 409) getTypes().stream().filter(type -> type.getName().equals(annotationName) && type instanceof AnnotationDeclaration).findFirst().orElse(null) ==> java.util.Optional.orElse(T)
+ Line 409) getTypes().stream().filter(type -> type.getName().equals(annotationName) && type instanceof AnnotationDeclaration).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 409) getTypes().stream().filter(type -> type.getName().equals(annotationName) && type instanceof AnnotationDeclaration) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 409) getTypes().stream() ==> java.util.Collection.stream()
+ Line 409) getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 409) type.getName().equals(annotationName) ==> java.lang.String.equals(java.lang.Object)
+ Line 409) type.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Example.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Example.txt
new file mode 100644
index 000000000..81c2b22a7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Example.txt
@@ -0,0 +1,2 @@
+ Line 26) code.getBytes("UTF-8") ==> java.lang.String.getBytes(java.lang.String)
+ Line 27) JavaParser.parse(stream) ==> com.github.javaparser.JavaParser.parse(java.io.InputStream)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ImportDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ImportDeclaration.txt
new file mode 100644
index 000000000..8b3dfa4b8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_ImportDeclaration.txt
@@ -0,0 +1,9 @@
+ Line 78) setAsterisk(isAsterisk) ==> com.github.javaparser.ast.ImportDeclaration.setAsterisk(boolean)
+ Line 79) setName(name) ==> com.github.javaparser.ast.ImportDeclaration.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 80) setStatic(isStatic) ==> com.github.javaparser.ast.ImportDeclaration.setStatic(boolean)
+ Line 86) setAsterisk(isAsterisk) ==> com.github.javaparser.ast.ImportDeclaration.setAsterisk(boolean)
+ Line 87) setName(name) ==> com.github.javaparser.ast.ImportDeclaration.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 88) setStatic(isStatic) ==> com.github.javaparser.ast.ImportDeclaration.setStatic(boolean)
+ Line 101) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.ImportDeclaration, A)
+ Line 106) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.ImportDeclaration, A)
+ Line 169) setAsParentNodeOf(this.name) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Modifier.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Modifier.txt
new file mode 100644
index 000000000..87fedea31
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Modifier.txt
@@ -0,0 +1,4 @@
+ Line 32) EnumSet.of(this) ==> java.util.EnumSet.of(E)
+ Line 36) modifiers.contains(Modifier.PUBLIC) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 38) modifiers.contains(Modifier.PROTECTED) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 40) modifiers.contains(Modifier.PRIVATE) ==> java.util.AbstractCollection.contains(java.lang.Object)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Modifier_J9.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Modifier_J9.txt
new file mode 100644
index 000000000..c17b5bfce
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Modifier_J9.txt
@@ -0,0 +1,4 @@
+ Line 32) EnumSet.of(this) ==> java.util.Set.of(E...)
+ Line 36) modifiers.contains(Modifier.PUBLIC) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 38) modifiers.contains(Modifier.PROTECTED) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 40) modifiers.contains(Modifier.PRIVATE) ==> java.util.AbstractCollection.contains(java.lang.Object)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Node.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Node.txt
new file mode 100644
index 000000000..4ca45ef99
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_Node.txt
@@ -0,0 +1,46 @@
+ Line 46) a.getBegin().compareTo(b.getBegin()) ==> com.github.javaparser.Position.compareTo(com.github.javaparser.Position)
+ Line 46) a.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 46) b.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 121) range.withBegin(begin) ==> com.github.javaparser.Range.withBegin(com.github.javaparser.Position)
+ Line 129) range.withEnd(end) ==> com.github.javaparser.Range.withEnd(com.github.javaparser.Position)
+ Line 158) this.comment.setCommentedNode(null) ==> com.github.javaparser.ast.comments.Comment.setCommentedNode(com.github.javaparser.ast.Node)
+ Line 162) this.comment.setCommentedNode(this) ==> com.github.javaparser.ast.comments.Comment.setCommentedNode(com.github.javaparser.ast.Node)
+ Line 175) setComment(new LineComment(comment)) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 184) setComment(new BlockComment(comment)) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 195) accept(visitor, null) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 196) visitor.getSource() ==> com.github.javaparser.ast.visitor.DumpVisitor.getSource()
+ Line 201) accept(visitor, null) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 202) visitor.getSource() ==> com.github.javaparser.ast.visitor.DumpVisitor.getSource()
+ Line 207) toString().hashCode() ==> java.lang.String.hashCode()
+ Line 207) toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 215) EqualsVisitor.equals(this, (Node) obj) ==> com.github.javaparser.ast.visitor.EqualsVisitor.equals(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node)
+ Line 220) this.accept(new CloneVisitor(), null) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 231) classType.isAssignableFrom(parent.getClass()) ==> java.lang.Class.isAssignableFrom(java.lang.Class<? extends java.lang.Object>)
+ Line 231) parent.getClass() ==> java.lang.Object.getClass()
+ Line 243) range.contains(other.range) ==> com.github.javaparser.Range.contains(com.github.javaparser.Range)
+ Line 247) orphanComments.add(comment) ==> java.util.List.add(E)
+ Line 248) comment.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 276) comments.addAll(getOrphanComments()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 276) getOrphanComments() ==> com.github.javaparser.ast.Node.getOrphanComments()
+ Line 278) getChildrenNodes() ==> com.github.javaparser.ast.Node.getChildrenNodes()
+ Line 279) child.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 280) comments.add(child.getComment()) ==> java.util.List.add(E)
+ Line 280) child.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 282) comments.addAll(child.getAllContainedComments()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 282) child.getAllContainedComments() ==> com.github.javaparser.ast.Node.getAllContainedComments()
+ Line 297) this.parentNode.childrenNodes.remove(this) ==> java.util.List.remove(java.lang.Object)
+ Line 302) this.parentNode.childrenNodes.add(this) ==> java.util.List.add(E)
+ Line 309) current.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 316) childNode.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 324) range.isAfter(position) ==> com.github.javaparser.Range.isAfter(com.github.javaparser.Position)
+ Line 328) range.isBefore(position) ==> com.github.javaparser.Range.isBefore(com.github.javaparser.Position)
+ Line 336) getParentNodeOfType(CompilationUnit.class) ==> com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)
+ Line 338) parentNode.addImport(clazz) ==> com.github.javaparser.ast.CompilationUnit.addImport(java.lang.Class<?>)
+ Line 349) getChildrenNodes() ==> com.github.javaparser.ast.Node.getChildrenNodes()
+ Line 350) clazz.isInstance(child) ==> java.lang.Class.isInstance(java.lang.Object)
+ Line 351) nodes.add(clazz.cast(child)) ==> java.util.List.add(E)
+ Line 351) clazz.cast(child) ==> java.lang.Class.cast(java.lang.Object)
+ Line 353) nodes.addAll(child.getNodesByType(clazz)) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 353) child.getNodesByType(clazz) ==> com.github.javaparser.ast.Node.getNodesByType(java.lang.Class<N>)
+ Line 373) userData.get(key) ==> java.util.IdentityHashMap.get(java.lang.Object)
+ Line 394) userData.put(key, object) ==> java.util.IdentityHashMap.put(K, V)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_PackageDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_PackageDeclaration.txt
new file mode 100644
index 000000000..1c72dc689
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_PackageDeclaration.txt
@@ -0,0 +1,11 @@
+ Line 57) setName(name) ==> com.github.javaparser.ast.PackageDeclaration.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 61) setAnnotations(annotations) ==> com.github.javaparser.ast.PackageDeclaration.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 62) setName(name) ==> com.github.javaparser.ast.PackageDeclaration.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 67) setAnnotations(annotations) ==> com.github.javaparser.ast.PackageDeclaration.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 68) setName(name) ==> com.github.javaparser.ast.PackageDeclaration.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 73) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.PackageDeclaration, A)
+ Line 78) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.PackageDeclaration, A)
+ Line 88) Utils.ensureNotNull(annotations) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 105) name.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 114) setAsParentNodeOf(this.annotations) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 126) setAsParentNodeOf(this.name) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_UserDataKey.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_UserDataKey.txt
new file mode 100644
index 000000000..b3f6df7a2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_UserDataKey.txt
@@ -0,0 +1,5 @@
+ Line 28) getClass().hashCode() ==> java.lang.Object.hashCode()
+ Line 28) getClass() ==> java.lang.Object.getClass()
+ Line 37) getClass().equals(obj.getClass()) ==> java.lang.Object.equals(java.lang.Object)
+ Line 37) getClass() ==> java.lang.Object.getClass()
+ Line 37) obj.getClass() ==> java.lang.Object.getClass()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_AnnotationDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_AnnotationDeclaration.txt
new file mode 100644
index 000000000..b04655dc0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_AnnotationDeclaration.txt
@@ -0,0 +1,2 @@
+ Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.AnnotationDeclaration, A)
+ Line 63) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.AnnotationDeclaration, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_AnnotationMemberDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_AnnotationMemberDeclaration.txt
new file mode 100644
index 000000000..d32463f51
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_AnnotationMemberDeclaration.txt
@@ -0,0 +1,19 @@
+ Line 47) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 59) setModifiers(modifiers) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 60) setType(type) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setType(com.github.javaparser.ast.type.Type)
+ Line 61) setName(name) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setName(java.lang.String)
+ Line 62) setDefaultValue(defaultValue) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setDefaultValue(com.github.javaparser.ast.expr.Expression)
+ Line 68) setModifiers(modifiers) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 69) setType(type) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setType(com.github.javaparser.ast.type.Type)
+ Line 70) setName(name) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setName(java.lang.String)
+ Line 71) setDefaultValue(defaultValue) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setDefaultValue(com.github.javaparser.ast.expr.Expression)
+ Line 77) setModifiers(modifiers) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 78) setType(type) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setType(com.github.javaparser.ast.type.Type)
+ Line 79) setName(name) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setName(java.lang.String)
+ Line 80) setDefaultValue(defaultValue) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setDefaultValue(com.github.javaparser.ast.expr.Expression)
+ Line 85) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.AnnotationMemberDeclaration, A)
+ Line 90) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.AnnotationMemberDeclaration, A)
+ Line 120) setAsParentNodeOf(defaultValue) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 139) setAsParentNodeOf(type) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 145) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 146) getComment() ==> com.github.javaparser.ast.Node.getComment()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_BodyDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_BodyDeclaration.txt
new file mode 100644
index 000000000..7460575df
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_BodyDeclaration.txt
@@ -0,0 +1,4 @@
+ Line 43) setAnnotations(annotations) ==> com.github.javaparser.ast.body.BodyDeclaration.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 48) setAnnotations(annotations) ==> com.github.javaparser.ast.body.BodyDeclaration.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 53) Utils.ensureNotNull(annotations) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 66) setAsParentNodeOf(this.annotations) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_ClassOrInterfaceDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_ClassOrInterfaceDeclaration.txt
new file mode 100644
index 000000000..13c8f5cc0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_ClassOrInterfaceDeclaration.txt
@@ -0,0 +1,17 @@
+ Line 60) setInterface(isInterface) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.setInterface(boolean)
+ Line 71) setInterface(isInterface) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.setInterface(boolean)
+ Line 72) setTypeParameters(typeParameters) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)
+ Line 73) setExtends(extendsList) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.setExtends(java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>)
+ Line 74) setImplements(implementsList) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.setImplements(java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>)
+ Line 85) setInterface(isInterface) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.setInterface(boolean)
+ Line 86) setTypeParameters(typeParameters) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)
+ Line 87) setExtends(extendsList) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.setExtends(java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>)
+ Line 88) setImplements(implementsList) ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.setImplements(java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>)
+ Line 93) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration, A)
+ Line 98) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration, A)
+ Line 102) ensureNotNull(extendsList) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 108) ensureNotNull(implementsList) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 113) ensureNotNull(typeParameters) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 130) setAsParentNodeOf(this.extendsList) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 142) setAsParentNodeOf(this.implementsList) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 158) setAsParentNodeOf(this.typeParameters) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_ConstructorDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_ConstructorDeclaration.txt
new file mode 100644
index 000000000..2fdf81ccd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_ConstructorDeclaration.txt
@@ -0,0 +1,53 @@
+ Line 51) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 67) setModifiers(modifiers) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 68) setName(name) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)
+ Line 76) setModifiers(modifiers) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 77) setTypeParameters(typeParameters) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)
+ Line 78) setName(name) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)
+ Line 79) setParameters(parameters) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)
+ Line 80) setThrows(throws_) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)
+ Line 81) setBody(block) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 88) setModifiers(modifiers) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 89) setTypeParameters(typeParameters) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)
+ Line 90) setName(name) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)
+ Line 91) setParameters(parameters) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)
+ Line 92) setThrows(throws_) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)
+ Line 93) setBody(block) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 98) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.ConstructorDeclaration, A)
+ Line 103) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.ConstructorDeclaration, A)
+ Line 119) name.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 128) ensureNotNull(parameters) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 134) ensureNotNull(throws_) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 139) ensureNotNull(typeParameters) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 151) setNameExpr(new NameExpr(name)) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)
+ Line 157) setAsParentNodeOf(this.name) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 164) setAsParentNodeOf(this.parameters) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 171) setAsParentNodeOf(this.throws_) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 177) setAsParentNodeOf(this.typeParameters) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 192) Modifier.getAccessSpecifier(getModifiers()) ==> com.github.javaparser.ast.Modifier.getAccessSpecifier(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 192) getModifiers() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()
+ Line 193) sb.append(accessSpecifier.getCodeRepresenation()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 193) accessSpecifier.getCodeRepresenation() ==> com.github.javaparser.ast.AccessSpecifier.getCodeRepresenation()
+ Line 194) sb.append(accessSpecifier == AccessSpecifier.DEFAULT ? "" : " ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 196) sb.append(getName()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 196) getName() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getName()
+ Line 197) sb.append("(") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 199) getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 203) sb.append(", ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 206) sb.append(param.toStringWithoutComments()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 206) param.toStringWithoutComments() ==> com.github.javaparser.ast.Node.toStringWithoutComments()
+ Line 208) sb.append(param.getElementType().toStringWithoutComments()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 208) param.getElementType().toStringWithoutComments() ==> com.github.javaparser.ast.Node.toStringWithoutComments()
+ Line 208) param.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 211) sb.append(")") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 214) getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 217) sb.append(" throws ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 219) sb.append(", ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 221) sb.append(thr.toStringWithoutComments()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 221) thr.toStringWithoutComments() ==> com.github.javaparser.ast.Node.toStringWithoutComments()
+ Line 224) sb.toString() ==> java.lang.StringBuilder.toString()
+ Line 229) getDeclarationAsString(includingModifiers, includingThrows, true) ==> com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)
+ Line 234) getDeclarationAsString(true, true, true) ==> com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)
+ Line 239) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 240) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 253) setAsParentNodeOf(body) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EmptyMemberDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EmptyMemberDeclaration.txt
new file mode 100644
index 000000000..341d9fb3c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EmptyMemberDeclaration.txt
@@ -0,0 +1,4 @@
+ Line 46) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.EmptyMemberDeclaration, A)
+ Line 51) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.EmptyMemberDeclaration, A)
+ Line 56) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 57) getComment() ==> com.github.javaparser.ast.Node.getComment()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EmptyTypeDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EmptyTypeDeclaration.txt
new file mode 100644
index 000000000..121819579
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EmptyTypeDeclaration.txt
@@ -0,0 +1,4 @@
+ Line 37) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 41) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 46) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.EmptyTypeDeclaration, A)
+ Line 51) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.EmptyTypeDeclaration, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EnumConstantDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EnumConstantDeclaration.txt
new file mode 100644
index 000000000..aee75d78f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EnumConstantDeclaration.txt
@@ -0,0 +1,18 @@
+ Line 59) setName(name) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.setName(java.lang.String)
+ Line 65) setName(name) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.setName(java.lang.String)
+ Line 66) setArgs(args) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.setArgs(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 67) setClassBody(classBody) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.setClassBody(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>)
+ Line 73) setName(name) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.setName(java.lang.String)
+ Line 74) setArgs(args) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.setArgs(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 75) setClassBody(classBody) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.setClassBody(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>)
+ Line 80) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.EnumConstantDeclaration, A)
+ Line 85) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.EnumConstantDeclaration, A)
+ Line 89) ensureNotNull(args) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 94) ensureNotNull(classBody) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 105) setAsParentNodeOf(this.args) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 111) setAsParentNodeOf(this.classBody) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 123) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 124) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 130) getArgs().add(name(valueExpr)) ==> java.util.List.add(E)
+ Line 130) getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 130) name(valueExpr) ==> com.github.javaparser.ast.expr.NameExpr.name(java.lang.String)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EnumDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EnumDeclaration.txt
new file mode 100644
index 000000000..e06afc330
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_EnumDeclaration.txt
@@ -0,0 +1,13 @@
+ Line 58) setImplements(implementsList) ==> com.github.javaparser.ast.body.EnumDeclaration.setImplements(java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>)
+ Line 59) setEntries(entries) ==> com.github.javaparser.ast.body.EnumDeclaration.setEntries(java.util.List<com.github.javaparser.ast.body.EnumConstantDeclaration>)
+ Line 66) setImplements(implementsList) ==> com.github.javaparser.ast.body.EnumDeclaration.setImplements(java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>)
+ Line 67) setEntries(entries) ==> com.github.javaparser.ast.body.EnumDeclaration.setEntries(java.util.List<com.github.javaparser.ast.body.EnumConstantDeclaration>)
+ Line 72) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.EnumDeclaration, A)
+ Line 78) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.EnumDeclaration, A)
+ Line 82) ensureNotNull(entries) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 88) ensureNotNull(implementsList) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 94) setAsParentNodeOf(this.entries) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 101) setAsParentNodeOf(this.implementsList) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 109) getEntries().add(enumConstant) ==> java.util.List.add(E)
+ Line 109) getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 110) enumConstant.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_FieldDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_FieldDeclaration.txt
new file mode 100644
index 000000000..234f63ac3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_FieldDeclaration.txt
@@ -0,0 +1,68 @@
+ Line 58) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 70) setModifiers(modifiers) ==> com.github.javaparser.ast.body.FieldDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 71) setElementType(elementType) ==> com.github.javaparser.ast.body.FieldDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 73) aux.add(variable) ==> java.util.List.add(E)
+ Line 74) setVariables(aux) ==> com.github.javaparser.ast.body.FieldDeclaration.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 78) setModifiers(modifiers) ==> com.github.javaparser.ast.body.FieldDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 79) setElementType(elementType) ==> com.github.javaparser.ast.body.FieldDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 80) setVariables(variables) ==> com.github.javaparser.ast.body.FieldDeclaration.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 86) setModifiers(modifiers) ==> com.github.javaparser.ast.body.FieldDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 87) setElementType(elementType) ==> com.github.javaparser.ast.body.FieldDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 88) setVariables(variables) ==> com.github.javaparser.ast.body.FieldDeclaration.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 89) setArrayBracketPairsAfterElementType(arrayBracketPairsAfterElementType) ==> com.github.javaparser.ast.body.FieldDeclaration.setArrayBracketPairsAfterElementType(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 95) setModifiers(modifiers) ==> com.github.javaparser.ast.body.FieldDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 96) setElementType(elementType) ==> com.github.javaparser.ast.body.FieldDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 97) setVariables(variables) ==> com.github.javaparser.ast.body.FieldDeclaration.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 98) setArrayBracketPairsAfterElementType(arrayBracketPairsAfterElementType) ==> com.github.javaparser.ast.body.FieldDeclaration.setArrayBracketPairsAfterElementType(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 115) variables.add(variable) ==> java.util.List.add(E)
+ Line 133) create(modifiers, type, variable) ==> com.github.javaparser.ast.body.FieldDeclaration.create(java.util.EnumSet<com.github.javaparser.ast.Modifier>, com.github.javaparser.ast.type.Type, com.github.javaparser.ast.body.VariableDeclarator)
+ Line 138) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.FieldDeclaration, A)
+ Line 143) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.FieldDeclaration, A)
+ Line 159) ensureNotNull(variables) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 172) setAsParentNodeOf(this.variables) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 178) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 179) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 193) getVariables().size() ==> java.util.List.size()
+ Line 193) getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 195) getParentNodeOfType(ClassOrInterfaceDeclaration.class) ==> com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)
+ Line 196) getParentNodeOfType(EnumDeclaration.class) ==> com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)
+ Line 197) parentClass.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 201) getVariables().get(0) ==> java.util.List.get(int)
+ Line 201) getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 202) variable.getId().getName() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getName()
+ Line 202) variable.getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 203) fieldName.toUpperCase().substring(0, 1) ==> java.lang.String.substring(int, int)
+ Line 203) fieldName.toUpperCase() ==> java.lang.String.toUpperCase()
+ Line 203) fieldName.substring(1, fieldName.length()) ==> java.lang.String.substring(int, int)
+ Line 203) fieldName.length() ==> java.lang.String.length()
+ Line 206) parentClass.addMethod("get" + fieldNameUpper, PUBLIC) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addMethod(java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 208) parentEnum.addMethod("get" + fieldNameUpper, PUBLIC) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addMethod(java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 209) getter.setType(variable.getType()) ==> com.github.javaparser.ast.body.MethodDeclaration.setType(com.github.javaparser.ast.type.Type)
+ Line 209) variable.getType() ==> com.github.javaparser.ast.body.VariableDeclarator.getType()
+ Line 211) getter.setBody(blockStmt) ==> com.github.javaparser.ast.body.MethodDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 212) blockStmt.addStatement(new ReturnStmt(name(fieldName))) ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.addStatement(com.github.javaparser.ast.stmt.Statement)
+ Line 212) name(fieldName) ==> com.github.javaparser.ast.expr.NameExpr.name(java.lang.String)
+ Line 225) getVariables().size() ==> java.util.List.size()
+ Line 225) getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 227) getParentNodeOfType(ClassOrInterfaceDeclaration.class) ==> com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)
+ Line 228) getParentNodeOfType(EnumDeclaration.class) ==> com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)
+ Line 229) parentClass.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 233) getVariables().get(0) ==> java.util.List.get(int)
+ Line 233) getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 234) variable.getId().getName() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getName()
+ Line 234) variable.getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 235) fieldName.toUpperCase().substring(0, 1) ==> java.lang.String.substring(int, int)
+ Line 235) fieldName.toUpperCase() ==> java.lang.String.toUpperCase()
+ Line 235) fieldName.substring(1, fieldName.length()) ==> java.lang.String.substring(int, int)
+ Line 235) fieldName.length() ==> java.lang.String.length()
+ Line 239) parentClass.addMethod("set" + fieldNameUpper, PUBLIC) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addMethod(java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 241) parentEnum.addMethod("set" + fieldNameUpper, PUBLIC) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addMethod(java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 242) setter.setType(VOID_TYPE) ==> com.github.javaparser.ast.body.MethodDeclaration.setType(com.github.javaparser.ast.type.Type)
+ Line 243) setter.getParameters().add(new Parameter(variable.getType(), new VariableDeclaratorId(fieldName))) ==> java.util.List.add(E)
+ Line 243) setter.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 243) variable.getType() ==> com.github.javaparser.ast.body.VariableDeclarator.getType()
+ Line 245) setter.setBody(blockStmt2) ==> com.github.javaparser.ast.body.MethodDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 246) blockStmt2.addStatement(new AssignExpr(new NameExpr("this." + fieldName), new NameExpr(fieldName), Operator.assign)) ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.addStatement(com.github.javaparser.ast.expr.Expression)
+ Line 259) setAsParentNodeOf(this.elementType) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 267) ensureNotNull(arrayBracketPairsAfterElementType) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 274) setAsParentNodeOf(arrayBracketPairsAfterType) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_InitializerDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_InitializerDeclaration.txt
new file mode 100644
index 000000000..42f3b8e4e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_InitializerDeclaration.txt
@@ -0,0 +1,9 @@
+ Line 46) setStatic(isStatic) ==> com.github.javaparser.ast.body.InitializerDeclaration.setStatic(boolean)
+ Line 47) setBlock(block) ==> com.github.javaparser.ast.body.InitializerDeclaration.setBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 52) setStatic(isStatic) ==> com.github.javaparser.ast.body.InitializerDeclaration.setStatic(boolean)
+ Line 53) setBlock(block) ==> com.github.javaparser.ast.body.InitializerDeclaration.setBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.InitializerDeclaration, A)
+ Line 63) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.InitializerDeclaration, A)
+ Line 76) setAsParentNodeOf(this.block) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 87) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 88) getComment() ==> com.github.javaparser.ast.Node.getComment()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_MethodDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_MethodDeclaration.txt
new file mode 100644
index 000000000..c36ddc8f4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_MethodDeclaration.txt
@@ -0,0 +1,98 @@
+ Line 67) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 91) setModifiers(modifiers) ==> com.github.javaparser.ast.body.MethodDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 92) setElementType(elementType) ==> com.github.javaparser.ast.body.MethodDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 93) setName(name) ==> com.github.javaparser.ast.body.MethodDeclaration.setName(java.lang.String)
+ Line 98) setModifiers(modifiers) ==> com.github.javaparser.ast.body.MethodDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 99) setElementType(elementType) ==> com.github.javaparser.ast.body.MethodDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 100) setName(name) ==> com.github.javaparser.ast.body.MethodDeclaration.setName(java.lang.String)
+ Line 101) setParameters(parameters) ==> com.github.javaparser.ast.body.MethodDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)
+ Line 115) setModifiers(modifiers) ==> com.github.javaparser.ast.body.MethodDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 116) setTypeParameters(typeParameters) ==> com.github.javaparser.ast.body.MethodDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)
+ Line 117) setElementType(elementType) ==> com.github.javaparser.ast.body.MethodDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 118) setName(name) ==> com.github.javaparser.ast.body.MethodDeclaration.setName(java.lang.String)
+ Line 119) setParameters(parameters) ==> com.github.javaparser.ast.body.MethodDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)
+ Line 120) setArrayBracketPairsAfterElementType(arrayBracketPairsAfterElementType) ==> com.github.javaparser.ast.body.MethodDeclaration.setArrayBracketPairsAfterElementType(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 121) setArrayBracketPairsAfterParameterList(arrayBracketPairsAfterParameterList) ==> com.github.javaparser.ast.body.MethodDeclaration.setArrayBracketPairsAfterParameterList(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 122) setThrows(throws_) ==> com.github.javaparser.ast.body.MethodDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)
+ Line 123) setBody(body) ==> com.github.javaparser.ast.body.MethodDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 138) setModifiers(modifiers) ==> com.github.javaparser.ast.body.MethodDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 139) setTypeParameters(typeParameters) ==> com.github.javaparser.ast.body.MethodDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)
+ Line 140) setElementType(elementType) ==> com.github.javaparser.ast.body.MethodDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 141) setNameExpr(nameExpr) ==> com.github.javaparser.ast.body.MethodDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)
+ Line 142) setParameters(parameters) ==> com.github.javaparser.ast.body.MethodDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)
+ Line 143) setArrayBracketPairsAfterElementType(arrayBracketPairsAfterElementType) ==> com.github.javaparser.ast.body.MethodDeclaration.setArrayBracketPairsAfterElementType(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 144) setArrayBracketPairsAfterParameterList(arrayBracketPairsAfterParameterList) ==> com.github.javaparser.ast.body.MethodDeclaration.setArrayBracketPairsAfterParameterList(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 145) setThrows(throws_) ==> com.github.javaparser.ast.body.MethodDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)
+ Line 146) setBody(body) ==> com.github.javaparser.ast.body.MethodDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 151) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.MethodDeclaration, A)
+ Line 156) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.MethodDeclaration, A)
+ Line 177) name.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 186) ensureNotNull(parameters) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 192) ensureNotNull(throws_) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 198) wrapInArrayTypes(getElementType(), getArrayBracketPairsAfterElementType(), getArrayBracketPairsAfterParameterList()) ==> com.github.javaparser.ast.type.ArrayType.wrapInArrayTypes(com.github.javaparser.ast.type.Type, java.util.List<com.github.javaparser.ast.ArrayBracketPair>...)
+ Line 198) getElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getElementType()
+ Line 199) getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getArrayBracketPairsAfterElementType()
+ Line 200) getArrayBracketPairsAfterParameterList() ==> com.github.javaparser.ast.body.MethodDeclaration.getArrayBracketPairsAfterParameterList()
+ Line 209) ensureNotNull(typeParameters) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 216) setAsParentNodeOf(this.body) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 228) setNameExpr(new NameExpr(name)) ==> com.github.javaparser.ast.body.MethodDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)
+ Line 234) setAsParentNodeOf(this.name) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 241) setAsParentNodeOf(this.parameters) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 248) setAsParentNodeOf(this.throws_) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 254) unwrapArrayTypes(type) ==> com.github.javaparser.ast.type.ArrayType.unwrapArrayTypes(com.github.javaparser.ast.type.Type)
+ Line 255) setElementType(typeListPair.a) ==> com.github.javaparser.ast.body.MethodDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 256) setArrayBracketPairsAfterElementType(typeListPair.b) ==> com.github.javaparser.ast.body.MethodDeclaration.setArrayBracketPairsAfterElementType(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 257) setArrayBracketPairsAfterParameterList(null) ==> com.github.javaparser.ast.body.MethodDeclaration.setArrayBracketPairsAfterParameterList(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 264) setAsParentNodeOf(this.elementType) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 270) setAsParentNodeOf(typeParameters) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 285) getDeclarationAsString(true, true, true) ==> com.github.javaparser.ast.body.MethodDeclaration.getDeclarationAsString(boolean, boolean, boolean)
+ Line 290) getDeclarationAsString(includingModifiers, includingThrows, true) ==> com.github.javaparser.ast.body.MethodDeclaration.getDeclarationAsString(boolean, boolean, boolean)
+ Line 307) Modifier.getAccessSpecifier(getModifiers()) ==> com.github.javaparser.ast.Modifier.getAccessSpecifier(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 307) getModifiers() ==> com.github.javaparser.ast.body.MethodDeclaration.getModifiers()
+ Line 308) sb.append(accessSpecifier.getCodeRepresenation()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 308) accessSpecifier.getCodeRepresenation() ==> com.github.javaparser.ast.AccessSpecifier.getCodeRepresenation()
+ Line 309) sb.append(accessSpecifier == AccessSpecifier.DEFAULT ? "" : " ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 310) getModifiers().contains(Modifier.STATIC) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 310) getModifiers() ==> com.github.javaparser.ast.body.MethodDeclaration.getModifiers()
+ Line 311) sb.append("static ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 313) getModifiers().contains(Modifier.ABSTRACT) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 313) getModifiers() ==> com.github.javaparser.ast.body.MethodDeclaration.getModifiers()
+ Line 314) sb.append("abstract ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 316) getModifiers().contains(Modifier.FINAL) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 316) getModifiers() ==> com.github.javaparser.ast.body.MethodDeclaration.getModifiers()
+ Line 317) sb.append("final ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 319) getModifiers().contains(Modifier.NATIVE) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 319) getModifiers() ==> com.github.javaparser.ast.body.MethodDeclaration.getModifiers()
+ Line 320) sb.append("native ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 322) getModifiers().contains(Modifier.SYNCHRONIZED) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 322) getModifiers() ==> com.github.javaparser.ast.body.MethodDeclaration.getModifiers()
+ Line 323) sb.append("synchronized ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 327) sb.append(getElementType().toStringWithoutComments()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 327) getElementType().toStringWithoutComments() ==> com.github.javaparser.ast.Node.toStringWithoutComments()
+ Line 327) getElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getElementType()
+ Line 328) sb.append(" ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 329) sb.append(getName()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 329) getName() ==> com.github.javaparser.ast.body.MethodDeclaration.getName()
+ Line 330) sb.append("(") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 332) getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 336) sb.append(", ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 339) sb.append(param.toStringWithoutComments()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 339) param.toStringWithoutComments() ==> com.github.javaparser.ast.Node.toStringWithoutComments()
+ Line 341) sb.append(param.getElementType().toStringWithoutComments()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 341) param.getElementType().toStringWithoutComments() ==> com.github.javaparser.ast.Node.toStringWithoutComments()
+ Line 341) param.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 342) param.isVarArgs() ==> com.github.javaparser.ast.body.Parameter.isVarArgs()
+ Line 343) sb.append("...") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 347) sb.append(")") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 350) getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 353) sb.append(" throws ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 355) sb.append(", ") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 357) sb.append(thr.toStringWithoutComments()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 357) thr.toStringWithoutComments() ==> com.github.javaparser.ast.Node.toStringWithoutComments()
+ Line 360) sb.toString() ==> java.lang.StringBuilder.toString()
+ Line 365) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 366) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 375) ensureNotNull(arrayBracketPairsAfterType) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 382) setAsParentNodeOf(arrayBracketPairsAfterType) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 390) ensureNotNull(arrayBracketPairsAfterParameterList) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 396) setAsParentNodeOf(arrayBracketPairsAfterParameterList) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_Parameter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_Parameter.txt
new file mode 100644
index 000000000..9f579bc8a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_Parameter.txt
@@ -0,0 +1,32 @@
+ Line 56) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 68) setId(id) ==> com.github.javaparser.ast.body.Parameter.setId(com.github.javaparser.ast.body.VariableDeclaratorId)
+ Line 69) setElementType(elementType) ==> com.github.javaparser.ast.body.Parameter.setElementType(com.github.javaparser.ast.type.Type)
+ Line 86) setModifiers(modifiers) ==> com.github.javaparser.ast.body.Parameter.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 87) setId(id) ==> com.github.javaparser.ast.body.Parameter.setId(com.github.javaparser.ast.body.VariableDeclaratorId)
+ Line 88) setElementType(elementType) ==> com.github.javaparser.ast.body.Parameter.setElementType(com.github.javaparser.ast.type.Type)
+ Line 99) setModifiers(modifiers) ==> com.github.javaparser.ast.body.Parameter.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 100) setAnnotations(annotations) ==> com.github.javaparser.ast.body.Parameter.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 101) setId(id) ==> com.github.javaparser.ast.body.Parameter.setId(com.github.javaparser.ast.body.VariableDeclaratorId)
+ Line 102) setElementType(elementType) ==> com.github.javaparser.ast.body.Parameter.setElementType(com.github.javaparser.ast.type.Type)
+ Line 103) setVarArgs(isVarArgs) ==> com.github.javaparser.ast.body.Parameter.setVarArgs(boolean)
+ Line 104) setArrayBracketPairsAfterElementType(arrayBracketPairsAfterElementType) ==> com.github.javaparser.ast.body.Parameter.setArrayBracketPairsAfterElementType(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 109) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.Parameter, A)
+ Line 114) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.Parameter, A)
+ Line 119) wrapInArrayTypes(elementType, getArrayBracketPairsAfterElementType(), getId().getArrayBracketPairsAfterId()) ==> com.github.javaparser.ast.type.ArrayType.wrapInArrayTypes(com.github.javaparser.ast.type.Type, java.util.List<com.github.javaparser.ast.ArrayBracketPair>...)
+ Line 120) getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.Parameter.getArrayBracketPairsAfterElementType()
+ Line 121) getId().getArrayBracketPairsAfterId() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getArrayBracketPairsAfterId()
+ Line 121) getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 130) ArrayType.unwrapArrayTypes(type) ==> com.github.javaparser.ast.type.ArrayType.unwrapArrayTypes(com.github.javaparser.ast.type.Type)
+ Line 131) setElementType(unwrapped.a) ==> com.github.javaparser.ast.body.Parameter.setElementType(com.github.javaparser.ast.type.Type)
+ Line 132) setArrayBracketPairsAfterElementType(unwrapped.b) ==> com.github.javaparser.ast.body.Parameter.setArrayBracketPairsAfterElementType(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 133) getId().setArrayBracketPairsAfterId(null) ==> com.github.javaparser.ast.body.VariableDeclaratorId.setArrayBracketPairsAfterId(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 133) getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 146) ensureNotNull(annotations) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 156) getId().getName() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getName()
+ Line 156) getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 163) id.setName(name) ==> com.github.javaparser.ast.body.VariableDeclaratorId.setName(java.lang.String)
+ Line 188) setAsParentNodeOf(this.annotations) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 194) setAsParentNodeOf(this.id) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 212) setAsParentNodeOf(this.elementType) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 217) ensureNotNull(arrayBracketPairsAfterType) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 224) setAsParentNodeOf(arrayBracketPairsAfterType) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_TypeDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_TypeDeclaration.txt
new file mode 100644
index 000000000..371b048e9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_TypeDeclaration.txt
@@ -0,0 +1,21 @@
+ Line 49) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 57) setName(name) ==> com.github.javaparser.ast.body.TypeDeclaration.setName(java.lang.String)
+ Line 58) setModifiers(modifiers) ==> com.github.javaparser.ast.body.TypeDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 65) setName(name) ==> com.github.javaparser.ast.body.TypeDeclaration.setName(java.lang.String)
+ Line 66) setModifiers(modifiers) ==> com.github.javaparser.ast.body.TypeDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 67) setMembers(members) ==> com.github.javaparser.ast.body.TypeDeclaration.setMembers(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>)
+ Line 74) setName(name) ==> com.github.javaparser.ast.body.TypeDeclaration.setName(java.lang.String)
+ Line 75) setModifiers(modifiers) ==> com.github.javaparser.ast.body.TypeDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 76) setMembers(members) ==> com.github.javaparser.ast.body.TypeDeclaration.setMembers(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>)
+ Line 87) getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 88) isNullOrEmpty(members) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 90) setMembers(members) ==> com.github.javaparser.ast.body.TypeDeclaration.setMembers(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>)
+ Line 92) members.add(decl) ==> java.util.List.add(E)
+ Line 93) decl.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 99) ensureNotNull(members) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 116) name.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 123) setAsParentNodeOf(this.members) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 137) setNameExpr(new NameExpr(name)) ==> com.github.javaparser.ast.body.TypeDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)
+ Line 144) setAsParentNodeOf(this.name) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 154) getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 155) getComment() ==> com.github.javaparser.ast.Node.getComment()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_VariableDeclarator.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_VariableDeclarator.txt
new file mode 100644
index 000000000..e00b1dd78
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_VariableDeclarator.txt
@@ -0,0 +1,25 @@
+ Line 55) setId(id) ==> com.github.javaparser.ast.body.VariableDeclarator.setId(com.github.javaparser.ast.body.VariableDeclaratorId)
+ Line 59) setId(new VariableDeclaratorId(variableName)) ==> com.github.javaparser.ast.body.VariableDeclarator.setId(com.github.javaparser.ast.body.VariableDeclaratorId)
+ Line 71) setId(id) ==> com.github.javaparser.ast.body.VariableDeclarator.setId(com.github.javaparser.ast.body.VariableDeclaratorId)
+ Line 72) setInit(init) ==> com.github.javaparser.ast.body.VariableDeclarator.setInit(com.github.javaparser.ast.expr.Expression)
+ Line 76) setId(new VariableDeclaratorId(variableName)) ==> com.github.javaparser.ast.body.VariableDeclarator.setId(com.github.javaparser.ast.body.VariableDeclaratorId)
+ Line 77) setInit(init) ==> com.github.javaparser.ast.body.VariableDeclarator.setInit(com.github.javaparser.ast.expr.Expression)
+ Line 82) setId(id) ==> com.github.javaparser.ast.body.VariableDeclarator.setId(com.github.javaparser.ast.body.VariableDeclaratorId)
+ Line 83) setInit(init) ==> com.github.javaparser.ast.body.VariableDeclarator.setInit(com.github.javaparser.ast.expr.Expression)
+ Line 88) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.VariableDeclarator, A)
+ Line 93) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.VariableDeclarator, A)
+ Line 106) setAsParentNodeOf(this.id) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 112) setAsParentNodeOf(this.init) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 121) setAsParentNodeOf(this.init) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 128) getParentNodeOfType(NodeWithElementType.class) ==> com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)
+ Line 130) wrapInArrayTypes(elementType.getElementType(), elementType.getArrayBracketPairsAfterElementType(), getId().getArrayBracketPairsAfterId()) ==> com.github.javaparser.ast.type.ArrayType.wrapInArrayTypes(com.github.javaparser.ast.type.Type, java.util.List<com.github.javaparser.ast.ArrayBracketPair>...)
+ Line 130) elementType.getElementType() ==> com.github.javaparser.ast.nodeTypes.NodeWithElementType.getElementType()
+ Line 131) elementType.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.nodeTypes.NodeWithElementType.getArrayBracketPairsAfterElementType()
+ Line 132) getId().getArrayBracketPairsAfterId() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getArrayBracketPairsAfterId()
+ Line 132) getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 137) ArrayType.unwrapArrayTypes(type) ==> com.github.javaparser.ast.type.ArrayType.unwrapArrayTypes(com.github.javaparser.ast.type.Type)
+ Line 138) getParentNodeOfType(NodeWithElementType.class) ==> com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)
+ Line 142) nodeWithElementType.setElementType(unwrapped.a) ==> com.github.javaparser.ast.nodeTypes.NodeWithElementType.setElementType(com.github.javaparser.ast.type.Type<?>)
+ Line 143) nodeWithElementType.setArrayBracketPairsAfterElementType(null) ==> com.github.javaparser.ast.nodeTypes.NodeWithElementType.setArrayBracketPairsAfterElementType(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 144) getId().setArrayBracketPairsAfterId(unwrapped.b) ==> com.github.javaparser.ast.body.VariableDeclaratorId.setArrayBracketPairsAfterId(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 144) getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_VariableDeclaratorId.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_VariableDeclaratorId.txt
new file mode 100644
index 000000000..678ac65aa
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_body_VariableDeclaratorId.txt
@@ -0,0 +1,7 @@
+ Line 48) setName(name) ==> com.github.javaparser.ast.body.VariableDeclaratorId.setName(java.lang.String)
+ Line 53) setName(name) ==> com.github.javaparser.ast.body.VariableDeclaratorId.setName(java.lang.String)
+ Line 54) setArrayBracketPairsAfterId(arrayBracketPairsAfterId) ==> com.github.javaparser.ast.body.VariableDeclaratorId.setArrayBracketPairsAfterId(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 59) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.VariableDeclaratorId, A)
+ Line 64) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.VariableDeclaratorId, A)
+ Line 79) ensureNotNull(arrayBracketPairsAfterId) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 85) setAsParentNodeOf(arrayBracketPairsAfterId) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_BlockComment.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_BlockComment.txt
new file mode 100644
index 000000000..95af1840b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_BlockComment.txt
@@ -0,0 +1,2 @@
+ Line 52) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.comments.BlockComment, A)
+ Line 57) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.comments.BlockComment, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_Comment.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_Comment.txt
new file mode 100644
index 000000000..1e4a7dd13
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_Comment.txt
@@ -0,0 +1 @@
+ Line 78) isLineComment() ==> com.github.javaparser.ast.comments.Comment.isLineComment()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_CommentsCollection.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_CommentsCollection.txt
new file mode 100644
index 000000000..833cc2f45
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_CommentsCollection.txt
@@ -0,0 +1,34 @@
+ Line 41) comments.addAll(commentsToCopy) ==> java.util.TreeSet.addAll(java.util.Collection<? extends E>)
+ Line 45) comments.stream().filter(comment -> comment instanceof LineComment).map(comment -> (LineComment) comment).collect(Collectors.toCollection(() -> new TreeSet<>(NODE_BY_BEGIN_POSITION))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 45) comments.stream().filter(comment -> comment instanceof LineComment).map(comment -> (LineComment) comment) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 45) comments.stream().filter(comment -> comment instanceof LineComment) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 45) comments.stream() ==> java.util.Collection.stream()
+ Line 48) Collectors.toCollection(() -> new TreeSet<>(NODE_BY_BEGIN_POSITION)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 52) comments.stream().filter(comment -> comment instanceof BlockComment).map(comment -> (BlockComment) comment).collect(Collectors.toCollection(() -> new TreeSet<>(NODE_BY_BEGIN_POSITION))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 52) comments.stream().filter(comment -> comment instanceof BlockComment).map(comment -> (BlockComment) comment) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 52) comments.stream().filter(comment -> comment instanceof BlockComment) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 52) comments.stream() ==> java.util.Collection.stream()
+ Line 55) Collectors.toCollection(() -> new TreeSet<>(NODE_BY_BEGIN_POSITION)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 59) comments.stream().filter(comment -> comment instanceof JavadocComment).map(comment -> (JavadocComment) comment).collect(Collectors.toCollection(() -> new TreeSet<>(NODE_BY_BEGIN_POSITION))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 59) comments.stream().filter(comment -> comment instanceof JavadocComment).map(comment -> (JavadocComment) comment) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 59) comments.stream().filter(comment -> comment instanceof JavadocComment) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 59) comments.stream() ==> java.util.Collection.stream()
+ Line 62) Collectors.toCollection(() -> new TreeSet<>(NODE_BY_BEGIN_POSITION)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 66) comments.add(comment) ==> java.util.TreeSet.add(E)
+ Line 70) getComments() ==> com.github.javaparser.ast.comments.CommentsCollection.getComments()
+ Line 73) c.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 73) comment.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 74) c.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 74) comment.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 75) c.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 75) comment.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 76) Math.abs(c.getEnd().column - comment.getEnd().column) ==> java.lang.Math.abs(int)
+ Line 76) c.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 76) comment.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 88) comments.size() ==> java.util.TreeSet.size()
+ Line 93) result.comments.addAll(comments.stream().filter(comment -> !other.contains(comment)).collect(Collectors.toList())) ==> java.util.TreeSet.addAll(java.util.Collection<? extends E>)
+ Line 94) comments.stream().filter(comment -> !other.contains(comment)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 94) comments.stream().filter(comment -> !other.contains(comment)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 94) comments.stream() ==> java.util.Collection.stream()
+ Line 95) other.contains(comment) ==> com.github.javaparser.ast.comments.CommentsCollection.contains(com.github.javaparser.ast.comments.Comment)
+ Line 96) Collectors.toList() ==> java.util.stream.Collectors.toList()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_JavadocComment.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_JavadocComment.txt
new file mode 100644
index 000000000..6f84f29de
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_JavadocComment.txt
@@ -0,0 +1,2 @@
+ Line 46) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.comments.JavadocComment, A)
+ Line 51) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.comments.JavadocComment, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_LineComment.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_LineComment.txt
new file mode 100644
index 000000000..dff8c7ea7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_comments_LineComment.txt
@@ -0,0 +1,2 @@
+ Line 51) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.comments.LineComment, A)
+ Line 56) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.comments.LineComment, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_AnnotationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_AnnotationExpr.txt
new file mode 100644
index 000000000..8a2289889
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_AnnotationExpr.txt
@@ -0,0 +1 @@
+ Line 45) setAsParentNodeOf(name) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayAccessExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayAccessExpr.txt
new file mode 100644
index 000000000..664253b52
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayAccessExpr.txt
@@ -0,0 +1,8 @@
+ Line 41) setName(name) ==> com.github.javaparser.ast.expr.ArrayAccessExpr.setName(com.github.javaparser.ast.expr.Expression)
+ Line 42) setIndex(index) ==> com.github.javaparser.ast.expr.ArrayAccessExpr.setIndex(com.github.javaparser.ast.expr.Expression)
+ Line 47) setName(name) ==> com.github.javaparser.ast.expr.ArrayAccessExpr.setName(com.github.javaparser.ast.expr.Expression)
+ Line 48) setIndex(index) ==> com.github.javaparser.ast.expr.ArrayAccessExpr.setIndex(com.github.javaparser.ast.expr.Expression)
+ Line 53) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.ArrayAccessExpr, A)
+ Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.ArrayAccessExpr, A)
+ Line 71) setAsParentNodeOf(this.index) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 77) setAsParentNodeOf(this.name) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayCreationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayCreationExpr.txt
new file mode 100644
index 000000000..e2a9fd097
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayCreationExpr.txt
@@ -0,0 +1,16 @@
+ Line 50) setLevels(levels) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setLevels(java.util.List<com.github.javaparser.ast.ArrayCreationLevel>)
+ Line 51) setType(type) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 52) setInitializer(initializer) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setInitializer(com.github.javaparser.ast.expr.ArrayInitializerExpr)
+ Line 57) setLevels(levels) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setLevels(java.util.List<com.github.javaparser.ast.ArrayCreationLevel>)
+ Line 58) setType(type) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 59) setInitializer(initializer) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setInitializer(com.github.javaparser.ast.expr.ArrayInitializerExpr)
+ Line 63) setType(type) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 64) setInitializer(null) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setInitializer(com.github.javaparser.ast.expr.ArrayInitializerExpr)
+ Line 69) setType(type) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 70) setInitializer(null) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setInitializer(com.github.javaparser.ast.expr.ArrayInitializerExpr)
+ Line 75) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.ArrayCreationExpr, A)
+ Line 80) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.ArrayCreationExpr, A)
+ Line 94) setAsParentNodeOf(this.initializer) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 101) setAsParentNodeOf(this.type) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 106) ensureNotNull(levels) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 112) setAsParentNodeOf(levels) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayInitializerExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayInitializerExpr.txt
new file mode 100644
index 000000000..019099213
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ArrayInitializerExpr.txt
@@ -0,0 +1,6 @@
+ Line 43) setValues(values) ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.setValues(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 48) setValues(values) ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.setValues(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 53) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.ArrayInitializerExpr, A)
+ Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.ArrayInitializerExpr, A)
+ Line 62) ensureNotNull(values) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 68) setAsParentNodeOf(this.values) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_AssignExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_AssignExpr.txt
new file mode 100644
index 000000000..506378791
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_AssignExpr.txt
@@ -0,0 +1,10 @@
+ Line 58) setTarget(target) ==> com.github.javaparser.ast.expr.AssignExpr.setTarget(com.github.javaparser.ast.expr.Expression)
+ Line 59) setValue(value) ==> com.github.javaparser.ast.expr.AssignExpr.setValue(com.github.javaparser.ast.expr.Expression)
+ Line 60) setOperator(op) ==> com.github.javaparser.ast.expr.AssignExpr.setOperator(com.github.javaparser.ast.expr.AssignExpr.Operator)
+ Line 65) setTarget(target) ==> com.github.javaparser.ast.expr.AssignExpr.setTarget(com.github.javaparser.ast.expr.Expression)
+ Line 66) setValue(value) ==> com.github.javaparser.ast.expr.AssignExpr.setValue(com.github.javaparser.ast.expr.Expression)
+ Line 67) setOperator(op) ==> com.github.javaparser.ast.expr.AssignExpr.setOperator(com.github.javaparser.ast.expr.AssignExpr.Operator)
+ Line 72) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.AssignExpr, A)
+ Line 77) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.AssignExpr, A)
+ Line 99) setAsParentNodeOf(this.target) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 105) setAsParentNodeOf(this.value) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_BinaryExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_BinaryExpr.txt
new file mode 100644
index 000000000..3b6fce9bd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_BinaryExpr.txt
@@ -0,0 +1,10 @@
+ Line 65) setLeft(left) ==> com.github.javaparser.ast.expr.BinaryExpr.setLeft(com.github.javaparser.ast.expr.Expression)
+ Line 66) setRight(right) ==> com.github.javaparser.ast.expr.BinaryExpr.setRight(com.github.javaparser.ast.expr.Expression)
+ Line 67) setOperator(op) ==> com.github.javaparser.ast.expr.BinaryExpr.setOperator(com.github.javaparser.ast.expr.BinaryExpr.Operator)
+ Line 72) setLeft(left) ==> com.github.javaparser.ast.expr.BinaryExpr.setLeft(com.github.javaparser.ast.expr.Expression)
+ Line 73) setRight(right) ==> com.github.javaparser.ast.expr.BinaryExpr.setRight(com.github.javaparser.ast.expr.Expression)
+ Line 74) setOperator(op) ==> com.github.javaparser.ast.expr.BinaryExpr.setOperator(com.github.javaparser.ast.expr.BinaryExpr.Operator)
+ Line 79) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.BinaryExpr, A)
+ Line 84) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.BinaryExpr, A)
+ Line 101) setAsParentNodeOf(this.left) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 112) setAsParentNodeOf(this.right) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_BooleanLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_BooleanLiteralExpr.txt
new file mode 100644
index 000000000..3495ba4e4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_BooleanLiteralExpr.txt
@@ -0,0 +1,4 @@
+ Line 39) setValue(value) ==> com.github.javaparser.ast.expr.BooleanLiteralExpr.setValue(boolean)
+ Line 44) setValue(value) ==> com.github.javaparser.ast.expr.BooleanLiteralExpr.setValue(boolean)
+ Line 49) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.BooleanLiteralExpr, A)
+ Line 54) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.BooleanLiteralExpr, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_CastExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_CastExpr.txt
new file mode 100644
index 000000000..9936c29f6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_CastExpr.txt
@@ -0,0 +1,8 @@
+ Line 43) setType(type) ==> com.github.javaparser.ast.expr.CastExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 44) setExpr(expr) ==> com.github.javaparser.ast.expr.CastExpr.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 49) setType(type) ==> com.github.javaparser.ast.expr.CastExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 50) setExpr(expr) ==> com.github.javaparser.ast.expr.CastExpr.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 55) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.CastExpr, A)
+ Line 60) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.CastExpr, A)
+ Line 74) setAsParentNodeOf(this.expr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 81) setAsParentNodeOf(this.type) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_CharLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_CharLiteralExpr.txt
new file mode 100644
index 000000000..f596b990e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_CharLiteralExpr.txt
@@ -0,0 +1,3 @@
+ Line 49) Utils.escapeEndOfLines(string) ==> com.github.javaparser.utils.Utils.escapeEndOfLines(java.lang.String)
+ Line 54) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.CharLiteralExpr, A)
+ Line 59) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.CharLiteralExpr, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ClassExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ClassExpr.txt
new file mode 100644
index 000000000..8242ddba4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ClassExpr.txt
@@ -0,0 +1,5 @@
+ Line 46) setType(type) ==> com.github.javaparser.ast.expr.ClassExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 51) setType(type) ==> com.github.javaparser.ast.expr.ClassExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 56) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.ClassExpr, A)
+ Line 61) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.ClassExpr, A)
+ Line 72) setAsParentNodeOf(this.type) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ConditionalExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ConditionalExpr.txt
new file mode 100644
index 000000000..adbfe9c40
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ConditionalExpr.txt
@@ -0,0 +1,11 @@
+ Line 43) setCondition(condition) ==> com.github.javaparser.ast.expr.ConditionalExpr.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 44) setThenExpr(thenExpr) ==> com.github.javaparser.ast.expr.ConditionalExpr.setThenExpr(com.github.javaparser.ast.expr.Expression)
+ Line 45) setElseExpr(elseExpr) ==> com.github.javaparser.ast.expr.ConditionalExpr.setElseExpr(com.github.javaparser.ast.expr.Expression)
+ Line 50) setCondition(condition) ==> com.github.javaparser.ast.expr.ConditionalExpr.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 51) setThenExpr(thenExpr) ==> com.github.javaparser.ast.expr.ConditionalExpr.setThenExpr(com.github.javaparser.ast.expr.Expression)
+ Line 52) setElseExpr(elseExpr) ==> com.github.javaparser.ast.expr.ConditionalExpr.setElseExpr(com.github.javaparser.ast.expr.Expression)
+ Line 57) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.ConditionalExpr, A)
+ Line 62) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.ConditionalExpr, A)
+ Line 79) setAsParentNodeOf(this.condition) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 85) setAsParentNodeOf(this.elseExpr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 91) setAsParentNodeOf(this.thenExpr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_DoubleLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_DoubleLiteralExpr.txt
new file mode 100644
index 000000000..e8fbc52ae
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_DoubleLiteralExpr.txt
@@ -0,0 +1,2 @@
+ Line 45) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.DoubleLiteralExpr, A)
+ Line 49) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.DoubleLiteralExpr, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_EnclosedExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_EnclosedExpr.txt
new file mode 100644
index 000000000..b3a375d58
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_EnclosedExpr.txt
@@ -0,0 +1,5 @@
+ Line 39) setInner(inner) ==> com.github.javaparser.ast.expr.EnclosedExpr.setInner(com.github.javaparser.ast.expr.Expression)
+ Line 44) setInner(inner) ==> com.github.javaparser.ast.expr.EnclosedExpr.setInner(com.github.javaparser.ast.expr.Expression)
+ Line 48) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.EnclosedExpr, A)
+ Line 52) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.EnclosedExpr, A)
+ Line 61) setAsParentNodeOf(this.inner) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_Expression.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_Expression.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_Expression.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_FieldAccessExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_FieldAccessExpr.txt
new file mode 100644
index 000000000..120a5260d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_FieldAccessExpr.txt
@@ -0,0 +1,12 @@
+ Line 47) setScope(scope) ==> com.github.javaparser.ast.expr.FieldAccessExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 48) setField(field) ==> com.github.javaparser.ast.expr.FieldAccessExpr.setField(java.lang.String)
+ Line 53) setScope(scope) ==> com.github.javaparser.ast.expr.FieldAccessExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 54) setTypeArguments(typeArguments) ==> com.github.javaparser.ast.expr.FieldAccessExpr.setTypeArguments(java.util.List<com.github.javaparser.ast.type.Type<?>>)
+ Line 55) setField(field) ==> com.github.javaparser.ast.expr.FieldAccessExpr.setField(java.lang.String)
+ Line 59) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.FieldAccessExpr, A)
+ Line 63) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.FieldAccessExpr, A)
+ Line 67) field.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 79) setFieldExpr(new NameExpr(field)) ==> com.github.javaparser.ast.expr.FieldAccessExpr.setFieldExpr(com.github.javaparser.ast.expr.NameExpr)
+ Line 85) setAsParentNodeOf(this.field) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 91) setAsParentNodeOf(this.scope) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 104) setAsParentNodeOf(this.typeArguments) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_InstanceOfExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_InstanceOfExpr.txt
new file mode 100644
index 000000000..daa8c2416
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_InstanceOfExpr.txt
@@ -0,0 +1,8 @@
+ Line 43) setExpr(expr) ==> com.github.javaparser.ast.expr.InstanceOfExpr.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 44) setType(type) ==> com.github.javaparser.ast.expr.InstanceOfExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 49) setExpr(expr) ==> com.github.javaparser.ast.expr.InstanceOfExpr.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 50) setType(type) ==> com.github.javaparser.ast.expr.InstanceOfExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 54) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.InstanceOfExpr, A)
+ Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.InstanceOfExpr, A)
+ Line 72) setAsParentNodeOf(this.expr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 79) setAsParentNodeOf(this.type) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_IntegerLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_IntegerLiteralExpr.txt
new file mode 100644
index 000000000..ec7b2586f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_IntegerLiteralExpr.txt
@@ -0,0 +1,4 @@
+ Line 49) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.IntegerLiteralExpr, A)
+ Line 53) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.IntegerLiteralExpr, A)
+ Line 58) value.length() ==> java.lang.String.length()
+ Line 59) value.equals(UNSIGNED_MIN_VALUE) ==> java.lang.String.equals(java.lang.Object)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_IntegerLiteralMinValueExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_IntegerLiteralMinValueExpr.txt
new file mode 100644
index 000000000..de334643e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_IntegerLiteralMinValueExpr.txt
@@ -0,0 +1,2 @@
+ Line 42) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr, A)
+ Line 46) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LambdaExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LambdaExpr.txt
new file mode 100644
index 000000000..ad577cf2d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LambdaExpr.txt
@@ -0,0 +1,8 @@
+ Line 54) setParameters(parameters) ==> com.github.javaparser.ast.expr.LambdaExpr.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)
+ Line 55) setBody(body) ==> com.github.javaparser.ast.expr.LambdaExpr.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 56) setParametersEnclosed(parametersEnclosed) ==> com.github.javaparser.ast.expr.LambdaExpr.setParametersEnclosed(boolean)
+ Line 60) ensureNotNull(parameters) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 66) setAsParentNodeOf(this.parameters) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 76) setAsParentNodeOf(this.body) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 82) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.LambdaExpr, A)
+ Line 87) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.LambdaExpr, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LiteralExpr.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LiteralExpr.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LongLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LongLiteralExpr.txt
new file mode 100644
index 000000000..771c18eb4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LongLiteralExpr.txt
@@ -0,0 +1,7 @@
+ Line 49) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.LongLiteralExpr, A)
+ Line 53) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.LongLiteralExpr, A)
+ Line 58) value.length() ==> java.lang.String.length()
+ Line 59) //
+value.startsWith(UNSIGNED_MIN_VALUE) ==> java.lang.String.startsWith(java.lang.String)
+ Line 60) value.charAt(19) ==> java.lang.String.charAt(int)
+ Line 60) value.charAt(19) ==> java.lang.String.charAt(int)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LongLiteralMinValueExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LongLiteralMinValueExpr.txt
new file mode 100644
index 000000000..e434383d9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_LongLiteralMinValueExpr.txt
@@ -0,0 +1,2 @@
+ Line 42) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.LongLiteralMinValueExpr, A)
+ Line 46) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.LongLiteralMinValueExpr, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MarkerAnnotationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MarkerAnnotationExpr.txt
new file mode 100644
index 000000000..51048a200
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MarkerAnnotationExpr.txt
@@ -0,0 +1,4 @@
+ Line 37) setName(name) ==> com.github.javaparser.ast.expr.AnnotationExpr.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 42) setName(name) ==> com.github.javaparser.ast.expr.AnnotationExpr.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 46) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.MarkerAnnotationExpr, A)
+ Line 50) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.MarkerAnnotationExpr, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MemberValuePair.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MemberValuePair.txt
new file mode 100644
index 000000000..e7bc28a0f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MemberValuePair.txt
@@ -0,0 +1,7 @@
+ Line 43) setName(name) ==> com.github.javaparser.ast.expr.MemberValuePair.setName(java.lang.String)
+ Line 44) setValue(value) ==> com.github.javaparser.ast.expr.MemberValuePair.setValue(com.github.javaparser.ast.expr.Expression)
+ Line 49) setName(name) ==> com.github.javaparser.ast.expr.MemberValuePair.setName(java.lang.String)
+ Line 50) setValue(value) ==> com.github.javaparser.ast.expr.MemberValuePair.setValue(com.github.javaparser.ast.expr.Expression)
+ Line 54) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.MemberValuePair, A)
+ Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.MemberValuePair, A)
+ Line 78) setAsParentNodeOf(this.value) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MethodCallExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MethodCallExpr.txt
new file mode 100644
index 000000000..2c645ce63
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MethodCallExpr.txt
@@ -0,0 +1,22 @@
+ Line 51) setScope(scope) ==> com.github.javaparser.ast.expr.MethodCallExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 52) setName(name) ==> com.github.javaparser.ast.expr.MethodCallExpr.setName(java.lang.String)
+ Line 56) setScope(scope) ==> com.github.javaparser.ast.expr.MethodCallExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 57) setName(name) ==> com.github.javaparser.ast.expr.MethodCallExpr.setName(java.lang.String)
+ Line 58) setArgs(args) ==> com.github.javaparser.ast.expr.MethodCallExpr.setArgs(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 63) setScope(scope) ==> com.github.javaparser.ast.expr.MethodCallExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 64) setTypeArguments(typeArguments) ==> com.github.javaparser.ast.expr.MethodCallExpr.setTypeArguments(java.util.List<com.github.javaparser.ast.type.Type<?>>)
+ Line 65) setName(name) ==> com.github.javaparser.ast.expr.MethodCallExpr.setName(java.lang.String)
+ Line 66) setArgs(args) ==> com.github.javaparser.ast.expr.MethodCallExpr.setArgs(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 76) getArgs().add(arg) ==> java.util.List.add(E)
+ Line 76) getArgs() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArgs()
+ Line 77) arg.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 82) addArgument(new NameExpr(arg)) ==> com.github.javaparser.ast.expr.MethodCallExpr.addArgument(com.github.javaparser.ast.expr.Expression)
+ Line 87) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.MethodCallExpr, A)
+ Line 92) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.MethodCallExpr, A)
+ Line 96) ensureNotNull(args) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 101) name.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 114) setAsParentNodeOf(this.args) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 118) setNameExpr(new NameExpr(name)) ==> com.github.javaparser.ast.expr.MethodCallExpr.setNameExpr(com.github.javaparser.ast.expr.NameExpr)
+ Line 124) setAsParentNodeOf(this.name) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 130) setAsParentNodeOf(this.scope) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 142) setAsParentNodeOf(this.typeArguments) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MethodReferenceExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MethodReferenceExpr.txt
new file mode 100644
index 000000000..2a913580d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_MethodReferenceExpr.txt
@@ -0,0 +1,7 @@
+ Line 58) setIdentifier(identifier) ==> com.github.javaparser.ast.expr.MethodReferenceExpr.setIdentifier(java.lang.String)
+ Line 59) setScope(scope) ==> com.github.javaparser.ast.expr.MethodReferenceExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 60) setTypeArguments(typeArguments) ==> com.github.javaparser.ast.expr.MethodReferenceExpr.setTypeArguments(java.util.List<com.github.javaparser.ast.type.Type<?>>)
+ Line 66) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.MethodReferenceExpr, A)
+ Line 71) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.MethodReferenceExpr, A)
+ Line 80) setAsParentNodeOf(this.scope) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 92) setAsParentNodeOf(this.typeArguments) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NameExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NameExpr.txt
new file mode 100644
index 000000000..336aea144
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NameExpr.txt
@@ -0,0 +1,3 @@
+ Line 49) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.NameExpr, A)
+ Line 53) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.NameExpr, A)
+ Line 77) qualifiedName.split("\\.") ==> java.lang.String.split(java.lang.String)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NormalAnnotationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NormalAnnotationExpr.txt
new file mode 100644
index 000000000..7b7c389d6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NormalAnnotationExpr.txt
@@ -0,0 +1,13 @@
+ Line 48) setName(name) ==> com.github.javaparser.ast.expr.AnnotationExpr.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 49) setPairs(pairs) ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.setPairs(java.util.List<com.github.javaparser.ast.expr.MemberValuePair>)
+ Line 54) setName(name) ==> com.github.javaparser.ast.expr.AnnotationExpr.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 55) setPairs(pairs) ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.setPairs(java.util.List<com.github.javaparser.ast.expr.MemberValuePair>)
+ Line 60) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.NormalAnnotationExpr, A)
+ Line 65) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.NormalAnnotationExpr, A)
+ Line 69) ensureNotNull(pairs) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 75) setAsParentNodeOf(this.pairs) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 85) addPair(key, name(value)) ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.addPair(java.lang.String, com.github.javaparser.ast.expr.NameExpr)
+ Line 85) name(value) ==> com.github.javaparser.ast.expr.NameExpr.name(java.lang.String)
+ Line 95) getPairs().add(memberValuePair) ==> java.util.List.add(E)
+ Line 95) getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 96) memberValuePair.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NullLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NullLiteralExpr.txt
new file mode 100644
index 000000000..9d3a14b3f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_NullLiteralExpr.txt
@@ -0,0 +1,2 @@
+ Line 41) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.NullLiteralExpr, A)
+ Line 45) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.NullLiteralExpr, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ObjectCreationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ObjectCreationExpr.txt
new file mode 100644
index 000000000..6a3ddc61e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ObjectCreationExpr.txt
@@ -0,0 +1,18 @@
+ Line 73) setScope(scope) ==> com.github.javaparser.ast.expr.ObjectCreationExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 74) setType(type) ==> com.github.javaparser.ast.expr.ObjectCreationExpr.setType(com.github.javaparser.ast.type.Type<?>)
+ Line 75) setArgs(args) ==> com.github.javaparser.ast.expr.ObjectCreationExpr.setArgs(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 82) setScope(scope) ==> com.github.javaparser.ast.expr.ObjectCreationExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 83) setType(type) ==> com.github.javaparser.ast.expr.ObjectCreationExpr.setType(com.github.javaparser.ast.type.Type<?>)
+ Line 84) setTypeArguments(typeArguments) ==> com.github.javaparser.ast.expr.ObjectCreationExpr.setTypeArguments(java.util.List<com.github.javaparser.ast.type.Type<?>>)
+ Line 85) setArgs(args) ==> com.github.javaparser.ast.expr.ObjectCreationExpr.setArgs(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 86) setAnonymousClassBody(anonymousBody) ==> com.github.javaparser.ast.expr.ObjectCreationExpr.setAnonymousClassBody(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>)
+ Line 91) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.ObjectCreationExpr, A)
+ Line 96) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.ObjectCreationExpr, A)
+ Line 109) anonymousClassBody.add(body) ==> java.util.List.add(E)
+ Line 110) body.setParentNode(this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 114) ensureNotNull(args) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 129) setAsParentNodeOf(this.anonymousClassBody) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 135) setAsParentNodeOf(this.args) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 141) setAsParentNodeOf(this.scope) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 150) setAsParentNodeOf(this.type) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 162) setAsParentNodeOf(this.typeArguments) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_QualifiedNameExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_QualifiedNameExpr.txt
new file mode 100644
index 000000000..3166cf711
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_QualifiedNameExpr.txt
@@ -0,0 +1,5 @@
+ Line 40) setQualifier(scope) ==> com.github.javaparser.ast.expr.QualifiedNameExpr.setQualifier(com.github.javaparser.ast.expr.NameExpr)
+ Line 45) setQualifier(scope) ==> com.github.javaparser.ast.expr.QualifiedNameExpr.setQualifier(com.github.javaparser.ast.expr.NameExpr)
+ Line 49) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.QualifiedNameExpr, A)
+ Line 53) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.QualifiedNameExpr, A)
+ Line 62) setAsParentNodeOf(this.qualifier) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_SingleMemberAnnotationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_SingleMemberAnnotationExpr.txt
new file mode 100644
index 000000000..fb6fae959
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_SingleMemberAnnotationExpr.txt
@@ -0,0 +1,7 @@
+ Line 39) setName(name) ==> com.github.javaparser.ast.expr.AnnotationExpr.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 40) setMemberValue(memberValue) ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr.setMemberValue(com.github.javaparser.ast.expr.Expression)
+ Line 45) setName(name) ==> com.github.javaparser.ast.expr.AnnotationExpr.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 46) setMemberValue(memberValue) ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr.setMemberValue(com.github.javaparser.ast.expr.Expression)
+ Line 50) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.SingleMemberAnnotationExpr, A)
+ Line 54) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.SingleMemberAnnotationExpr, A)
+ Line 63) setAsParentNodeOf(this.memberValue) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_StringLiteralExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_StringLiteralExpr.txt
new file mode 100644
index 000000000..74816ac24
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_StringLiteralExpr.txt
@@ -0,0 +1,5 @@
+ Line 42) value.contains("\n") ==> java.lang.String.contains(java.lang.CharSequence)
+ Line 42) value.contains("\r") ==> java.lang.String.contains(java.lang.CharSequence)
+ Line 52) Utils.escapeEndOfLines(string) ==> com.github.javaparser.utils.Utils.escapeEndOfLines(java.lang.String)
+ Line 61) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.StringLiteralExpr, A)
+ Line 65) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.StringLiteralExpr, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_SuperExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_SuperExpr.txt
new file mode 100644
index 000000000..df96d137d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_SuperExpr.txt
@@ -0,0 +1,5 @@
+ Line 39) setClassExpr(classExpr) ==> com.github.javaparser.ast.expr.SuperExpr.setClassExpr(com.github.javaparser.ast.expr.Expression)
+ Line 44) setClassExpr(classExpr) ==> com.github.javaparser.ast.expr.SuperExpr.setClassExpr(com.github.javaparser.ast.expr.Expression)
+ Line 48) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.SuperExpr, A)
+ Line 52) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.SuperExpr, A)
+ Line 61) setAsParentNodeOf(this.classExpr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ThisExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ThisExpr.txt
new file mode 100644
index 000000000..4b51370a9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_ThisExpr.txt
@@ -0,0 +1,5 @@
+ Line 39) setClassExpr(classExpr) ==> com.github.javaparser.ast.expr.ThisExpr.setClassExpr(com.github.javaparser.ast.expr.Expression)
+ Line 44) setClassExpr(classExpr) ==> com.github.javaparser.ast.expr.ThisExpr.setClassExpr(com.github.javaparser.ast.expr.Expression)
+ Line 48) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.ThisExpr, A)
+ Line 52) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.ThisExpr, A)
+ Line 61) setAsParentNodeOf(this.classExpr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_TypeExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_TypeExpr.txt
new file mode 100644
index 000000000..e25acf53a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_TypeExpr.txt
@@ -0,0 +1,4 @@
+ Line 43) setType(type) ==> com.github.javaparser.ast.expr.TypeExpr.setType(com.github.javaparser.ast.type.Type<?>)
+ Line 48) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.TypeExpr, A)
+ Line 53) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.TypeExpr, A)
+ Line 64) setAsParentNodeOf(this.type) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_UnaryExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_UnaryExpr.txt
new file mode 100644
index 000000000..b5d297c2c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_UnaryExpr.txt
@@ -0,0 +1,7 @@
+ Line 52) setExpr(expr) ==> com.github.javaparser.ast.expr.UnaryExpr.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 53) setOperator(op) ==> com.github.javaparser.ast.expr.UnaryExpr.setOperator(com.github.javaparser.ast.expr.UnaryExpr.Operator)
+ Line 58) setExpr(expr) ==> com.github.javaparser.ast.expr.UnaryExpr.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 59) setOperator(op) ==> com.github.javaparser.ast.expr.UnaryExpr.setOperator(com.github.javaparser.ast.expr.UnaryExpr.Operator)
+ Line 63) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.UnaryExpr, A)
+ Line 67) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.UnaryExpr, A)
+ Line 80) setAsParentNodeOf(this.expr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_VariableDeclarationExpr.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_VariableDeclarationExpr.txt
new file mode 100644
index 000000000..b17f424b0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_expr_VariableDeclarationExpr.txt
@@ -0,0 +1,42 @@
+ Line 53) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 67) setElementType(elementType) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setElementType(com.github.javaparser.ast.type.Type)
+ Line 68) setVariables(singletonList(new VariableDeclarator(variableName))) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 68) singletonList(new VariableDeclarator(variableName)) ==> java.util.Collections.singletonList(T)
+ Line 72) setElementType(elementType) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setElementType(com.github.javaparser.ast.type.Type)
+ Line 73) setVariables(singletonList(var)) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 73) singletonList(var) ==> java.util.Collections.singletonList(T)
+ Line 77) setElementType(elementType) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setElementType(com.github.javaparser.ast.type.Type)
+ Line 78) setVariables(singletonList(new VariableDeclarator(variableName))) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 78) singletonList(new VariableDeclarator(variableName)) ==> java.util.Collections.singletonList(T)
+ Line 79) setModifiers(Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)))) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 79) Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 79) Arrays.stream(modifiers) ==> java.util.Arrays.stream(T[])
+ Line 80) Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 80) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 84) setElementType(elementType) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setElementType(com.github.javaparser.ast.type.Type)
+ Line 85) setVariables(singletonList(var)) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 85) singletonList(var) ==> java.util.Collections.singletonList(T)
+ Line 86) setModifiers(Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)))) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 86) Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 86) Arrays.stream(modifiers) ==> java.util.Arrays.stream(T[])
+ Line 87) Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 87) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 91) setElementType(elementType) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setElementType(com.github.javaparser.ast.type.Type)
+ Line 92) setVariables(variables) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 97) setModifiers(modifiers) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 98) setElementType(elementType) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setElementType(com.github.javaparser.ast.type.Type)
+ Line 99) setVariables(variables) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 108) setModifiers(modifiers) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 109) setAnnotations(annotations) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 110) setElementType(elementType) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setElementType(com.github.javaparser.ast.type.Type)
+ Line 111) setVariables(variables) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setVariables(java.util.List<com.github.javaparser.ast.body.VariableDeclarator>)
+ Line 112) setArrayBracketPairsAfterElementType(arrayBracketPairsAfterType) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setArrayBracketPairsAfterElementType(java.util.List<com.github.javaparser.ast.ArrayBracketPair>)
+ Line 126) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.VariableDeclarationExpr, A)
+ Line 131) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.VariableDeclarationExpr, A)
+ Line 136) ensureNotNull(annotations) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 158) ensureNotNull(variables) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 165) setAsParentNodeOf(this.annotations) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 178) setAsParentNodeOf(this.elementType) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 185) setAsParentNodeOf(this.variables) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 190) ensureNotNull(arrayBracketPairsAfterType) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 197) setAsParentNodeOf(arrayBracketPairsAfterType) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithAnnotations.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithAnnotations.txt
new file mode 100644
index 000000000..9a989910c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithAnnotations.txt
@@ -0,0 +1,40 @@
+ Line 55) name(name) ==> com.github.javaparser.ast.expr.NameExpr.name(java.lang.String)
+ Line 56) getAnnotations().add(normalAnnotationExpr) ==> java.util.List.add(E)
+ Line 56) getAnnotations() ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotations()
+ Line 57) normalAnnotationExpr.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 68) ((Node) this).tryAddImportToParentCompilationUnit(clazz) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 69) addAnnotation(clazz.getSimpleName()) ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.String)
+ Line 69) clazz.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 81) name(name) ==> com.github.javaparser.ast.expr.NameExpr.name(java.lang.String)
+ Line 82) getAnnotations().add(markerAnnotationExpr) ==> java.util.List.add(E)
+ Line 82) getAnnotations() ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotations()
+ Line 83) markerAnnotationExpr.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 94) ((Node) this).tryAddImportToParentCompilationUnit(clazz) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 95) addMarkerAnnotation(clazz.getSimpleName()) ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.String)
+ Line 95) clazz.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 108) name(name) ==> com.github.javaparser.ast.expr.NameExpr.name(java.lang.String)
+ Line 108) name(value) ==> com.github.javaparser.ast.expr.NameExpr.name(java.lang.String)
+ Line 109) getAnnotations().add(singleMemberAnnotationExpr) ==> java.util.List.add(E)
+ Line 109) getAnnotations() ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotations()
+ Line 110) singleMemberAnnotationExpr.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 123) ((Node) this).tryAddImportToParentCompilationUnit(clazz) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 124) addSingleMemberAnnotation(clazz.getSimpleName(), value) ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.String, java.lang.String)
+ Line 124) clazz.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 134) getAnnotations().stream().anyMatch(a -> a.getName().getName().equals(annotationName)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 134) getAnnotations().stream() ==> java.util.Collection.stream()
+ Line 134) getAnnotations() ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotations()
+ Line 134) a.getName().getName().equals(annotationName) ==> java.lang.String.equals(java.lang.Object)
+ Line 134) a.getName().getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 134) a.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 144) isAnnotationPresent(annotationClass.getSimpleName()) ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.String)
+ Line 144) annotationClass.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 154) getAnnotations().stream().filter(a -> a.getName().getName().equals(annotationName)).findFirst().orElse(null) ==> java.util.Optional.orElse(T)
+ Line 154) getAnnotations().stream().filter(a -> a.getName().getName().equals(annotationName)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 154) getAnnotations().stream().filter(a -> a.getName().getName().equals(annotationName)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 154) getAnnotations().stream() ==> java.util.Collection.stream()
+ Line 154) getAnnotations() ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotations()
+ Line 154) a.getName().getName().equals(annotationName) ==> java.lang.String.equals(java.lang.Object)
+ Line 154) a.getName().getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 154) a.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 165) getAnnotationByName(annotationClass.getSimpleName()) ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByName(java.lang.String)
+ Line 165) annotationClass.getSimpleName() ==> java.lang.Class.getSimpleName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithBlockStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithBlockStmt.txt
new file mode 100644
index 000000000..37d653839
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithBlockStmt.txt
@@ -0,0 +1,2 @@
+ Line 13) setBody(block) ==> com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 14) block.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithBody.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithBody.txt
new file mode 100644
index 000000000..862d0d4af
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithBody.txt
@@ -0,0 +1,2 @@
+ Line 14) b.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 15) setBody(b) ==> com.github.javaparser.ast.nodeTypes.NodeWithBody.setBody(com.github.javaparser.ast.stmt.Statement)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithDeclaration.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithDeclaration.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithElementType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithElementType.txt
new file mode 100644
index 000000000..227beb6c6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithElementType.txt
@@ -0,0 +1,4 @@
+ Line 65) ((Node) this).tryAddImportToParentCompilationUnit(typeClass) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 66) setElementType(new ClassOrInterfaceType(typeClass.getSimpleName())) ==> com.github.javaparser.ast.nodeTypes.NodeWithElementType.setElementType(com.github.javaparser.ast.type.Type<?>)
+ Line 66) typeClass.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 71) setElementType(classOrInterfaceType) ==> com.github.javaparser.ast.nodeTypes.NodeWithElementType.setElementType(com.github.javaparser.ast.type.Type<?>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithExtends.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithExtends.txt
new file mode 100644
index 000000000..a42aae34b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithExtends.txt
@@ -0,0 +1,6 @@
+ Line 20) ((Node) this).tryAddImportToParentCompilationUnit(clazz) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 21) addExtends(clazz.getSimpleName()) ==> com.github.javaparser.ast.nodeTypes.NodeWithExtends.addExtends(java.lang.String)
+ Line 21) clazz.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 33) getExtends().add(classOrInterfaceType) ==> java.util.List.add(E)
+ Line 33) getExtends() ==> com.github.javaparser.ast.nodeTypes.NodeWithExtends.getExtends()
+ Line 34) classOrInterfaceType.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithImplements.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithImplements.txt
new file mode 100644
index 000000000..766991c49
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithImplements.txt
@@ -0,0 +1,6 @@
+ Line 22) getImplements().add(classOrInterfaceType) ==> java.util.List.add(E)
+ Line 22) getImplements() ==> com.github.javaparser.ast.nodeTypes.NodeWithImplements.getImplements()
+ Line 23) classOrInterfaceType.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 34) ((Node) this).tryAddImportToParentCompilationUnit(clazz) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 35) addImplements(clazz.getSimpleName()) ==> com.github.javaparser.ast.nodeTypes.NodeWithImplements.addImplements(java.lang.String)
+ Line 35) clazz.getSimpleName() ==> java.lang.Class.getSimpleName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithJavaDoc.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithJavaDoc.txt
new file mode 100644
index 000000000..9b114d9f8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithJavaDoc.txt
@@ -0,0 +1 @@
+ Line 45) ((Node) this).setComment(new JavadocComment(comment)) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithMembers.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithMembers.txt
new file mode 100644
index 000000000..b56bed176
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithMembers.txt
@@ -0,0 +1,116 @@
+ Line 49) ((Node) this).tryAddImportToParentCompilationUnit(typeClass) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 50) addField(typeClass.getSimpleName(), name, modifiers) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addField(java.lang.String, java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 50) typeClass.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 62) addField(new ClassOrInterfaceType(type), name, modifiers) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addField(com.github.javaparser.ast.type.Type<?>, java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 75) fieldDeclaration.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 77) fieldDeclaration.getVariables().add(variable) ==> java.util.List.add(E)
+ Line 77) fieldDeclaration.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 78) variable.setParentNode(fieldDeclaration) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 79) fieldDeclaration.setModifiers(Arrays.stream(modifiers).collect(toCollection(() -> EnumSet.noneOf(Modifier.class)))) ==> com.github.javaparser.ast.body.FieldDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 79) Arrays.stream(modifiers).collect(toCollection(() -> EnumSet.noneOf(Modifier.class))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 79) Arrays.stream(modifiers) ==> java.util.Arrays.stream(T[])
+ Line 80) toCollection(() -> EnumSet.noneOf(Modifier.class)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 80) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 81) variable.setType(type) ==> com.github.javaparser.ast.body.VariableDeclarator.setType(com.github.javaparser.ast.type.Type)
+ Line 82) getMembers().add(fieldDeclaration) ==> java.util.List.add(E)
+ Line 82) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 94) addField(typeClass, name, Modifier.PRIVATE) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addField(java.lang.Class<?>, java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 106) addField(type, name, Modifier.PRIVATE) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addField(java.lang.String, java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 117) addField(typeClass, name, Modifier.PUBLIC) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addField(java.lang.Class<?>, java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 129) addField(type, name, Modifier.PUBLIC) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addField(java.lang.String, java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 140) addField(typeClass, name, Modifier.PROTECTED) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addField(java.lang.Class<?>, java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 152) addField(type, name, Modifier.PROTECTED) ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.addField(java.lang.String, java.lang.String, com.github.javaparser.ast.Modifier...)
+ Line 164) methodDeclaration.setName(methodName) ==> com.github.javaparser.ast.body.MethodDeclaration.setName(java.lang.String)
+ Line 165) methodDeclaration.setType(VOID_TYPE) ==> com.github.javaparser.ast.body.MethodDeclaration.setType(com.github.javaparser.ast.type.Type)
+ Line 166) methodDeclaration.setModifiers(Arrays.stream(modifiers).collect(toCollection(() -> EnumSet.noneOf(Modifier.class)))) ==> com.github.javaparser.ast.body.MethodDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 166) Arrays.stream(modifiers).collect(toCollection(() -> EnumSet.noneOf(Modifier.class))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 166) Arrays.stream(modifiers) ==> java.util.Arrays.stream(T[])
+ Line 167) toCollection(() -> EnumSet.noneOf(Modifier.class)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 167) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 168) getMembers().add(methodDeclaration) ==> java.util.List.add(E)
+ Line 168) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 169) methodDeclaration.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 181) constructorDeclaration.setModifiers(Arrays.stream(modifiers).collect(toCollection(() -> EnumSet.noneOf(Modifier.class)))) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 181) Arrays.stream(modifiers).collect(toCollection(() -> EnumSet.noneOf(Modifier.class))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 181) Arrays.stream(modifiers) ==> java.util.Arrays.stream(T[])
+ Line 182) toCollection(() -> EnumSet.noneOf(Modifier.class)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 182) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 183) constructorDeclaration.setName(((TypeDeclaration<?>) this).getName()) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)
+ Line 183) ((TypeDeclaration<?>) this).getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 184) getMembers().add(constructorDeclaration) ==> java.util.List.add(E)
+ Line 184) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 185) constructorDeclaration.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 192) getMembers().add(initializerDeclaration) ==> java.util.List.add(E)
+ Line 192) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 193) initializerDeclaration.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 200) getMembers().add(initializerDeclaration) ==> java.util.List.add(E)
+ Line 200) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 201) initializerDeclaration.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 212) getMembers().stream().filter(m -> m instanceof MethodDeclaration && ((MethodDeclaration) m).getName().equals(name)).map(m -> (MethodDeclaration) m).collect(toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 212) getMembers().stream().filter(m -> m instanceof MethodDeclaration && ((MethodDeclaration) m).getName().equals(name)).map(m -> (MethodDeclaration) m) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 212) getMembers().stream().filter(m -> m instanceof MethodDeclaration && ((MethodDeclaration) m).getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 212) getMembers().stream() ==> java.util.Collection.stream()
+ Line 212) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 213) ((MethodDeclaration) m).getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 213) ((MethodDeclaration) m).getName() ==> com.github.javaparser.ast.body.MethodDeclaration.getName()
+ Line 214) toList() ==> java.util.stream.Collectors.toList()
+ Line 223) unmodifiableList(getMembers().stream().filter(m -> m instanceof MethodDeclaration).map(m -> (MethodDeclaration) m).collect(toList())) ==> java.util.Collections.unmodifiableList(java.util.List<? extends T>)
+ Line 223) getMembers().stream().filter(m -> m instanceof MethodDeclaration).map(m -> (MethodDeclaration) m).collect(toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 223) getMembers().stream().filter(m -> m instanceof MethodDeclaration).map(m -> (MethodDeclaration) m) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 223) getMembers().stream().filter(m -> m instanceof MethodDeclaration) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 223) getMembers().stream() ==> java.util.Collection.stream()
+ Line 223) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 226) toList() ==> java.util.stream.Collectors.toList()
+ Line 237) getMembers().stream().filter(m -> m instanceof MethodDeclaration && ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()).collect(toSet()).equals(Stream.of(paramTypes).collect(toSet()))).map(m -> (MethodDeclaration) m).collect(toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 237) getMembers().stream().filter(m -> m instanceof MethodDeclaration && ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()).collect(toSet()).equals(Stream.of(paramTypes).collect(toSet()))).map(m -> (MethodDeclaration) m) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 237) getMembers().stream().filter(m -> m instanceof MethodDeclaration && ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()).collect(toSet()).equals(Stream.of(paramTypes).collect(toSet()))) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 237) getMembers().stream() ==> java.util.Collection.stream()
+ Line 237) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 239) ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()).collect(toSet()).equals(Stream.of(paramTypes).collect(toSet())) ==> java.util.Set.equals(java.lang.Object)
+ Line 239) ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()).collect(toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 239) ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 239) ((MethodDeclaration) m).getParameters().stream() ==> java.util.Collection.stream()
+ Line 239) ((MethodDeclaration) m).getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 239) p.getType().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 239) p.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 240) toSet() ==> java.util.stream.Collectors.toSet()
+ Line 240) Stream.of(paramTypes).collect(toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 240) Stream.of(paramTypes) ==> java.util.stream.Stream.of(T...)
+ Line 240) toSet() ==> java.util.stream.Collectors.toSet()
+ Line 241) toList() ==> java.util.stream.Collectors.toList()
+ Line 252) getMembers().stream().filter(m -> m instanceof MethodDeclaration && ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()).collect(toSet()).equals(Stream.of(paramTypes).map(Class::getSimpleName).collect(toSet()))).map(m -> (MethodDeclaration) m).collect(toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 252) getMembers().stream().filter(m -> m instanceof MethodDeclaration && ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()).collect(toSet()).equals(Stream.of(paramTypes).map(Class::getSimpleName).collect(toSet()))).map(m -> (MethodDeclaration) m) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 252) getMembers().stream().filter(m -> m instanceof MethodDeclaration && ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()).collect(toSet()).equals(Stream.of(paramTypes).map(Class::getSimpleName).collect(toSet()))) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 252) getMembers().stream() ==> java.util.Collection.stream()
+ Line 252) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 254) ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()).collect(toSet()).equals(Stream.of(paramTypes).map(Class::getSimpleName).collect(toSet())) ==> java.util.Set.equals(java.lang.Object)
+ Line 254) ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()).collect(toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 254) ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString()) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 254) ((MethodDeclaration) m).getParameters().stream() ==> java.util.Collection.stream()
+ Line 254) ((MethodDeclaration) m).getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 254) p.getType().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 254) p.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 255) toSet() ==> java.util.stream.Collectors.toSet()
+ Line 256) Stream.of(paramTypes).map(Class::getSimpleName).collect(toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 256) Stream.of(paramTypes).map(Class::getSimpleName) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 256) Stream.of(paramTypes) ==> java.util.stream.Stream.of(T...)
+ Line 256) toSet() ==> java.util.stream.Collectors.toSet()
+ Line 257) toList() ==> java.util.stream.Collectors.toList()
+ Line 267) getMembers().stream().filter(m -> m instanceof FieldDeclaration && ((FieldDeclaration) m).getVariables().stream().anyMatch(var -> var.getId().getName().equals(name))).findFirst().orElse(null) ==> java.util.Optional.orElse(T)
+ Line 267) getMembers().stream().filter(m -> m instanceof FieldDeclaration && ((FieldDeclaration) m).getVariables().stream().anyMatch(var -> var.getId().getName().equals(name))).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 267) getMembers().stream().filter(m -> m instanceof FieldDeclaration && ((FieldDeclaration) m).getVariables().stream().anyMatch(var -> var.getId().getName().equals(name))) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 267) getMembers().stream() ==> java.util.Collection.stream()
+ Line 267) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 268) ((FieldDeclaration) m).getVariables().stream().anyMatch(var -> var.getId().getName().equals(name)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 268) ((FieldDeclaration) m).getVariables().stream() ==> java.util.Collection.stream()
+ Line 268) ((FieldDeclaration) m).getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 269) var.getId().getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 269) var.getId().getName() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getName()
+ Line 269) var.getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 279) unmodifiableList(getMembers().stream().filter(m -> m instanceof FieldDeclaration).map(m -> (FieldDeclaration) m).collect(toList())) ==> java.util.Collections.unmodifiableList(java.util.List<? extends T>)
+ Line 279) getMembers().stream().filter(m -> m instanceof FieldDeclaration).map(m -> (FieldDeclaration) m).collect(toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 279) getMembers().stream().filter(m -> m instanceof FieldDeclaration).map(m -> (FieldDeclaration) m) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 279) getMembers().stream().filter(m -> m instanceof FieldDeclaration) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 279) getMembers().stream() ==> java.util.Collection.stream()
+ Line 279) getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 282) toList() ==> java.util.stream.Collectors.toList()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithModifiers.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithModifiers.txt
new file mode 100644
index 000000000..5199ad456
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithModifiers.txt
@@ -0,0 +1,28 @@
+ Line 25) getModifiers().addAll(Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)))) ==> java.util.AbstractCollection.addAll(java.util.Collection<? extends E>)
+ Line 25) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 25) Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 25) Arrays.stream(modifiers) ==> java.util.Arrays.stream(T[])
+ Line 26) Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
+ Line 26) EnumSet.noneOf(Modifier.class) ==> java.util.EnumSet.noneOf(java.lang.Class<E>)
+ Line 31) getModifiers().contains(Modifier.STATIC) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 31) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 35) getModifiers().contains(Modifier.ABSTRACT) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 35) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 39) getModifiers().contains(Modifier.FINAL) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 39) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 43) getModifiers().contains(Modifier.NATIVE) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 43) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 47) getModifiers().contains(Modifier.PRIVATE) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 47) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 51) getModifiers().contains(Modifier.PROTECTED) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 51) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 55) getModifiers().contains(Modifier.PUBLIC) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 55) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 59) getModifiers().contains(Modifier.STRICTFP) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 59) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 63) getModifiers().contains(Modifier.SYNCHRONIZED) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 63) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 67) getModifiers().contains(Modifier.TRANSIENT) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 67) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
+ Line 71) getModifiers().contains(Modifier.VOLATILE) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 71) getModifiers() ==> com.github.javaparser.ast.nodeTypes.NodeWithModifiers.getModifiers()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithName.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithName.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithName.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithParameters.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithParameters.txt
new file mode 100644
index 000000000..de256fde0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithParameters.txt
@@ -0,0 +1,40 @@
+ Line 17) addParameter(new Parameter(type, new VariableDeclaratorId(name))) ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.body.Parameter)
+ Line 21) ((Node) this).tryAddImportToParentCompilationUnit(paramClass) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 22) addParameter(new ClassOrInterfaceType(paramClass.getSimpleName()), name) ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.type.Type, java.lang.String)
+ Line 22) paramClass.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 32) addParameter(new ClassOrInterfaceType(className), name) ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.type.Type, java.lang.String)
+ Line 37) getParameters().add(parameter) ==> java.util.List.add(E)
+ Line 37) getParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParameters()
+ Line 38) parameter.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 43) addAndGetParameter(new Parameter(type, new VariableDeclaratorId(name))) ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.body.Parameter)
+ Line 47) ((Node) this).tryAddImportToParentCompilationUnit(paramClass) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 48) addAndGetParameter(new ClassOrInterfaceType(paramClass.getSimpleName()), name) ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.type.Type, java.lang.String)
+ Line 48) paramClass.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 59) addAndGetParameter(new ClassOrInterfaceType(className), name) ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.type.Type, java.lang.String)
+ Line 63) getParameters().add(parameter) ==> java.util.List.add(E)
+ Line 63) getParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParameters()
+ Line 64) parameter.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 75) getParameters().stream().filter(p -> p.getName().equals(name)).findFirst().orElse(null) ==> java.util.Optional.orElse(T)
+ Line 75) getParameters().stream().filter(p -> p.getName().equals(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 75) getParameters().stream().filter(p -> p.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 75) getParameters().stream() ==> java.util.Collection.stream()
+ Line 75) getParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParameters()
+ Line 76) p.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 76) p.getName() ==> com.github.javaparser.ast.body.Parameter.getName()
+ Line 86) getParameters().stream().filter(p -> p.getType().toString().equals(type)).findFirst().orElse(null) ==> java.util.Optional.orElse(T)
+ Line 86) getParameters().stream().filter(p -> p.getType().toString().equals(type)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 86) getParameters().stream().filter(p -> p.getType().toString().equals(type)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 86) getParameters().stream() ==> java.util.Collection.stream()
+ Line 86) getParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParameters()
+ Line 87) p.getType().toString().equals(type) ==> java.lang.String.equals(java.lang.Object)
+ Line 87) p.getType().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 87) p.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 97) getParameters().stream().filter(p -> p.getType().toString().equals(type.getSimpleName())).findFirst().orElse(null) ==> java.util.Optional.orElse(T)
+ Line 97) getParameters().stream().filter(p -> p.getType().toString().equals(type.getSimpleName())).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 97) getParameters().stream().filter(p -> p.getType().toString().equals(type.getSimpleName())) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 97) getParameters().stream() ==> java.util.Collection.stream()
+ Line 97) getParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParameters()
+ Line 98) p.getType().toString().equals(type.getSimpleName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 98) p.getType().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 98) p.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 98) type.getSimpleName() ==> java.lang.Class.getSimpleName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithStatements.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithStatements.txt
new file mode 100644
index 000000000..48bdc7500
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithStatements.txt
@@ -0,0 +1,11 @@
+ Line 18) getStmts().add(statement) ==> java.util.List.add(E)
+ Line 18) getStmts() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStmts()
+ Line 19) statement.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 25) getStmts().add(index, statement) ==> java.util.List.add(int, E)
+ Line 25) getStmts() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStmts()
+ Line 26) statement.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 32) expr.setParentNode(statement) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 33) addStatement(statement) ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.addStatement(com.github.javaparser.ast.stmt.Statement)
+ Line 37) addStatement(new NameExpr(statement)) ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.addStatement(com.github.javaparser.ast.expr.Expression)
+ Line 42) expr.setParentNode(stmt) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 43) addStatement(index, stmt) ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.addStatement(int, com.github.javaparser.ast.stmt.Statement)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithThrowable.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithThrowable.txt
new file mode 100644
index 000000000..bbf27d9d2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithThrowable.txt
@@ -0,0 +1,13 @@
+ Line 22) getThrows().add(throwType) ==> java.util.List.add(E)
+ Line 22) getThrows() ==> com.github.javaparser.ast.nodeTypes.NodeWithThrowable.getThrows()
+ Line 23) throwType.setParentNode((Node) this) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 34) ((Node) this).tryAddImportToParentCompilationUnit(clazz) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 35) addThrows(new ClassOrInterfaceType(clazz.getSimpleName())) ==> com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(com.github.javaparser.ast.type.ReferenceType)
+ Line 35) clazz.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 45) isThrows(clazz.getSimpleName()) ==> com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)
+ Line 45) clazz.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 55) getThrows().stream().anyMatch(t -> t.toString().equals(throwableName)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 55) getThrows().stream() ==> java.util.Collection.stream()
+ Line 55) getThrows() ==> com.github.javaparser.ast.nodeTypes.NodeWithThrowable.getThrows()
+ Line 55) t.toString().equals(throwableName) ==> java.lang.String.equals(java.lang.Object)
+ Line 55) t.toString() ==> com.github.javaparser.ast.Node.toString()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithType.txt
new file mode 100644
index 000000000..f1460c10e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithType.txt
@@ -0,0 +1,4 @@
+ Line 60) ((Node) this).tryAddImportToParentCompilationUnit(typeClass) ==> com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)
+ Line 61) setType(new ClassOrInterfaceType(typeClass.getSimpleName())) ==> com.github.javaparser.ast.nodeTypes.NodeWithType.setType(com.github.javaparser.ast.type.Type<?>)
+ Line 61) typeClass.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 66) setType(classOrInterfaceType) ==> com.github.javaparser.ast.nodeTypes.NodeWithType.setType(com.github.javaparser.ast.type.Type<?>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithTypeArguments.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithTypeArguments.txt
new file mode 100644
index 000000000..b32d94c68
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithTypeArguments.txt
@@ -0,0 +1,7 @@
+ Line 54) getTypeArguments() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments.getTypeArguments()
+ Line 57) getTypeArguments().isEmpty() ==> java.util.List.isEmpty()
+ Line 57) getTypeArguments() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments.getTypeArguments()
+ Line 65) setTypeArguments(empty) ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments.setTypeArguments(java.util.List<com.github.javaparser.ast.type.Type<?>>)
+ Line 73) setTypeArguments((List<Type<?>>) null) ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments.setTypeArguments(java.util.List<com.github.javaparser.ast.type.Type<?>>)
+ Line 78) setTypeArguments(arrayToList(typeArguments)) ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments.setTypeArguments(java.util.List<com.github.javaparser.ast.type.Type<?>>)
+ Line 78) arrayToList(typeArguments) ==> com.github.javaparser.utils.Utils.arrayToList(T[])
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithVariables.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithVariables.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_nodeTypes_NodeWithVariables.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_AssertStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_AssertStmt.txt
new file mode 100644
index 000000000..a119c291a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_AssertStmt.txt
@@ -0,0 +1,9 @@
+ Line 42) setCheck(check) ==> com.github.javaparser.ast.stmt.AssertStmt.setCheck(com.github.javaparser.ast.expr.Expression)
+ Line 46) setCheck(check) ==> com.github.javaparser.ast.stmt.AssertStmt.setCheck(com.github.javaparser.ast.expr.Expression)
+ Line 47) setMessage(msg) ==> com.github.javaparser.ast.stmt.AssertStmt.setMessage(com.github.javaparser.ast.expr.Expression)
+ Line 53) setCheck(check) ==> com.github.javaparser.ast.stmt.AssertStmt.setCheck(com.github.javaparser.ast.expr.Expression)
+ Line 54) setMessage(msg) ==> com.github.javaparser.ast.stmt.AssertStmt.setMessage(com.github.javaparser.ast.expr.Expression)
+ Line 59) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.AssertStmt, A)
+ Line 63) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.AssertStmt, A)
+ Line 76) setAsParentNodeOf(this.check) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 82) setAsParentNodeOf(this.msg) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_BlockStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_BlockStmt.txt
new file mode 100644
index 000000000..74c77372b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_BlockStmt.txt
@@ -0,0 +1,6 @@
+ Line 44) setStmts(stmts) ==> com.github.javaparser.ast.stmt.BlockStmt.setStmts(java.util.List<com.github.javaparser.ast.stmt.Statement>)
+ Line 49) setStmts(stmts) ==> com.github.javaparser.ast.stmt.BlockStmt.setStmts(java.util.List<com.github.javaparser.ast.stmt.Statement>)
+ Line 54) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.BlockStmt, A)
+ Line 59) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.BlockStmt, A)
+ Line 64) ensureNotNull(stmts) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 71) setAsParentNodeOf(this.stmts) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_BreakStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_BreakStmt.txt
new file mode 100644
index 000000000..ebb98af2d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_BreakStmt.txt
@@ -0,0 +1,2 @@
+ Line 48) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.BreakStmt, A)
+ Line 52) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.BreakStmt, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_CatchClause.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_CatchClause.txt
new file mode 100644
index 000000000..70c12d29c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_CatchClause.txt
@@ -0,0 +1,9 @@
+ Line 52) setParam(param) ==> com.github.javaparser.ast.stmt.CatchClause.setParam(com.github.javaparser.ast.body.Parameter)
+ Line 53) setBody(catchBlock) ==> com.github.javaparser.ast.stmt.CatchClause.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 63) setParam(new Parameter(range, exceptModifier, exceptAnnotations, exceptType, null, false, exceptId)) ==> com.github.javaparser.ast.stmt.CatchClause.setParam(com.github.javaparser.ast.body.Parameter)
+ Line 64) setBody(catchBlock) ==> com.github.javaparser.ast.stmt.CatchClause.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 68) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.CatchClause, A)
+ Line 72) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.CatchClause, A)
+ Line 99) setAsParentNodeOf(this.catchBlock) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 105) setAsParentNodeOf(this.param) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 117) setAsParentNodeOf(this.catchBlock) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ContinueStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ContinueStmt.txt
new file mode 100644
index 000000000..a50717ace
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ContinueStmt.txt
@@ -0,0 +1,2 @@
+ Line 48) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.ContinueStmt, A)
+ Line 52) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.ContinueStmt, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_DoStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_DoStmt.txt
new file mode 100644
index 000000000..0aeadac7a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_DoStmt.txt
@@ -0,0 +1,8 @@
+ Line 43) setBody(body) ==> com.github.javaparser.ast.stmt.DoStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 44) setCondition(condition) ==> com.github.javaparser.ast.stmt.DoStmt.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 49) setBody(body) ==> com.github.javaparser.ast.stmt.DoStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 50) setCondition(condition) ==> com.github.javaparser.ast.stmt.DoStmt.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 54) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.DoStmt, A)
+ Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.DoStmt, A)
+ Line 73) setAsParentNodeOf(this.body) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 79) setAsParentNodeOf(this.condition) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_EmptyStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_EmptyStmt.txt
new file mode 100644
index 000000000..c0157e7c0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_EmptyStmt.txt
@@ -0,0 +1,2 @@
+ Line 41) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.EmptyStmt, A)
+ Line 45) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.EmptyStmt, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ExplicitConstructorInvocationStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ExplicitConstructorInvocationStmt.txt
new file mode 100644
index 000000000..3188c7f5e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ExplicitConstructorInvocationStmt.txt
@@ -0,0 +1,13 @@
+ Line 53) setThis(isThis) ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.setThis(boolean)
+ Line 54) setExpr(expr) ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 55) setArgs(args) ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.setArgs(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 62) setTypeArguments(typeArguments) ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.setTypeArguments(java.util.List<com.github.javaparser.ast.type.Type<?>>)
+ Line 63) setThis(isThis) ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.setThis(boolean)
+ Line 64) setExpr(expr) ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 65) setArgs(args) ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.setArgs(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 70) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt, A)
+ Line 75) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt, A)
+ Line 79) ensureNotNull(args) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 93) setAsParentNodeOf(this.args) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 99) setAsParentNodeOf(this.expr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 116) setAsParentNodeOf(this.typeArguments) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ExpressionStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ExpressionStmt.txt
new file mode 100644
index 000000000..0d2415278
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ExpressionStmt.txt
@@ -0,0 +1,5 @@
+ Line 40) setExpression(expr) ==> com.github.javaparser.ast.stmt.ExpressionStmt.setExpression(com.github.javaparser.ast.expr.Expression)
+ Line 46) setExpression(expr) ==> com.github.javaparser.ast.stmt.ExpressionStmt.setExpression(com.github.javaparser.ast.expr.Expression)
+ Line 50) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.ExpressionStmt, A)
+ Line 54) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.ExpressionStmt, A)
+ Line 63) setAsParentNodeOf(this.expr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ForStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ForStmt.txt
new file mode 100644
index 000000000..beb78e0e8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ForStmt.txt
@@ -0,0 +1,16 @@
+ Line 52) setCompare(compare) ==> com.github.javaparser.ast.stmt.ForStmt.setCompare(com.github.javaparser.ast.expr.Expression)
+ Line 53) setInit(init) ==> com.github.javaparser.ast.stmt.ForStmt.setInit(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 54) setUpdate(update) ==> com.github.javaparser.ast.stmt.ForStmt.setUpdate(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 55) setBody(body) ==> com.github.javaparser.ast.stmt.ForStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 62) setCompare(compare) ==> com.github.javaparser.ast.stmt.ForStmt.setCompare(com.github.javaparser.ast.expr.Expression)
+ Line 63) setInit(init) ==> com.github.javaparser.ast.stmt.ForStmt.setInit(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 64) setUpdate(update) ==> com.github.javaparser.ast.stmt.ForStmt.setUpdate(java.util.List<com.github.javaparser.ast.expr.Expression>)
+ Line 65) setBody(body) ==> com.github.javaparser.ast.stmt.ForStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 70) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.ForStmt, A)
+ Line 75) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.ForStmt, A)
+ Line 88) ensureNotNull(init) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 93) ensureNotNull(update) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 100) setAsParentNodeOf(this.body) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 106) setAsParentNodeOf(this.compare) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 112) setAsParentNodeOf(this.init) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 118) setAsParentNodeOf(this.update) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ForeachStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ForeachStmt.txt
new file mode 100644
index 000000000..8ade8fa91
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ForeachStmt.txt
@@ -0,0 +1,14 @@
+ Line 48) setVariable(var) ==> com.github.javaparser.ast.stmt.ForeachStmt.setVariable(com.github.javaparser.ast.expr.VariableDeclarationExpr)
+ Line 49) setIterable(iterable) ==> com.github.javaparser.ast.stmt.ForeachStmt.setIterable(com.github.javaparser.ast.expr.Expression)
+ Line 50) setBody(body) ==> com.github.javaparser.ast.stmt.ForeachStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 57) setVariable(var) ==> com.github.javaparser.ast.stmt.ForeachStmt.setVariable(com.github.javaparser.ast.expr.VariableDeclarationExpr)
+ Line 58) setIterable(iterable) ==> com.github.javaparser.ast.stmt.ForeachStmt.setIterable(com.github.javaparser.ast.expr.Expression)
+ Line 59) setBody(body) ==> com.github.javaparser.ast.stmt.ForeachStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 70) setVariable(var) ==> com.github.javaparser.ast.stmt.ForeachStmt.setVariable(com.github.javaparser.ast.expr.VariableDeclarationExpr)
+ Line 71) setIterable(new NameExpr(iterable)) ==> com.github.javaparser.ast.stmt.ForeachStmt.setIterable(com.github.javaparser.ast.expr.Expression)
+ Line 72) setBody(body) ==> com.github.javaparser.ast.stmt.ForeachStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 77) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.ForeachStmt, A)
+ Line 82) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.ForeachStmt, A)
+ Line 101) setAsParentNodeOf(this.body) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 107) setAsParentNodeOf(this.iterable) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 113) setAsParentNodeOf(this.var) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_IfStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_IfStmt.txt
new file mode 100644
index 000000000..8c9672bdd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_IfStmt.txt
@@ -0,0 +1,11 @@
+ Line 44) setCondition(condition) ==> com.github.javaparser.ast.stmt.IfStmt.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 45) setThenStmt(thenStmt) ==> com.github.javaparser.ast.stmt.IfStmt.setThenStmt(com.github.javaparser.ast.stmt.Statement)
+ Line 46) setElseStmt(elseStmt) ==> com.github.javaparser.ast.stmt.IfStmt.setElseStmt(com.github.javaparser.ast.stmt.Statement)
+ Line 52) setCondition(condition) ==> com.github.javaparser.ast.stmt.IfStmt.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 53) setThenStmt(thenStmt) ==> com.github.javaparser.ast.stmt.IfStmt.setThenStmt(com.github.javaparser.ast.stmt.Statement)
+ Line 54) setElseStmt(elseStmt) ==> com.github.javaparser.ast.stmt.IfStmt.setElseStmt(com.github.javaparser.ast.stmt.Statement)
+ Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.IfStmt, A)
+ Line 62) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.IfStmt, A)
+ Line 79) setAsParentNodeOf(this.condition) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 85) setAsParentNodeOf(this.elseStmt) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 91) setAsParentNodeOf(this.thenStmt) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_LabeledStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_LabeledStmt.txt
new file mode 100644
index 000000000..e2f3e28aa
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_LabeledStmt.txt
@@ -0,0 +1,7 @@
+ Line 41) setLabel(label) ==> com.github.javaparser.ast.stmt.LabeledStmt.setLabel(java.lang.String)
+ Line 42) setStmt(stmt) ==> com.github.javaparser.ast.stmt.LabeledStmt.setStmt(com.github.javaparser.ast.stmt.Statement)
+ Line 47) setLabel(label) ==> com.github.javaparser.ast.stmt.LabeledStmt.setLabel(java.lang.String)
+ Line 48) setStmt(stmt) ==> com.github.javaparser.ast.stmt.LabeledStmt.setStmt(com.github.javaparser.ast.stmt.Statement)
+ Line 52) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.LabeledStmt, A)
+ Line 56) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.LabeledStmt, A)
+ Line 74) setAsParentNodeOf(this.stmt) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ReturnStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ReturnStmt.txt
new file mode 100644
index 000000000..8df937488
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ReturnStmt.txt
@@ -0,0 +1,6 @@
+ Line 41) setExpr(expr) ==> com.github.javaparser.ast.stmt.ReturnStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 46) setExpr(expr) ==> com.github.javaparser.ast.stmt.ReturnStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 55) setExpr(new NameExpr(expr)) ==> com.github.javaparser.ast.stmt.ReturnStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 60) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.ReturnStmt, A)
+ Line 64) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.ReturnStmt, A)
+ Line 73) setAsParentNodeOf(this.expr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_Statement.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_Statement.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_Statement.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SwitchEntryStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SwitchEntryStmt.txt
new file mode 100644
index 000000000..f77d3bd85
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SwitchEntryStmt.txt
@@ -0,0 +1,9 @@
+ Line 47) setLabel(label) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.setLabel(com.github.javaparser.ast.expr.Expression)
+ Line 48) setStmts(stmts) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.setStmts(java.util.List<com.github.javaparser.ast.stmt.Statement>)
+ Line 54) setLabel(label) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.setLabel(com.github.javaparser.ast.expr.Expression)
+ Line 55) setStmts(stmts) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.setStmts(java.util.List<com.github.javaparser.ast.stmt.Statement>)
+ Line 60) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.SwitchEntryStmt, A)
+ Line 65) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.SwitchEntryStmt, A)
+ Line 74) ensureNotNull(stmts) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 80) setAsParentNodeOf(this.label) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 87) setAsParentNodeOf(this.stmts) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SwitchStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SwitchStmt.txt
new file mode 100644
index 000000000..6203389b6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SwitchStmt.txt
@@ -0,0 +1,9 @@
+ Line 47) setSelector(selector) ==> com.github.javaparser.ast.stmt.SwitchStmt.setSelector(com.github.javaparser.ast.expr.Expression)
+ Line 48) setEntries(entries) ==> com.github.javaparser.ast.stmt.SwitchStmt.setEntries(java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>)
+ Line 54) setSelector(selector) ==> com.github.javaparser.ast.stmt.SwitchStmt.setSelector(com.github.javaparser.ast.expr.Expression)
+ Line 55) setEntries(entries) ==> com.github.javaparser.ast.stmt.SwitchStmt.setEntries(java.util.List<com.github.javaparser.ast.stmt.SwitchEntryStmt>)
+ Line 60) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.SwitchStmt, A)
+ Line 65) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.SwitchStmt, A)
+ Line 69) ensureNotNull(entries) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 79) setAsParentNodeOf(this.entries) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 85) setAsParentNodeOf(this.selector) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SynchronizedStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SynchronizedStmt.txt
new file mode 100644
index 000000000..bf73a33ca
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_SynchronizedStmt.txt
@@ -0,0 +1,9 @@
+ Line 43) setExpr(expr) ==> com.github.javaparser.ast.stmt.SynchronizedStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 44) setBlock(block) ==> com.github.javaparser.ast.stmt.SynchronizedStmt.setBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 50) setExpr(expr) ==> com.github.javaparser.ast.stmt.SynchronizedStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 51) setBlock(block) ==> com.github.javaparser.ast.stmt.SynchronizedStmt.setBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 56) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.SynchronizedStmt, A)
+ Line 61) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.SynchronizedStmt, A)
+ Line 84) setAsParentNodeOf(this.block) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 90) setAsParentNodeOf(this.expr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 102) setAsParentNodeOf(this.block) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ThrowStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ThrowStmt.txt
new file mode 100644
index 000000000..fc65737cf
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_ThrowStmt.txt
@@ -0,0 +1,5 @@
+ Line 40) setExpr(expr) ==> com.github.javaparser.ast.stmt.ThrowStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 45) setExpr(expr) ==> com.github.javaparser.ast.stmt.ThrowStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 49) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.ThrowStmt, A)
+ Line 53) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.ThrowStmt, A)
+ Line 62) setAsParentNodeOf(this.expr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_TryStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_TryStmt.txt
new file mode 100644
index 000000000..81825228e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_TryStmt.txt
@@ -0,0 +1,15 @@
+ Line 51) setTryBlock(tryBlock) ==> com.github.javaparser.ast.stmt.TryStmt.setTryBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 52) setCatchs(catchs) ==> com.github.javaparser.ast.stmt.TryStmt.setCatchs(java.util.List<com.github.javaparser.ast.stmt.CatchClause>)
+ Line 53) setFinallyBlock(finallyBlock) ==> com.github.javaparser.ast.stmt.TryStmt.setFinallyBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 59) setResources(resources) ==> com.github.javaparser.ast.stmt.TryStmt.setResources(java.util.List<com.github.javaparser.ast.expr.VariableDeclarationExpr>)
+ Line 60) setTryBlock(tryBlock) ==> com.github.javaparser.ast.stmt.TryStmt.setTryBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 61) setCatchs(catchs) ==> com.github.javaparser.ast.stmt.TryStmt.setCatchs(java.util.List<com.github.javaparser.ast.stmt.CatchClause>)
+ Line 62) setFinallyBlock(finallyBlock) ==> com.github.javaparser.ast.stmt.TryStmt.setFinallyBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 67) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.TryStmt, A)
+ Line 72) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.TryStmt, A)
+ Line 76) ensureNotNull(catchs) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 89) ensureNotNull(resources) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 95) setAsParentNodeOf(this.catchs) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 101) setAsParentNodeOf(this.finallyBlock) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 107) setAsParentNodeOf(this.tryBlock) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 113) setAsParentNodeOf(this.resources) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_TypeDeclarationStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_TypeDeclarationStmt.txt
new file mode 100644
index 000000000..4eadbcaa1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_TypeDeclarationStmt.txt
@@ -0,0 +1,5 @@
+ Line 40) setTypeDeclaration(typeDecl) ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt.setTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration)
+ Line 45) setTypeDeclaration(typeDecl) ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt.setTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration)
+ Line 49) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.TypeDeclarationStmt, A)
+ Line 53) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.TypeDeclarationStmt, A)
+ Line 62) setAsParentNodeOf(this.typeDecl) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_WhileStmt.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_WhileStmt.txt
new file mode 100644
index 000000000..74f0cdd98
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_stmt_WhileStmt.txt
@@ -0,0 +1,8 @@
+ Line 43) setCondition(condition) ==> com.github.javaparser.ast.stmt.WhileStmt.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 44) setBody(body) ==> com.github.javaparser.ast.stmt.WhileStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 49) setCondition(condition) ==> com.github.javaparser.ast.stmt.WhileStmt.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 50) setBody(body) ==> com.github.javaparser.ast.stmt.WhileStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 54) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.WhileStmt, A)
+ Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.WhileStmt, A)
+ Line 73) setAsParentNodeOf(this.body) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 79) setAsParentNodeOf(this.condition) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ArrayType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ArrayType.txt
new file mode 100644
index 000000000..32d5df455
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ArrayType.txt
@@ -0,0 +1,14 @@
+ Line 23) setComponentType(componentType) ==> com.github.javaparser.ast.type.ArrayType.setComponentType(com.github.javaparser.ast.type.Type)
+ Line 24) setAnnotations(annotations) ==> com.github.javaparser.ast.type.Type.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 29) setComponentType(componentType) ==> com.github.javaparser.ast.type.ArrayType.setComponentType(com.github.javaparser.ast.type.Type)
+ Line 30) setAnnotations(annotations) ==> com.github.javaparser.ast.type.Type.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 34) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.type.ArrayType, A)
+ Line 38) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.type.ArrayType, A)
+ Line 47) setAsParentNodeOf(this.componentType) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 60) arrayBracketPairList.size() ==> java.util.List.size()
+ Line 61) arrayBracketPairList.get(j).getAnnotations() ==> com.github.javaparser.ast.ArrayBracketPair.getAnnotations()
+ Line 61) arrayBracketPairList.get(j) ==> java.util.List.get(int)
+ Line 77) arrayBracketPairs.add(new ArrayBracketPair(Range.UNKNOWN, arrayType.getAnnotations())) ==> java.util.List.add(E)
+ Line 77) arrayType.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 78) arrayType.getComponentType() ==> com.github.javaparser.ast.type.ArrayType.getComponentType()
+ Line 84) Arrays.asList(annotations) ==> java.util.Arrays.asList(T...)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ClassOrInterfaceType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ClassOrInterfaceType.txt
new file mode 100644
index 000000000..92ee275af
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ClassOrInterfaceType.txt
@@ -0,0 +1,13 @@
+ Line 53) setName(name) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.setName(java.lang.String)
+ Line 57) setScope(scope) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.setScope(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 58) setName(name) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.setName(java.lang.String)
+ Line 63) setScope(scope) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.setScope(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 64) setName(name) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.setName(java.lang.String)
+ Line 65) setTypeArguments(typeArguments) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.setTypeArguments(java.util.List<com.github.javaparser.ast.type.Type<?>>)
+ Line 69) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.type.ClassOrInterfaceType, A)
+ Line 73) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.type.ClassOrInterfaceType, A)
+ Line 86) PrimitiveType.unboxMap.containsKey(name) ==> java.util.HashMap.containsKey(java.lang.Object)
+ Line 90) isBoxedType() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.isBoxedType()
+ Line 93) PrimitiveType.unboxMap.get(name) ==> java.util.HashMap.get(java.lang.Object)
+ Line 104) setAsParentNodeOf(this.scope) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 116) setAsParentNodeOf(this.typeArguments) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_IntersectionType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_IntersectionType.txt
new file mode 100644
index 000000000..ba562aa98
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_IntersectionType.txt
@@ -0,0 +1,6 @@
+ Line 28) setElements(elements) ==> com.github.javaparser.ast.type.IntersectionType.setElements(java.util.List<com.github.javaparser.ast.type.ReferenceType>)
+ Line 33) setElements(elements) ==> com.github.javaparser.ast.type.IntersectionType.setElements(java.util.List<com.github.javaparser.ast.type.ReferenceType>)
+ Line 38) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.type.IntersectionType, A)
+ Line 43) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.type.IntersectionType, A)
+ Line 53) element.setParentNode(null) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 57) setAsParentNodeOf(this.elements) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_PrimitiveType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_PrimitiveType.txt
new file mode 100644
index 000000000..d2527c295
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_PrimitiveType.txt
@@ -0,0 +1,6 @@
+ Line 77) Primitive.values() ==> com.github.javaparser.ast.type.PrimitiveType.Primitive.values()
+ Line 78) unboxMap.put(unboxedType.nameOfBoxedType, unboxedType) ==> java.util.HashMap.put(K, V)
+ Line 93) setType(type) ==> com.github.javaparser.ast.type.PrimitiveType.setType(com.github.javaparser.ast.type.PrimitiveType.Primitive)
+ Line 97) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.type.PrimitiveType, A)
+ Line 101) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.type.PrimitiveType, A)
+ Line 109) type.toBoxedType() ==> com.github.javaparser.ast.type.PrimitiveType.Primitive.toBoxedType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ReferenceType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ReferenceType.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_ReferenceType.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_Type.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_Type.txt
new file mode 100644
index 000000000..e3ffee414
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_Type.txt
@@ -0,0 +1,3 @@
+ Line 53) setAnnotations(annotations) ==> com.github.javaparser.ast.type.Type.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 57) ensureNotNull(annotations) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 62) setAsParentNodeOf(annotations) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_TypeParameter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_TypeParameter.txt
new file mode 100644
index 000000000..8e2ddb4c3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_TypeParameter.txt
@@ -0,0 +1,12 @@
+ Line 59) setName(name) ==> com.github.javaparser.ast.type.TypeParameter.setName(java.lang.String)
+ Line 60) setTypeBound(typeBound) ==> com.github.javaparser.ast.type.TypeParameter.setTypeBound(java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>)
+ Line 65) setName(name) ==> com.github.javaparser.ast.type.TypeParameter.setName(java.lang.String)
+ Line 66) setTypeBound(typeBound) ==> com.github.javaparser.ast.type.TypeParameter.setTypeBound(java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>)
+ Line 71) setTypeBound(typeBound) ==> com.github.javaparser.ast.type.TypeParameter.setTypeBound(java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>)
+ Line 72) setAnnotations(annotations) ==> com.github.javaparser.ast.type.TypeParameter.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 76) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.type.TypeParameter, A)
+ Line 80) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.type.TypeParameter, A)
+ Line 100) ensureNotNull(typeBound) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 124) setAsParentNodeOf(typeBound) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 129) ensureNotNull(annotations) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
+ Line 135) setAsParentNodeOf(this.annotations) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_UnionType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_UnionType.txt
new file mode 100644
index 000000000..14e664495
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_UnionType.txt
@@ -0,0 +1,6 @@
+ Line 20) setElements(elements) ==> com.github.javaparser.ast.type.UnionType.setElements(java.util.List<com.github.javaparser.ast.type.ReferenceType>)
+ Line 25) setElements(elements) ==> com.github.javaparser.ast.type.UnionType.setElements(java.util.List<com.github.javaparser.ast.type.ReferenceType>)
+ Line 35) element.setParentNode(null) ==> com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
+ Line 39) setAsParentNodeOf(this.elements) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
+ Line 45) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.type.UnionType, A)
+ Line 50) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.type.UnionType, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_UnknownType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_UnknownType.txt
new file mode 100644
index 000000000..012f4dc40
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_UnknownType.txt
@@ -0,0 +1,2 @@
+ Line 44) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.type.UnknownType, A)
+ Line 49) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.type.UnknownType, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_VoidType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_VoidType.txt
new file mode 100644
index 000000000..a18fc53a2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_VoidType.txt
@@ -0,0 +1,2 @@
+ Line 44) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.type.VoidType, A)
+ Line 48) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.type.VoidType, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_WildcardType.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_WildcardType.txt
new file mode 100644
index 000000000..adee3add0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_type_WildcardType.txt
@@ -0,0 +1,9 @@
+ Line 42) setExtends(ext) ==> com.github.javaparser.ast.type.WildcardType.setExtends(com.github.javaparser.ast.type.ReferenceType)
+ Line 46) setExtends(ext) ==> com.github.javaparser.ast.type.WildcardType.setExtends(com.github.javaparser.ast.type.ReferenceType)
+ Line 47) setSuper(sup) ==> com.github.javaparser.ast.type.WildcardType.setSuper(com.github.javaparser.ast.type.ReferenceType)
+ Line 53) setExtends(ext) ==> com.github.javaparser.ast.type.WildcardType.setExtends(com.github.javaparser.ast.type.ReferenceType)
+ Line 54) setSuper(sup) ==> com.github.javaparser.ast.type.WildcardType.setSuper(com.github.javaparser.ast.type.ReferenceType)
+ Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.type.WildcardType, A)
+ Line 62) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.type.WildcardType, A)
+ Line 75) setAsParentNodeOf(this.ext) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
+ Line 81) setAsParentNodeOf(this.sup) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_CloneVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_CloneVisitor.txt
new file mode 100644
index 000000000..110f55a37
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_CloneVisitor.txt
@@ -0,0 +1,690 @@
+ Line 114) cloneNodes(_n.getPackage(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 114) _n.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 115) visit(_n.getImports(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 115) _n.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 116) visit(_n.getTypes(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 116) _n.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 119) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 126) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 126) _n.getAnnotations() ==> com.github.javaparser.ast.PackageDeclaration.getAnnotations()
+ Line 127) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 127) _n.getName() ==> com.github.javaparser.ast.PackageDeclaration.getName()
+ Line 128) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 128) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 131) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 134) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 140) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 140) _n.getName() ==> com.github.javaparser.ast.ImportDeclaration.getName()
+ Line 141) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 141) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 144) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 145) _n.isStatic() ==> com.github.javaparser.ast.ImportDeclaration.isStatic()
+ Line 145) _n.isAsterisk() ==> com.github.javaparser.ast.ImportDeclaration.isAsterisk()
+ Line 147) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 153) visit(_n.getTypeBound(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 153) _n.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 155) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 155) _n.getAnnotations() ==> com.github.javaparser.ast.type.TypeParameter.getAnnotations()
+ Line 156) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 157) _n.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 159) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 159) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 160) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 166) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 166) _n.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 171) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 171) _n.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 176) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 176) _n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 177) visit(_n.getTypeParameters(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 177) _n.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 178) visit(_n.getExtends(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 178) _n.getExtends() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtends()
+ Line 179) visit(_n.getImplements(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 179) _n.getImplements() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplements()
+ Line 180) visit(_n.getMembers(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 180) _n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 181) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 181) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 184) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 185) _n.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 185) _n.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 185) _n.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 187) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 193) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 193) _n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 194) visit(_n.getImplements(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 194) _n.getImplements() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplements()
+ Line 195) visit(_n.getEntries(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 195) _n.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 196) visit(_n.getMembers(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 196) _n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 197) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 197) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 200) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 201) _n.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 201) _n.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 203) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 209) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 209) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 212) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 214) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 220) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 220) _n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 221) visit(_n.getArgs(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 221) _n.getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 222) visit(_n.getClassBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 222) _n.getClassBody() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getClassBody()
+ Line 223) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 223) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 226) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 227) _n.getName() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getName()
+ Line 229) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 235) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 235) _n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 236) visit(_n.getMembers(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 236) _n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 237) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 237) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 240) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 241) _n.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 241) _n.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 243) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 249) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 249) _n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 250) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 250) _n.getType() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getType()
+ Line 251) cloneNodes(_n.getDefaultValue(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 251) _n.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 252) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 252) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 255) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 256) _n.getModifiers() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getModifiers()
+ Line 256) _n.getName() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getName()
+ Line 258) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 264) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 264) _n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 265) cloneNodes(_n.getElementType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 265) _n.getElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getElementType()
+ Line 266) visit(_n.getVariables(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 266) _n.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 267) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 267) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 268) visit(_n.getArrayBracketPairsAfterElementType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 268) _n.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getArrayBracketPairsAfterElementType()
+ Line 271) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 272) _n.getModifiers() ==> com.github.javaparser.ast.body.FieldDeclaration.getModifiers()
+ Line 279) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 285) cloneNodes(_n.getId(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 285) _n.getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 286) cloneNodes(_n.getInit(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 286) _n.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 287) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 287) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 290) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 293) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 299) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 299) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 300) visit(_n.getArrayBracketPairsAfterId(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 300) _n.getArrayBracketPairsAfterId() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getArrayBracketPairsAfterId()
+ Line 303) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 304) _n.getName() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getName()
+ Line 307) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 313) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 313) _n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 314) visit(_n.getTypeParameters(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 314) _n.getTypeParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()
+ Line 315) visit(_n.getParameters(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 315) _n.getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 316) visit(_n.getThrows(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 316) _n.getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 317) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 317) _n.getBody() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getBody()
+ Line 318) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 318) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 321) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 322) _n.getModifiers() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()
+ Line 322) _n.getName() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getName()
+ Line 324) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 330) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 330) _n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 331) visit(_n.getTypeParameters(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 331) _n.getTypeParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getTypeParameters()
+ Line 332) cloneNodes(_n.getElementType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 332) _n.getElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getElementType()
+ Line 333) cloneNodes(_n.getNameExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 333) _n.getNameExpr() ==> com.github.javaparser.ast.body.MethodDeclaration.getNameExpr()
+ Line 334) visit(_n.getParameters(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 334) _n.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 335) visit(_n.getThrows(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 335) _n.getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 336) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 336) _n.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 337) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 337) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 338) visit(_n.getArrayBracketPairsAfterElementType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 338) _n.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getArrayBracketPairsAfterElementType()
+ Line 339) visit(_n.getArrayBracketPairsAfterParameterList(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 339) _n.getArrayBracketPairsAfterParameterList() ==> com.github.javaparser.ast.body.MethodDeclaration.getArrayBracketPairsAfterParameterList()
+ Line 342) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 343) _n.getModifiers() ==> com.github.javaparser.ast.body.MethodDeclaration.getModifiers()
+ Line 354) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 360) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 360) _n.getAnnotations() ==> com.github.javaparser.ast.body.Parameter.getAnnotations()
+ Line 361) cloneNodes(_n.getElementType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 361) _n.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 362) cloneNodes(_n.getId(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 362) _n.getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 363) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 363) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 364) visit(_n.getArrayBracketPairsAfterElementType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 364) _n.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.Parameter.getArrayBracketPairsAfterElementType()
+ Line 367) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 368) _n.getModifiers() ==> com.github.javaparser.ast.body.Parameter.getModifiers()
+ Line 372) _n.isVarArgs() ==> com.github.javaparser.ast.body.Parameter.isVarArgs()
+ Line 375) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 381) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 381) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 384) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 386) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 392) cloneNodes(_n.getBlock(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 392) _n.getBlock() ==> com.github.javaparser.ast.body.InitializerDeclaration.getBlock()
+ Line 393) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 393) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 396) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 397) _n.isStatic() ==> com.github.javaparser.ast.body.InitializerDeclaration.isStatic()
+ Line 399) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 405) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 405) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 407) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 408) _n.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 410) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 416) cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 416) _n.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 417) visit(_n.getTypeArguments(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 417) _n.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 418) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 418) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 421) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 423) _n.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 424) _n.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 426) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 432) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 432) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 433) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 433) _n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 436) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 437) _n.getType() ==> com.github.javaparser.ast.type.PrimitiveType.getType()
+ Line 439) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 440) r.setAnnotations(annotations) ==> com.github.javaparser.ast.type.Type.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 446) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 446) _n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 447) cloneNodes(_n.getComponentType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 447) _n.getComponentType() ==> com.github.javaparser.ast.type.ArrayType.getComponentType()
+ Line 449) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 450) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 450) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 451) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 457) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 457) _n.getAnnotations() ==> com.github.javaparser.ast.ArrayCreationLevel.getAnnotations()
+ Line 458) cloneNodes(_n.getDimension(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 458) _n.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 460) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 462) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 462) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 463) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 469) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 469) _n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 470) visit(_n.getElements(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 470) _n.getElements() ==> com.github.javaparser.ast.type.IntersectionType.getElements()
+ Line 472) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 473) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 473) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 474) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 475) r.setAnnotations(annotations) ==> com.github.javaparser.ast.type.Type.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 481) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 481) _n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 482) visit(_n.getElements(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 482) _n.getElements() ==> com.github.javaparser.ast.type.UnionType.getElements()
+ Line 484) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 486) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 486) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 487) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 488) r.setAnnotations(annotations) ==> com.github.javaparser.ast.type.Type.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 494) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 494) _n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 495) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 495) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 497) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 498) r.setAnnotations(annotations) ==> com.github.javaparser.ast.type.Type.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 499) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 505) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 505) _n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 506) cloneNodes(_n.getExtends(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 506) _n.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 507) cloneNodes(_n.getSuper(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 507) _n.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 508) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 508) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 511) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 514) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 515) r.setAnnotations(annotations) ==> com.github.javaparser.ast.type.Type.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
+ Line 521) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 521) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 524) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 530) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 530) _n.getName() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getName()
+ Line 531) cloneNodes(_n.getIndex(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 531) _n.getIndex() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getIndex()
+ Line 532) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 532) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 535) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 538) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 544) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 544) _n.getType() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getType()
+ Line 545) visit(_n.getLevels(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 545) _n.getLevels() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getLevels()
+ Line 546) cloneNodes(_n.getInitializer(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 546) _n.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 548) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 550) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 550) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 551) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 557) visit(_n.getValues(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 557) _n.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 558) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 558) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 561) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 564) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 570) cloneNodes(_n.getTarget(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 570) _n.getTarget() ==> com.github.javaparser.ast.expr.AssignExpr.getTarget()
+ Line 571) cloneNodes(_n.getValue(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 571) _n.getValue() ==> com.github.javaparser.ast.expr.AssignExpr.getValue()
+ Line 572) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 572) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 575) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 576) _n.getOperator() ==> com.github.javaparser.ast.expr.AssignExpr.getOperator()
+ Line 577) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 583) cloneNodes(_n.getLeft(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 583) _n.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 584) cloneNodes(_n.getRight(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 584) _n.getRight() ==> com.github.javaparser.ast.expr.BinaryExpr.getRight()
+ Line 585) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 585) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 588) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 589) _n.getOperator() ==> com.github.javaparser.ast.expr.BinaryExpr.getOperator()
+ Line 591) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 597) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 597) _n.getType() ==> com.github.javaparser.ast.expr.CastExpr.getType()
+ Line 598) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 598) _n.getExpr() ==> com.github.javaparser.ast.expr.CastExpr.getExpr()
+ Line 599) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 599) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 602) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 605) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 611) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 611) _n.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 612) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 612) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 615) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 618) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 624) cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 624) _n.getCondition() ==> com.github.javaparser.ast.expr.ConditionalExpr.getCondition()
+ Line 625) cloneNodes(_n.getThenExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 625) _n.getThenExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getThenExpr()
+ Line 626) cloneNodes(_n.getElseExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 626) _n.getElseExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getElseExpr()
+ Line 627) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 627) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 630) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 633) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 639) cloneNodes(_n.getInner(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 639) _n.getInner() ==> com.github.javaparser.ast.expr.EnclosedExpr.getInner()
+ Line 640) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 640) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 643) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 646) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 652) cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 652) _n.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 653) visit(_n.getTypeArguments(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 653) _n.getTypeArguments() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getTypeArguments()
+ Line 654) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 654) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 657) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 660) _n.getField() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getField()
+ Line 662) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 668) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 668) _n.getExpr() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getExpr()
+ Line 669) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 669) _n.getType() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getType()
+ Line 670) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 670) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 673) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 676) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 682) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 682) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 684) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 685) _n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 687) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 693) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 693) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 696) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 697) _n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 699) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 705) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 705) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 708) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 709) _n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 711) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 717) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 717) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 719) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 720) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 726) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 726) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 728) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 729) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 735) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 735) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 738) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 739) _n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 741) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 747) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 747) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 750) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 751) _n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 753) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 759) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 759) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 762) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 763) _n.getValue() ==> com.github.javaparser.ast.expr.BooleanLiteralExpr.getValue()
+ Line 765) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 771) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 771) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 773) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 774) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 780) cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 780) _n.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 781) visit(_n.getTypeArguments(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 781) _n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getTypeArguments()
+ Line 782) visit(_n.getArgs(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 782) _n.getArgs() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArgs()
+ Line 783) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 783) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 786) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 789) _n.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 792) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 798) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 798) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 801) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 802) _n.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 804) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 810) cloneNodes(_n.getScope(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 810) _n.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 811) cloneNodes(_n.getType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 811) _n.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 812) visit(_n.getTypeArguments(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 812) _n.getTypeArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getTypeArguments()
+ Line 813) visit(_n.getArgs(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 813) _n.getArgs() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getArgs()
+ Line 814) visit(_n.getAnonymousClassBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 814) _n.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 815) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 815) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 818) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 821) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 827) cloneNodes(_n.getQualifier(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 827) _n.getQualifier() ==> com.github.javaparser.ast.expr.QualifiedNameExpr.getQualifier()
+ Line 828) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 828) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 831) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 832) _n.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 834) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 840) cloneNodes(_n.getClassExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 840) _n.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 841) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 841) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 844) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 847) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 853) cloneNodes(_n.getClassExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 853) _n.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 854) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 854) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 857) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 860) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 866) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 866) _n.getExpr() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpr()
+ Line 867) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 867) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 870) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 871) _n.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.getOperator()
+ Line 873) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 879) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 879) _n.getAnnotations() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getAnnotations()
+ Line 880) cloneNodes(_n.getElementType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 880) _n.getElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getElementType()
+ Line 881) visit(_n.getVariables(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 881) _n.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 882) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 882) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 883) visit(_n.getArrayBracketPairsAfterElementType(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 883) _n.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getArrayBracketPairsAfterElementType()
+ Line 886) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 887) _n.getModifiers() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getModifiers()
+ Line 893) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 899) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 899) _n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 900) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 900) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 903) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 906) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 912) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 912) _n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 913) cloneNodes(_n.getMemberValue(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 913) _n.getMemberValue() ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr.getMemberValue()
+ Line 914) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 914) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 917) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 920) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 926) cloneNodes(_n.getName(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 926) _n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 927) visit(_n.getPairs(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 927) _n.getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 928) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 928) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 931) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 934) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 940) cloneNodes(_n.getValue(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 940) _n.getValue() ==> com.github.javaparser.ast.expr.MemberValuePair.getValue()
+ Line 941) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 941) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 944) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 945) _n.getName() ==> com.github.javaparser.ast.expr.MemberValuePair.getName()
+ Line 947) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 953) visit(_n.getTypeArguments(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 953) _n.getTypeArguments() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getTypeArguments()
+ Line 954) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 954) _n.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 955) visit(_n.getArgs(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 955) _n.getArgs() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getArgs()
+ Line 956) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 956) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 959) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 961) _n.isThis() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.isThis()
+ Line 965) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 971) cloneNodes(_n.getTypeDeclaration(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 971) _n.getTypeDeclaration() ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt.getTypeDeclaration()
+ Line 972) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 972) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 975) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 978) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 984) cloneNodes(_n.getCheck(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 984) _n.getCheck() ==> com.github.javaparser.ast.stmt.AssertStmt.getCheck()
+ Line 985) cloneNodes(_n.getMessage(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 985) _n.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 986) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 986) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 989) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 992) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 998) visit(_n.getStmts(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 998) _n.getStmts() ==> com.github.javaparser.ast.stmt.BlockStmt.getStmts()
+ Line 999) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 999) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1002) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1005) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1011) cloneNodes(_n.getStmt(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1011) _n.getStmt() ==> com.github.javaparser.ast.stmt.LabeledStmt.getStmt()
+ Line 1012) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1012) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1015) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1016) _n.getLabel() ==> com.github.javaparser.ast.stmt.LabeledStmt.getLabel()
+ Line 1018) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1024) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1024) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1026) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1027) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1033) cloneNodes(_n.getExpression(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1033) _n.getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 1034) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1034) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1037) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1040) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1046) cloneNodes(_n.getSelector(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1046) _n.getSelector() ==> com.github.javaparser.ast.stmt.SwitchStmt.getSelector()
+ Line 1047) visit(_n.getEntries(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 1047) _n.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 1048) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1048) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1051) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1054) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1060) cloneNodes(_n.getLabel(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1060) _n.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 1061) visit(_n.getStmts(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 1061) _n.getStmts() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStmts()
+ Line 1062) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1062) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1065) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1068) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1074) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1074) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1077) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1078) _n.getId() ==> com.github.javaparser.ast.stmt.BreakStmt.getId()
+ Line 1080) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1086) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1086) _n.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 1087) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1087) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1090) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1093) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1099) cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1099) _n.getCondition() ==> com.github.javaparser.ast.stmt.IfStmt.getCondition()
+ Line 1100) cloneNodes(_n.getThenStmt(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1100) _n.getThenStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getThenStmt()
+ Line 1101) cloneNodes(_n.getElseStmt(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1101) _n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 1102) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1102) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1105) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1108) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1114) cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1114) _n.getCondition() ==> com.github.javaparser.ast.stmt.WhileStmt.getCondition()
+ Line 1115) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1115) _n.getBody() ==> com.github.javaparser.ast.stmt.WhileStmt.getBody()
+ Line 1116) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1116) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1119) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1122) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1128) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1128) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1131) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1132) _n.getId() ==> com.github.javaparser.ast.stmt.ContinueStmt.getId()
+ Line 1134) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1140) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1140) _n.getBody() ==> com.github.javaparser.ast.stmt.DoStmt.getBody()
+ Line 1141) cloneNodes(_n.getCondition(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1141) _n.getCondition() ==> com.github.javaparser.ast.stmt.DoStmt.getCondition()
+ Line 1142) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1142) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1145) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1148) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1154) cloneNodes(_n.getVariable(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1154) _n.getVariable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getVariable()
+ Line 1155) cloneNodes(_n.getIterable(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1155) _n.getIterable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getIterable()
+ Line 1156) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1156) _n.getBody() ==> com.github.javaparser.ast.stmt.ForeachStmt.getBody()
+ Line 1157) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1157) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1160) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1163) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1169) visit(_n.getInit(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 1169) _n.getInit() ==> com.github.javaparser.ast.stmt.ForStmt.getInit()
+ Line 1170) cloneNodes(_n.getCompare(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1170) _n.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 1171) visit(_n.getUpdate(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 1171) _n.getUpdate() ==> com.github.javaparser.ast.stmt.ForStmt.getUpdate()
+ Line 1172) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1172) _n.getBody() ==> com.github.javaparser.ast.stmt.ForStmt.getBody()
+ Line 1173) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1173) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1176) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1179) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1185) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1185) _n.getExpr() ==> com.github.javaparser.ast.stmt.ThrowStmt.getExpr()
+ Line 1186) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1186) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1189) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1192) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1198) cloneNodes(_n.getExpr(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1198) _n.getExpr() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getExpr()
+ Line 1199) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1199) _n.getBody() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getBody()
+ Line 1200) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1200) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1203) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1206) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1212) visit(_n.getResources(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 1212) _n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 1213) cloneNodes(_n.getTryBlock(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1213) _n.getTryBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getTryBlock()
+ Line 1214) visit(_n.getCatchs(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 1214) _n.getCatchs() ==> com.github.javaparser.ast.stmt.TryStmt.getCatchs()
+ Line 1215) cloneNodes(_n.getFinallyBlock(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1215) _n.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 1216) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1216) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1219) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1222) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1228) cloneNodes(_n.getParam(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1228) _n.getParam() ==> com.github.javaparser.ast.stmt.CatchClause.getParam()
+ Line 1229) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1229) _n.getBody() ==> com.github.javaparser.ast.stmt.CatchClause.getBody()
+ Line 1230) cloneNodes(_n.getComment(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1230) _n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1233) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1234) param.getModifiers() ==> com.github.javaparser.ast.body.Parameter.getModifiers()
+ Line 1234) param.getAnnotations() ==> com.github.javaparser.ast.body.Parameter.getAnnotations()
+ Line 1234) param.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 1234) param.getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 1236) r.setComment(comment) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1243) visit(_n.getParameters(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 1243) _n.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 1245) cloneNodes(_n.getBody(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1245) _n.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 1247) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1248) _n.isParametersEnclosed() ==> com.github.javaparser.ast.expr.LambdaExpr.isParametersEnclosed()
+ Line 1254) cloneNodes(_n.getScope(), arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1254) _n.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 1256) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1257) _n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getTypeArguments()
+ Line 1257) _n.getIdentifier() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getIdentifier()
+ Line 1263) cloneNodes(n.getType(), arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1263) n.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 1265) n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1270) visit(_n.getAnnotations(), _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.visit(java.util.List<T>, java.lang.Object)
+ Line 1270) _n.getAnnotations() ==> com.github.javaparser.ast.ArrayBracketPair.getAnnotations()
+ Line 1272) _n.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 1278) _nodes.size() ==> java.util.List.size()
+ Line 1280) cloneNodes(n, _arg) ==> com.github.javaparser.ast.visitor.CloneVisitor.cloneNodes(T, java.lang.Object)
+ Line 1282) r.add(rN) ==> java.util.List.add(E)
+ Line 1291) _node.accept(this, _arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_DumpVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_DumpVisitor.txt
new file mode 100644
index 000000000..31017580f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_DumpVisitor.txt
@@ -0,0 +1,1066 @@
+ Line 86) buf.append(indentation) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 92) makeIndent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.makeIndent()
+ Line 95) buf.append(arg) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 99) print(arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 100) printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 104) buf.append(EOL) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 109) buf.toString() ==> java.lang.StringBuilder.toString()
+ Line 114) getSource() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.getSource()
+ Line 118) createSourcePrinter() ==> com.github.javaparser.ast.visitor.DumpVisitor.createSourcePrinter()
+ Line 125) printer.getSource() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.getSource()
+ Line 129) modifiers.size() ==> java.util.AbstractCollection.size()
+ Line 130) printer.print(modifiers.stream().map(Modifier::getLib).collect(Collectors.joining(" ")) + " ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 130) modifiers.stream().map(Modifier::getLib).collect(Collectors.joining(" ")) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 130) modifiers.stream().map(Modifier::getLib) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 130) modifiers.stream() ==> java.util.Collection.stream()
+ Line 130) Collectors.joining(" ") ==> java.util.stream.Collectors.joining(java.lang.CharSequence)
+ Line 135) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 136) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 137) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 142) isNullOrEmpty(annotations) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 144) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 145) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 151) isNullOrEmpty(annotations) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 153) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 156) annotation.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 157) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 163) nodeWithTypeArguments.getTypeArguments() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments.getTypeArguments()
+ Line 164) isNullOrEmpty(typeArguments) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 165) printer.print("<") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 166) typeArguments.iterator() ==> java.util.List.iterator()
+ Line 166) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 167) i.next() ==> java.util.Iterator.next()
+ Line 168) t.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 169) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 170) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 173) printer.print(">") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 178) isNullOrEmpty(args) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 179) printer.print("<") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 180) args.iterator() ==> java.util.List.iterator()
+ Line 180) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 181) i.next() ==> java.util.Iterator.next()
+ Line 182) t.accept(this, arg) ==> com.github.javaparser.ast.type.TypeParameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 183) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 184) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 187) printer.print(">") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 192) printer.print("(") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 193) isNullOrEmpty(args) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 194) args.iterator() ==> java.util.List.iterator()
+ Line 194) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 195) i.next() ==> java.util.Iterator.next()
+ Line 196) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 197) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 198) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 202) printer.print(")") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 207) javacomment.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 213) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 213) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 215) n.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 216) n.getPackage().accept(this, arg) ==> com.github.javaparser.ast.PackageDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 216) n.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 219) isNullOrEmpty(n.getImports()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 219) n.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 220) n.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 221) i.accept(this, arg) ==> com.github.javaparser.ast.ImportDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 223) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 226) isNullOrEmpty(n.getTypes()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 226) n.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 227) n.getTypes().iterator() ==> java.util.List.iterator()
+ Line 227) n.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 227) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 228) i.next().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 228) i.next() ==> java.util.Iterator.next()
+ Line 229) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 230) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 231) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 236) printOrphanCommentsEnding(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsEnding(com.github.javaparser.ast.Node)
+ Line 241) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 241) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 242) printAnnotations(n.getAnnotations(), false, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 242) n.getAnnotations() ==> com.github.javaparser.ast.PackageDeclaration.getAnnotations()
+ Line 243) printer.print("package ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 244) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 244) n.getName() ==> com.github.javaparser.ast.PackageDeclaration.getName()
+ Line 245) printer.printLn(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 246) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 248) printOrphanCommentsEnding(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsEnding(com.github.javaparser.ast.Node)
+ Line 253) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 253) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 254) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 254) n.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 256) printOrphanCommentsEnding(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsEnding(com.github.javaparser.ast.Node)
+ Line 261) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 261) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 262) n.getQualifier().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 262) n.getQualifier() ==> com.github.javaparser.ast.expr.QualifiedNameExpr.getQualifier()
+ Line 263) printer.print(".") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 264) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 264) n.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 266) printOrphanCommentsEnding(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsEnding(com.github.javaparser.ast.Node)
+ Line 271) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 271) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 272) n.isEmptyImportDeclaration() ==> com.github.javaparser.ast.ImportDeclaration.isEmptyImportDeclaration()
+ Line 273) printer.print("import ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 274) n.isStatic() ==> com.github.javaparser.ast.ImportDeclaration.isStatic()
+ Line 275) printer.print("static ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 277) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 277) n.getName() ==> com.github.javaparser.ast.ImportDeclaration.getName()
+ Line 278) n.isAsterisk() ==> com.github.javaparser.ast.ImportDeclaration.isAsterisk()
+ Line 279) printer.print(".*") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 282) printer.printLn(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 284) printOrphanCommentsEnding(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsEnding(com.github.javaparser.ast.Node)
+ Line 289) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 289) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 290) printMemberAnnotations(n.getAnnotations(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMemberAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.lang.Object)
+ Line 290) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 291) printModifiers(n.getModifiers()) ==> com.github.javaparser.ast.visitor.DumpVisitor.printModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 291) n.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 293) n.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 294) printer.print("interface ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 296) printer.print("class ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 299) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 299) n.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 301) printTypeParameters(n.getTypeParameters(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.Object)
+ Line 301) n.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 303) isNullOrEmpty(n.getExtends()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 303) n.getExtends() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtends()
+ Line 304) printer.print(" extends ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 305) n.getExtends().iterator() ==> java.util.List.iterator()
+ Line 305) n.getExtends() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtends()
+ Line 305) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 306) i.next() ==> java.util.Iterator.next()
+ Line 307) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 308) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 309) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 314) isNullOrEmpty(n.getImplements()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 314) n.getImplements() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplements()
+ Line 315) printer.print(" implements ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 316) n.getImplements().iterator() ==> java.util.List.iterator()
+ Line 316) n.getImplements() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplements()
+ Line 316) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 317) i.next() ==> java.util.Iterator.next()
+ Line 318) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 319) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 320) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 325) printer.printLn(" {") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 326) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 327) isNullOrEmpty(n.getMembers()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 327) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 328) printMembers(n.getMembers(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMembers(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>, java.lang.Object)
+ Line 328) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 331) printOrphanCommentsEnding(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsEnding(com.github.javaparser.ast.Node)
+ Line 333) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 334) printer.print("}") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 339) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 339) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 340) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 342) printOrphanCommentsEnding(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsEnding(com.github.javaparser.ast.Node)
+ Line 347) printer.print("/**") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 348) printer.print(n.getContent()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 348) n.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 349) printer.printLn("*/") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 354) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 354) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 356) n.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 357) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 357) n.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 358) printer.print(".") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 360) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 361) ae.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 362) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 365) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 365) n.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 367) n.isUsingDiamondOperator() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments.isUsingDiamondOperator()
+ Line 368) printer.print("<>") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 370) printTypeArgs(n, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printTypeArgs(com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments<?>, java.lang.Object)
+ Line 376) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 376) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 377) n.getAnnotations() ==> com.github.javaparser.ast.type.TypeParameter.getAnnotations()
+ Line 378) ann.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 379) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 381) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 381) n.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 382) isNullOrEmpty(n.getTypeBound()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 382) n.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 383) printer.print(" extends ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 384) n.getTypeBound().iterator() ==> java.util.List.iterator()
+ Line 384) n.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 384) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 385) i.next() ==> java.util.Iterator.next()
+ Line 386) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 387) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 388) printer.print(" & ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 396) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 396) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 397) printAnnotations(n.getAnnotations(), true, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 397) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 398) n.getType() ==> com.github.javaparser.ast.type.PrimitiveType.getType()
+ Line 400) printer.print("boolean") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 403) printer.print("byte") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 406) printer.print("char") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 409) printer.print("double") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 412) printer.print("float") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 415) printer.print("int") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 418) printer.print("long") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 421) printer.print("short") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 432) arrayTypeBuffer.add(arrayType) ==> java.util.List.add(E)
+ Line 433) arrayType.getComponentType() ==> com.github.javaparser.ast.type.ArrayType.getComponentType()
+ Line 436) type.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 438) printAnnotations(arrayType.getAnnotations(), true, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 438) arrayType.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 439) printer.print("[]") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 445) printAnnotations(n.getAnnotations(), true, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 445) n.getAnnotations() ==> com.github.javaparser.ast.ArrayCreationLevel.getAnnotations()
+ Line 446) printer.print("[") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 447) n.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 448) n.getDimension().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 448) n.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 450) printer.print("]") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 455) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 455) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 456) printAnnotations(n.getAnnotations(), false, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 456) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 458) n.getElements() ==> com.github.javaparser.ast.type.IntersectionType.getElements()
+ Line 459) element.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 463) printer.print(" & ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 469) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 469) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 470) printAnnotations(n.getAnnotations(), true, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 470) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 472) n.getElements() ==> com.github.javaparser.ast.type.UnionType.getElements()
+ Line 476) printer.print(" | ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 478) element.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 485) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 485) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 486) printAnnotations(n.getAnnotations(), false, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 486) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 487) printer.print("?") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 488) n.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 489) printer.print(" extends ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 490) n.getExtends().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 490) n.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 492) n.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 493) printer.print(" super ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 494) n.getSuper().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 494) n.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 505) printOrphanCommentsBeforeThisChildNode(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsBeforeThisChildNode(com.github.javaparser.ast.Node)
+ Line 507) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 507) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 508) printMemberAnnotations(n.getAnnotations(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMemberAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.lang.Object)
+ Line 508) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 509) printModifiers(n.getModifiers()) ==> com.github.javaparser.ast.visitor.DumpVisitor.printModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 509) n.getModifiers() ==> com.github.javaparser.ast.body.FieldDeclaration.getModifiers()
+ Line 510) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 510) n.getElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getElementType()
+ Line 511) n.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getArrayBracketPairsAfterElementType()
+ Line 512) pair.accept(this, arg) ==> com.github.javaparser.ast.ArrayBracketPair.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 515) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 516) n.getVariables().iterator() ==> java.util.List.iterator()
+ Line 516) n.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 516) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 517) i.next() ==> java.util.Iterator.next()
+ Line 518) var.accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclarator.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 519) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 520) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 524) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 529) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 529) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 530) n.getId().accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 530) n.getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 531) n.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 532) printer.print(" = ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 533) n.getInit().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 533) n.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 539) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 539) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 540) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 540) n.getName() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getName()
+ Line 541) n.getArrayBracketPairsAfterId() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getArrayBracketPairsAfterId()
+ Line 542) pair.accept(this, arg) ==> com.github.javaparser.ast.ArrayBracketPair.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 548) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 548) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 549) printer.print("{") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 550) isNullOrEmpty(n.getValues()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 550) n.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 551) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 552) n.getValues().iterator() ==> java.util.List.iterator()
+ Line 552) n.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 552) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 553) i.next() ==> java.util.Iterator.next()
+ Line 554) expr.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 555) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 556) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 559) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 561) printer.print("}") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 566) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 566) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 567) printAnnotations(n.getAnnotations(), false, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 567) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 568) printer.print("void") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 573) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 573) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 574) n.getName().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 574) n.getName() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getName()
+ Line 575) printer.print("[") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 576) n.getIndex().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 576) n.getIndex() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getIndex()
+ Line 577) printer.print("]") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 582) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 582) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 583) printer.print("new ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 584) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 584) n.getType() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getType()
+ Line 585) n.getLevels() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getLevels()
+ Line 586) level.accept(this, arg) ==> com.github.javaparser.ast.ArrayCreationLevel.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 588) n.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 589) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 590) n.getInitializer().accept(this, arg) ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 590) n.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 596) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 596) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 597) n.getTarget().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 597) n.getTarget() ==> com.github.javaparser.ast.expr.AssignExpr.getTarget()
+ Line 598) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 599) n.getOperator() ==> com.github.javaparser.ast.expr.AssignExpr.getOperator()
+ Line 601) printer.print("=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 604) printer.print("&=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 607) printer.print("|=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 610) printer.print("^=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 613) printer.print("+=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 616) printer.print("-=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 619) printer.print("%=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 622) printer.print("/=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 625) printer.print("*=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 628) printer.print("<<=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 631) printer.print(">>=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 634) printer.print(">>>=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 637) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 638) n.getValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 638) n.getValue() ==> com.github.javaparser.ast.expr.AssignExpr.getValue()
+ Line 643) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 643) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 644) n.getLeft().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 644) n.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 645) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 646) n.getOperator() ==> com.github.javaparser.ast.expr.BinaryExpr.getOperator()
+ Line 648) printer.print("||") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 651) printer.print("&&") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 654) printer.print("|") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 657) printer.print("&") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 660) printer.print("^") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 663) printer.print("==") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 666) printer.print("!=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 669) printer.print("<") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 672) printer.print(">") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 675) printer.print("<=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 678) printer.print(">=") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 681) printer.print("<<") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 684) printer.print(">>") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 687) printer.print(">>>") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 690) printer.print("+") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 693) printer.print("-") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 696) printer.print("*") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 699) printer.print("/") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 702) printer.print("%") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 705) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 706) n.getRight().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 706) n.getRight() ==> com.github.javaparser.ast.expr.BinaryExpr.getRight()
+ Line 711) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 711) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 712) printer.print("(") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 713) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 713) n.getType() ==> com.github.javaparser.ast.expr.CastExpr.getType()
+ Line 714) printer.print(") ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 715) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 715) n.getExpr() ==> com.github.javaparser.ast.expr.CastExpr.getExpr()
+ Line 720) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 720) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 721) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 721) n.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 722) printer.print(".class") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 727) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 727) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 728) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 728) n.getCondition() ==> com.github.javaparser.ast.expr.ConditionalExpr.getCondition()
+ Line 729) printer.print(" ? ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 730) n.getThenExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 730) n.getThenExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getThenExpr()
+ Line 731) printer.print(" : ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 732) n.getElseExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 732) n.getElseExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getElseExpr()
+ Line 737) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 737) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 738) printer.print("(") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 739) n.getInner() ==> com.github.javaparser.ast.expr.EnclosedExpr.getInner()
+ Line 740) n.getInner().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 740) n.getInner() ==> com.github.javaparser.ast.expr.EnclosedExpr.getInner()
+ Line 742) printer.print(")") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 747) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 747) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 748) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 748) n.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 749) printer.print(".") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 750) printer.print(n.getField()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 750) n.getField() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getField()
+ Line 755) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 755) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 756) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 756) n.getExpr() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getExpr()
+ Line 757) printer.print(" instanceof ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 758) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 758) n.getType() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getType()
+ Line 763) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 763) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 764) printer.print("'") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 765) printer.print(n.getValue()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 765) n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 766) printer.print("'") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 771) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 771) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 772) printer.print(n.getValue()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 772) n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 777) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 777) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 778) printer.print(n.getValue()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 778) n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 783) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 783) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 784) printer.print(n.getValue()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 784) n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 789) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 789) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 790) printer.print(n.getValue()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 790) n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 795) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 795) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 796) printer.print(n.getValue()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 796) n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 801) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 801) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 802) printer.print("\"") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 803) printer.print(n.getValue()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 803) n.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 804) printer.print("\"") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 809) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 809) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 810) printer.print(String.valueOf(n.getValue())) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 810) String.valueOf(n.getValue()) ==> java.lang.String.valueOf(boolean)
+ Line 810) n.getValue() ==> com.github.javaparser.ast.expr.BooleanLiteralExpr.getValue()
+ Line 815) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 815) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 816) printer.print("null") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 821) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 821) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 822) n.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 823) n.getClassExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 823) n.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 824) printer.print(".") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 826) printer.print("this") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 831) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 831) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 832) n.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 833) n.getClassExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 833) n.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 834) printer.print(".") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 836) printer.print("super") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 841) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 841) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 842) n.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 843) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 843) n.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 844) printer.print(".") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 846) printTypeArgs(n, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printTypeArgs(com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments<?>, java.lang.Object)
+ Line 847) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 847) n.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 848) printArguments(n.getArgs(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printArguments(java.util.List<com.github.javaparser.ast.expr.Expression>, java.lang.Object)
+ Line 848) n.getArgs() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArgs()
+ Line 853) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 853) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 854) n.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 855) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 855) n.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 856) printer.print(".") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 859) printer.print("new ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 861) printTypeArgs(n, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printTypeArgs(com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments<?>, java.lang.Object)
+ Line 862) isNullOrEmpty(n.getTypeArguments()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 862) n.getTypeArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getTypeArguments()
+ Line 863) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 866) n.getType().accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 866) n.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 868) printArguments(n.getArgs(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printArguments(java.util.List<com.github.javaparser.ast.expr.Expression>, java.lang.Object)
+ Line 868) n.getArgs() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getArgs()
+ Line 870) n.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 871) printer.printLn(" {") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 872) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 873) printMembers(n.getAnonymousClassBody(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMembers(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>, java.lang.Object)
+ Line 873) n.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 874) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 875) printer.print("}") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 881) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 881) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 882) n.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.getOperator()
+ Line 884) printer.print("+") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 887) printer.print("-") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 890) printer.print("~") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 893) printer.print("!") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 896) printer.print("++") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 899) printer.print("--") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 904) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 904) n.getExpr() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpr()
+ Line 906) n.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.getOperator()
+ Line 908) printer.print("++") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 911) printer.print("--") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 919) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 919) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 920) printMemberAnnotations(n.getAnnotations(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMemberAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.lang.Object)
+ Line 920) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 921) printModifiers(n.getModifiers()) ==> com.github.javaparser.ast.visitor.DumpVisitor.printModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 921) n.getModifiers() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()
+ Line 923) printTypeParameters(n.getTypeParameters(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.Object)
+ Line 923) n.getTypeParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()
+ Line 924) n.getTypeParameters().isEmpty() ==> java.util.List.isEmpty()
+ Line 924) n.getTypeParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()
+ Line 925) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 927) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 927) n.getName() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getName()
+ Line 929) printer.print("(") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 930) n.getParameters().isEmpty() ==> java.util.List.isEmpty()
+ Line 930) n.getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 931) n.getParameters().iterator() ==> java.util.List.iterator()
+ Line 931) n.getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 931) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 932) i.next() ==> java.util.Iterator.next()
+ Line 933) p.accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 934) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 935) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 939) printer.print(")") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 941) isNullOrEmpty(n.getThrows()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 941) n.getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 942) printer.print(" throws ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 943) n.getThrows().iterator() ==> java.util.List.iterator()
+ Line 943) n.getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 943) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 944) i.next() ==> java.util.Iterator.next()
+ Line 945) name.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 946) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 947) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 951) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 952) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 952) n.getBody() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getBody()
+ Line 957) printOrphanCommentsBeforeThisChildNode(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsBeforeThisChildNode(com.github.javaparser.ast.Node)
+ Line 959) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 959) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 960) printMemberAnnotations(n.getAnnotations(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMemberAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.lang.Object)
+ Line 960) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 961) printModifiers(n.getModifiers()) ==> com.github.javaparser.ast.visitor.DumpVisitor.printModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 961) n.getModifiers() ==> com.github.javaparser.ast.body.MethodDeclaration.getModifiers()
+ Line 962) n.isDefault() ==> com.github.javaparser.ast.body.MethodDeclaration.isDefault()
+ Line 963) printer.print("default ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 965) printTypeParameters(n.getTypeParameters(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.Object)
+ Line 965) n.getTypeParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getTypeParameters()
+ Line 966) isNullOrEmpty(n.getTypeParameters()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 966) n.getTypeParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getTypeParameters()
+ Line 967) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 970) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 970) n.getElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getElementType()
+ Line 971) n.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getArrayBracketPairsAfterElementType()
+ Line 972) pair.accept(this, arg) ==> com.github.javaparser.ast.ArrayBracketPair.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 974) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 975) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 975) n.getName() ==> com.github.javaparser.ast.body.MethodDeclaration.getName()
+ Line 977) printer.print("(") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 978) isNullOrEmpty(n.getParameters()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 978) n.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 979) n.getParameters().iterator() ==> java.util.List.iterator()
+ Line 979) n.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 979) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 980) i.next() ==> java.util.Iterator.next()
+ Line 981) p.accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 982) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 983) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 987) printer.print(")") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 989) n.getArrayBracketPairsAfterParameterList() ==> com.github.javaparser.ast.body.MethodDeclaration.getArrayBracketPairsAfterParameterList()
+ Line 990) pair.accept(this, arg) ==> com.github.javaparser.ast.ArrayBracketPair.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 993) isNullOrEmpty(n.getThrows()) ==> com.github.javaparser.utils.Utils.isNullOrEmpty(java.util.Collection<E>)
+ Line 993) n.getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 994) printer.print(" throws ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 995) n.getThrows().iterator() ==> java.util.List.iterator()
+ Line 995) n.getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 995) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 996) i.next() ==> java.util.Iterator.next()
+ Line 997) name.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 998) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 999) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1003) n.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 1004) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1006) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1007) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1007) n.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 1013) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1013) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1014) printAnnotations(n.getAnnotations(), false, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 1014) n.getAnnotations() ==> com.github.javaparser.ast.body.Parameter.getAnnotations()
+ Line 1015) printModifiers(n.getModifiers()) ==> com.github.javaparser.ast.visitor.DumpVisitor.printModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 1015) n.getModifiers() ==> com.github.javaparser.ast.body.Parameter.getModifiers()
+ Line 1016) n.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 1017) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1017) n.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 1019) n.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.Parameter.getArrayBracketPairsAfterElementType()
+ Line 1020) pair.accept(this, arg) ==> com.github.javaparser.ast.ArrayBracketPair.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1022) n.isVarArgs() ==> com.github.javaparser.ast.body.Parameter.isVarArgs()
+ Line 1023) printer.print("...") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1025) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1026) n.getId().accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1026) n.getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 1031) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1031) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1032) n.isThis() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.isThis()
+ Line 1033) printTypeArgs(n, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printTypeArgs(com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments<?>, java.lang.Object)
+ Line 1034) printer.print("this") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1036) n.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 1037) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1037) n.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 1038) printer.print(".") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1040) printTypeArgs(n, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printTypeArgs(com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments<?>, java.lang.Object)
+ Line 1041) printer.print("super") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1043) printArguments(n.getArgs(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printArguments(java.util.List<com.github.javaparser.ast.expr.Expression>, java.lang.Object)
+ Line 1043) n.getArgs() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getArgs()
+ Line 1044) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1049) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1049) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1050) printAnnotations(n.getAnnotations(), false, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 1050) n.getAnnotations() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getAnnotations()
+ Line 1051) printModifiers(n.getModifiers()) ==> com.github.javaparser.ast.visitor.DumpVisitor.printModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 1051) n.getModifiers() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getModifiers()
+ Line 1053) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1053) n.getElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getElementType()
+ Line 1054) n.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getArrayBracketPairsAfterElementType()
+ Line 1055) pair.accept(this, arg) ==> com.github.javaparser.ast.ArrayBracketPair.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1057) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1059) n.getVariables().iterator() ==> java.util.List.iterator()
+ Line 1059) n.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 1059) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1060) i.next() ==> java.util.Iterator.next()
+ Line 1061) v.accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclarator.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1062) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1063) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1070) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1070) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1071) n.getTypeDeclaration().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1071) n.getTypeDeclaration() ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt.getTypeDeclaration()
+ Line 1076) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1076) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1077) printer.print("assert ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1078) n.getCheck().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1078) n.getCheck() ==> com.github.javaparser.ast.stmt.AssertStmt.getCheck()
+ Line 1079) n.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 1080) printer.print(" : ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1081) n.getMessage().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1081) n.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 1083) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1088) printOrphanCommentsBeforeThisChildNode(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsBeforeThisChildNode(com.github.javaparser.ast.Node)
+ Line 1089) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1089) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1090) printer.printLn("{") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1091) n.getStmts() ==> com.github.javaparser.ast.stmt.BlockStmt.getStmts()
+ Line 1092) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 1093) n.getStmts() ==> com.github.javaparser.ast.stmt.BlockStmt.getStmts()
+ Line 1094) s.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1095) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 1097) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 1099) printOrphanCommentsEnding(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsEnding(com.github.javaparser.ast.Node)
+ Line 1100) printer.print("}") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1106) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1106) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1107) printer.print(n.getLabel()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1107) n.getLabel() ==> com.github.javaparser.ast.stmt.LabeledStmt.getLabel()
+ Line 1108) printer.print(": ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1109) n.getStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1109) n.getStmt() ==> com.github.javaparser.ast.stmt.LabeledStmt.getStmt()
+ Line 1114) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1114) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1115) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1120) printOrphanCommentsBeforeThisChildNode(n) ==> com.github.javaparser.ast.visitor.DumpVisitor.printOrphanCommentsBeforeThisChildNode(com.github.javaparser.ast.Node)
+ Line 1121) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1121) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1122) n.getExpression().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1122) n.getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 1123) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1128) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1128) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1129) printer.print("switch(") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1130) n.getSelector().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1130) n.getSelector() ==> com.github.javaparser.ast.stmt.SwitchStmt.getSelector()
+ Line 1131) printer.printLn(") {") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1132) n.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 1133) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 1134) n.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 1135) e.accept(this, arg) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1137) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 1139) printer.print("}") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1145) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1145) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1146) n.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 1147) printer.print("case ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1148) n.getLabel().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1148) n.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 1149) printer.print(":") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1151) printer.print("default:") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1153) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 1154) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 1155) n.getStmts() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStmts()
+ Line 1156) n.getStmts() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStmts()
+ Line 1157) s.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1158) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 1161) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 1166) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1166) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1167) printer.print("break") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1168) n.getId() ==> com.github.javaparser.ast.stmt.BreakStmt.getId()
+ Line 1169) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1170) printer.print(n.getId()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1170) n.getId() ==> com.github.javaparser.ast.stmt.BreakStmt.getId()
+ Line 1172) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1177) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1177) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1178) printer.print("return") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1179) n.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 1180) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1181) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1181) n.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 1183) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1188) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1188) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1189) printMemberAnnotations(n.getAnnotations(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMemberAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.lang.Object)
+ Line 1189) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 1190) printModifiers(n.getModifiers()) ==> com.github.javaparser.ast.visitor.DumpVisitor.printModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 1190) n.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 1192) printer.print("enum ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1193) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1193) n.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 1195) n.getImplements().isEmpty() ==> java.util.List.isEmpty()
+ Line 1195) n.getImplements() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplements()
+ Line 1196) printer.print(" implements ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1197) n.getImplements().iterator() ==> java.util.List.iterator()
+ Line 1197) n.getImplements() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplements()
+ Line 1197) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1198) i.next() ==> java.util.Iterator.next()
+ Line 1199) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1200) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1201) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1206) printer.printLn(" {") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1207) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 1208) n.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 1209) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 1210) n.getEntries().iterator() ==> java.util.List.iterator()
+ Line 1210) n.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 1210) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1211) i.next() ==> java.util.Iterator.next()
+ Line 1212) e.accept(this, arg) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1213) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1214) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1218) n.getMembers().isEmpty() ==> java.util.List.isEmpty()
+ Line 1218) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 1219) printer.printLn(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1220) printMembers(n.getMembers(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMembers(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>, java.lang.Object)
+ Line 1220) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 1222) n.getEntries().isEmpty() ==> java.util.List.isEmpty()
+ Line 1222) n.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 1223) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 1226) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 1227) printer.print("}") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1232) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1232) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1233) printMemberAnnotations(n.getAnnotations(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMemberAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.lang.Object)
+ Line 1233) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 1234) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1234) n.getName() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getName()
+ Line 1236) n.getArgs().isEmpty() ==> java.util.List.isEmpty()
+ Line 1236) n.getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 1237) printArguments(n.getArgs(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printArguments(java.util.List<com.github.javaparser.ast.expr.Expression>, java.lang.Object)
+ Line 1237) n.getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 1240) n.getClassBody().isEmpty() ==> java.util.List.isEmpty()
+ Line 1240) n.getClassBody() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getClassBody()
+ Line 1241) printer.printLn(" {") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1242) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 1243) printMembers(n.getClassBody(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMembers(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>, java.lang.Object)
+ Line 1243) n.getClassBody() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getClassBody()
+ Line 1244) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 1245) printer.printLn("}") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1251) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1251) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1252) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1257) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1257) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1258) n.isStatic() ==> com.github.javaparser.ast.body.InitializerDeclaration.isStatic()
+ Line 1259) printer.print("static ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1261) n.getBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1261) n.getBlock() ==> com.github.javaparser.ast.body.InitializerDeclaration.getBlock()
+ Line 1266) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1266) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1267) printer.print("if (") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1268) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1268) n.getCondition() ==> com.github.javaparser.ast.stmt.IfStmt.getCondition()
+ Line 1269) n.getThenStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getThenStmt()
+ Line 1271) printer.print(") ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1273) printer.printLn(")") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1274) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 1276) n.getThenStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1276) n.getThenStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getThenStmt()
+ Line 1278) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 1279) n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 1281) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1283) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 1284) n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 1285) n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 1287) printer.print("else ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1289) printer.printLn("else") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1290) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 1292) n.getElseStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1292) n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 1294) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 1300) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1300) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1301) printer.print("while (") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1302) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1302) n.getCondition() ==> com.github.javaparser.ast.stmt.WhileStmt.getCondition()
+ Line 1303) printer.print(") ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1304) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1304) n.getBody() ==> com.github.javaparser.ast.stmt.WhileStmt.getBody()
+ Line 1309) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1309) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1310) printer.print("continue") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1311) n.getId() ==> com.github.javaparser.ast.stmt.ContinueStmt.getId()
+ Line 1312) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1313) printer.print(n.getId()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1313) n.getId() ==> com.github.javaparser.ast.stmt.ContinueStmt.getId()
+ Line 1315) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1320) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1320) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1321) printer.print("do ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1322) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1322) n.getBody() ==> com.github.javaparser.ast.stmt.DoStmt.getBody()
+ Line 1323) printer.print(" while (") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1324) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1324) n.getCondition() ==> com.github.javaparser.ast.stmt.DoStmt.getCondition()
+ Line 1325) printer.print(");") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1330) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1330) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1331) printer.print("for (") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1332) n.getVariable().accept(this, arg) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1332) n.getVariable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getVariable()
+ Line 1333) printer.print(" : ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1334) n.getIterable().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1334) n.getIterable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getIterable()
+ Line 1335) printer.print(") ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1336) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1336) n.getBody() ==> com.github.javaparser.ast.stmt.ForeachStmt.getBody()
+ Line 1341) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1341) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1342) printer.print("for (") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1343) n.getInit() ==> com.github.javaparser.ast.stmt.ForStmt.getInit()
+ Line 1344) n.getInit().iterator() ==> java.util.List.iterator()
+ Line 1344) n.getInit() ==> com.github.javaparser.ast.stmt.ForStmt.getInit()
+ Line 1344) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1345) i.next() ==> java.util.Iterator.next()
+ Line 1346) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1347) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1348) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1352) printer.print("; ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1353) n.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 1354) n.getCompare().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1354) n.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 1356) printer.print("; ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1357) n.getUpdate() ==> com.github.javaparser.ast.stmt.ForStmt.getUpdate()
+ Line 1358) n.getUpdate().iterator() ==> java.util.List.iterator()
+ Line 1358) n.getUpdate() ==> com.github.javaparser.ast.stmt.ForStmt.getUpdate()
+ Line 1358) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1359) i.next() ==> java.util.Iterator.next()
+ Line 1360) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1361) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1362) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1366) printer.print(") ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1367) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1367) n.getBody() ==> com.github.javaparser.ast.stmt.ForStmt.getBody()
+ Line 1372) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1372) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1373) printer.print("throw ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1374) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1374) n.getExpr() ==> com.github.javaparser.ast.stmt.ThrowStmt.getExpr()
+ Line 1375) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1380) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1380) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1381) printer.print("synchronized (") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1382) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1382) n.getExpr() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getExpr()
+ Line 1383) printer.print(") ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1384) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1384) n.getBody() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getBody()
+ Line 1389) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1389) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1390) printer.print("try ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1391) n.getResources().isEmpty() ==> java.util.List.isEmpty()
+ Line 1391) n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 1392) printer.print("(") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1393) n.getResources().iterator() ==> java.util.List.iterator()
+ Line 1393) n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 1395) resources.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1396) visit(resources.next(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.visit(com.github.javaparser.ast.expr.VariableDeclarationExpr, java.lang.Object)
+ Line 1396) resources.next() ==> java.util.Iterator.next()
+ Line 1397) resources.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1398) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1399) printer.printLn() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn()
+ Line 1401) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 1406) n.getResources().size() ==> java.util.List.size()
+ Line 1406) n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 1407) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 1409) printer.print(") ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1411) n.getTryBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1411) n.getTryBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getTryBlock()
+ Line 1412) n.getCatchs() ==> com.github.javaparser.ast.stmt.TryStmt.getCatchs()
+ Line 1413) n.getCatchs() ==> com.github.javaparser.ast.stmt.TryStmt.getCatchs()
+ Line 1414) c.accept(this, arg) ==> com.github.javaparser.ast.stmt.CatchClause.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1417) n.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 1418) printer.print(" finally ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1419) n.getFinallyBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1419) n.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 1425) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1425) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1426) printer.print(" catch (") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1427) n.getParam().accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1427) n.getParam() ==> com.github.javaparser.ast.stmt.CatchClause.getParam()
+ Line 1428) printer.print(") ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1429) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1429) n.getBody() ==> com.github.javaparser.ast.stmt.CatchClause.getBody()
+ Line 1435) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1435) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1436) printMemberAnnotations(n.getAnnotations(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMemberAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.lang.Object)
+ Line 1436) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 1437) printModifiers(n.getModifiers()) ==> com.github.javaparser.ast.visitor.DumpVisitor.printModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 1437) n.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 1439) printer.print("@interface ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1440) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1440) n.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 1441) printer.printLn(" {") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1442) printer.indent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.indent()
+ Line 1443) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 1444) printMembers(n.getMembers(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMembers(java.util.List<com.github.javaparser.ast.body.BodyDeclaration<?>>, java.lang.Object)
+ Line 1444) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 1446) printer.unindent() ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.unindent()
+ Line 1447) printer.print("}") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1452) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1452) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1453) printMemberAnnotations(n.getAnnotations(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printMemberAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.lang.Object)
+ Line 1453) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 1454) printModifiers(n.getModifiers()) ==> com.github.javaparser.ast.visitor.DumpVisitor.printModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 1454) n.getModifiers() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getModifiers()
+ Line 1456) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1456) n.getType() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getType()
+ Line 1457) printer.print(" ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1458) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1458) n.getName() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getName()
+ Line 1459) printer.print("()") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1460) n.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 1461) printer.print(" default ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1462) n.getDefaultValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1462) n.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 1464) printer.print(";") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1469) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1469) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1470) printer.print("@") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1471) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1471) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1476) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1476) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1477) printer.print("@") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1478) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1478) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1479) printer.print("(") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1480) n.getMemberValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1480) n.getMemberValue() ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr.getMemberValue()
+ Line 1481) printer.print(")") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1486) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1486) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1487) printer.print("@") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1488) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1488) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1489) printer.print("(") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1490) n.getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 1491) n.getPairs().iterator() ==> java.util.List.iterator()
+ Line 1491) n.getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 1491) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1492) i.next() ==> java.util.Iterator.next()
+ Line 1493) m.accept(this, arg) ==> com.github.javaparser.ast.expr.MemberValuePair.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1494) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1495) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1499) printer.print(")") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1504) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1504) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1505) printer.print(n.getName()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1505) n.getName() ==> com.github.javaparser.ast.expr.MemberValuePair.getName()
+ Line 1506) printer.print(" = ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1507) n.getValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1507) n.getValue() ==> com.github.javaparser.ast.expr.MemberValuePair.getValue()
+ Line 1515) printer.print("//") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1516) n.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 1517) tmp.replace('\r', ' ') ==> java.lang.String.replace(char, char)
+ Line 1518) tmp.replace('\n', ' ') ==> java.lang.String.replace(char, char)
+ Line 1519) printer.printLn(tmp) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1527) printer.print("/*") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1528) printer.print(n.getContent()) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1528) n.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 1529) printer.printLn("*/") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.printLn(java.lang.String)
+ Line 1534) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1534) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1536) n.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 1537) n.isParametersEnclosed() ==> com.github.javaparser.ast.expr.LambdaExpr.isParametersEnclosed()
+ Line 1540) printer.print("(") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1543) parameters.iterator() ==> java.util.List.iterator()
+ Line 1543) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1544) i.next() ==> java.util.Iterator.next()
+ Line 1545) p.accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1546) i.hasNext() ==> java.util.Iterator.hasNext()
+ Line 1547) printer.print(", ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1552) printer.print(")") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1555) printer.print(" -> ") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1556) n.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 1559) ((ExpressionStmt) body).getExpression().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1559) ((ExpressionStmt) body).getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 1561) body.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1568) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1568) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1569) n.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 1570) n.getIdentifier() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getIdentifier()
+ Line 1572) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1572) n.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 1575) printer.print("::") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1576) printTypeArgs(n, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printTypeArgs(com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments<?>, java.lang.Object)
+ Line 1578) printer.print(identifier) ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1585) printJavaComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printJavaComment(com.github.javaparser.ast.comments.Comment, java.lang.Object)
+ Line 1585) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1586) n.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 1587) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1587) n.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 1593) printAnnotations(arrayBracketPair.getAnnotations(), true, arg) ==> com.github.javaparser.ast.visitor.DumpVisitor.printAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, boolean, java.lang.Object)
+ Line 1593) arrayBracketPair.getAnnotations() ==> com.github.javaparser.ast.ArrayBracketPair.getAnnotations()
+ Line 1594) printer.print("[]") ==> com.github.javaparser.ast.visitor.DumpVisitor.SourcePrinter.print(java.lang.String)
+ Line 1600) node.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 1603) everything.addAll(parent.getChildrenNodes()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 1603) parent.getChildrenNodes() ==> com.github.javaparser.ast.Node.getChildrenNodes()
+ Line 1604) sortByBeginPosition(everything) ==> com.github.javaparser.utils.PositionUtils.sortByBeginPosition(java.util.List<T>)
+ Line 1606) everything.size() ==> java.util.List.size()
+ Line 1607) everything.get(i) ==> java.util.List.get(int)
+ Line 1612) everything.get(i) ==> java.util.List.get(int)
+ Line 1615) everything.get(i) ==> java.util.List.get(int)
+ Line 1617) nodeToPrint.getClass() ==> java.lang.Object.getClass()
+ Line 1618) nodeToPrint.accept(this, null) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1625) everything.addAll(node.getChildrenNodes()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 1625) node.getChildrenNodes() ==> com.github.javaparser.ast.Node.getChildrenNodes()
+ Line 1626) sortByBeginPosition(everything) ==> com.github.javaparser.utils.PositionUtils.sortByBeginPosition(java.util.List<T>)
+ Line 1627) everything.isEmpty() ==> java.util.List.isEmpty()
+ Line 1633) everything.size() ==> java.util.List.size()
+ Line 1634) everything.get(everything.size() - 1 - commentsAtEnd) ==> java.util.List.get(int)
+ Line 1634) everything.size() ==> java.util.List.size()
+ Line 1641) everything.get(everything.size() - commentsAtEnd + i).accept(this, null) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 1641) everything.get(everything.size() - commentsAtEnd + i) ==> java.util.List.get(int)
+ Line 1641) everything.size() ==> java.util.List.size()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_EqualsVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_EqualsVisitor.txt
new file mode 100644
index 000000000..1b5dfcfa9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_EqualsVisitor.txt
@@ -0,0 +1,619 @@
+ Line 111) SINGLETON.nodeEquals(n1, n2) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 123) nodeEquals(n1.getComment(), n2.getComment()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 123) n1.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 123) n2.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 126) nodesEquals(n1.getOrphanComments(), n2.getOrphanComments()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 126) n1.getOrphanComments() ==> com.github.javaparser.ast.Node.getOrphanComments()
+ Line 126) n2.getOrphanComments() ==> com.github.javaparser.ast.Node.getOrphanComments()
+ Line 135) nodes1.size() ==> java.util.List.size()
+ Line 135) nodes2.size() ==> java.util.List.size()
+ Line 138) nodes1.size() ==> java.util.List.size()
+ Line 139) nodeEquals(nodes1.get(i), nodes2.get(i)) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 139) nodes1.get(i) ==> java.util.List.get(int)
+ Line 139) nodes2.get(i) ==> java.util.List.get(int)
+ Line 153) n1.getClass() ==> java.lang.Object.getClass()
+ Line 153) n2.getClass() ==> java.lang.Object.getClass()
+ Line 156) commonNodeEquality(n1, n2) ==> com.github.javaparser.ast.visitor.EqualsVisitor.commonNodeEquality(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node)
+ Line 159) n1.accept(this, n2) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 169) n1.equals(n2) ==> java.lang.Object.equals(java.lang.Object)
+ Line 175) nodeEquals(n1.getPackage(), n2.getPackage()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 175) n1.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 175) n2.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 179) nodesEquals(n1.getImports(), n2.getImports()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 179) n1.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 179) n2.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 183) nodesEquals(n1.getTypes(), n2.getTypes()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 183) n1.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 183) n2.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 187) nodesEquals(n1.getComments(), n2.getComments()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 187) n1.getComments() ==> com.github.javaparser.ast.CompilationUnit.getComments()
+ Line 187) n2.getComments() ==> com.github.javaparser.ast.CompilationUnit.getComments()
+ Line 197) nodeEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 197) n1.getName() ==> com.github.javaparser.ast.PackageDeclaration.getName()
+ Line 197) n2.getName() ==> com.github.javaparser.ast.PackageDeclaration.getName()
+ Line 201) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 201) n1.getAnnotations() ==> com.github.javaparser.ast.PackageDeclaration.getAnnotations()
+ Line 201) n2.getAnnotations() ==> com.github.javaparser.ast.PackageDeclaration.getAnnotations()
+ Line 211) nodeEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 211) n1.getName() ==> com.github.javaparser.ast.ImportDeclaration.getName()
+ Line 211) n2.getName() ==> com.github.javaparser.ast.ImportDeclaration.getName()
+ Line 221) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 221) n1.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 221) n2.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 225) nodesEquals(n1.getTypeBound(), n2.getTypeBound()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 225) n1.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 225) n2.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 228) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 228) n1.getAnnotations() ==> com.github.javaparser.ast.type.TypeParameter.getAnnotations()
+ Line 228) n2.getAnnotations() ==> com.github.javaparser.ast.type.TypeParameter.getAnnotations()
+ Line 237) objEquals(n1.getContent(), n2.getContent()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 237) n1.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 237) n2.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 241) objEquals(n1.getBegin().line, n2.getBegin().line) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 241) n1.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 241) n2.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 251) objEquals(n1.getContent(), n2.getContent()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 251) n1.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 251) n2.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 255) objEquals(n1.getBegin().line, n2.getBegin().line) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 255) n1.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 255) n2.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 267) n1.getModifiers().equals(n2.getModifiers()) ==> java.util.AbstractSet.equals(java.lang.Object)
+ Line 267) n1.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 267) n2.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 271) n1.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 271) n2.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 275) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 275) n1.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 275) n2.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 279) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 279) n1.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 279) n2.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 283) nodesEquals(n1.getTypeParameters(), n2.getTypeParameters()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 283) n1.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 283) n2.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 287) nodesEquals(n1.getExtends(), n2.getExtends()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 287) n1.getExtends() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtends()
+ Line 287) n2.getExtends() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtends()
+ Line 291) nodesEquals(n1.getImplements(), n2.getImplements()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 291) n1.getImplements() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplements()
+ Line 291) n2.getImplements() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplements()
+ Line 295) nodesEquals(n1.getMembers(), n2.getMembers()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 295) n1.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 295) n2.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 307) n1.getModifiers().equals(n2.getModifiers()) ==> java.util.AbstractSet.equals(java.lang.Object)
+ Line 307) n1.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 307) n2.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 311) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 311) n1.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 311) n2.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 315) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 315) n1.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 315) n2.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 319) nodesEquals(n1.getImplements(), n2.getImplements()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 319) n1.getImplements() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplements()
+ Line 319) n2.getImplements() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplements()
+ Line 323) nodesEquals(n1.getEntries(), n2.getEntries()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 323) n1.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 323) n2.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 327) nodesEquals(n1.getMembers(), n2.getMembers()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 327) n1.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 327) n2.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 343) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 343) n1.getName() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getName()
+ Line 343) n2.getName() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getName()
+ Line 347) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 347) n1.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 347) n2.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 351) nodesEquals(n1.getArgs(), n2.getArgs()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 351) n1.getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 351) n2.getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 355) nodesEquals(n1.getClassBody(), n2.getClassBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 355) n1.getClassBody() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getClassBody()
+ Line 355) n2.getClassBody() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getClassBody()
+ Line 367) n1.getModifiers().equals(n2.getModifiers()) ==> java.util.AbstractSet.equals(java.lang.Object)
+ Line 367) n1.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 367) n2.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 371) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 371) n1.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 371) n2.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 375) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 375) n1.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 375) n2.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 379) nodesEquals(n1.getMembers(), n2.getMembers()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 379) n1.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 379) n2.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 391) n1.getModifiers().equals(n2.getModifiers()) ==> java.util.AbstractSet.equals(java.lang.Object)
+ Line 391) n1.getModifiers() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getModifiers()
+ Line 391) n2.getModifiers() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getModifiers()
+ Line 395) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 395) n1.getName() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getName()
+ Line 395) n2.getName() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getName()
+ Line 399) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 399) n1.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 399) n2.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 403) nodeEquals(n1.getDefaultValue(), n2.getDefaultValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 403) n1.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 403) n2.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 407) nodeEquals(n1.getType(), n2.getType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 407) n1.getType() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getType()
+ Line 407) n2.getType() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getType()
+ Line 419) n1.getModifiers().equals(n2.getModifiers()) ==> java.util.AbstractSet.equals(java.lang.Object)
+ Line 419) n1.getModifiers() ==> com.github.javaparser.ast.body.FieldDeclaration.getModifiers()
+ Line 419) n2.getModifiers() ==> com.github.javaparser.ast.body.FieldDeclaration.getModifiers()
+ Line 423) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 423) n1.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 423) n2.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 427) nodeEquals(n1.getElementType(), n2.getElementType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 427) n1.getElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getElementType()
+ Line 427) n2.getElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getElementType()
+ Line 431) nodesEquals(n1.getVariables(), n2.getVariables()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 431) n1.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 431) n2.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 435) nodesEquals(n1.getArrayBracketPairsAfterElementType(), n2.getArrayBracketPairsAfterElementType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 435) n1.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getArrayBracketPairsAfterElementType()
+ Line 435) n2.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getArrayBracketPairsAfterElementType()
+ Line 445) nodeEquals(n1.getId(), n2.getId()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 445) n1.getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 445) n2.getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 449) nodeEquals(n1.getInit(), n2.getInit()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 449) n1.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 449) n2.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 459) nodesEquals(n1.getArrayBracketPairsAfterId(), n2.getArrayBracketPairsAfterId()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 459) n1.getArrayBracketPairsAfterId() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getArrayBracketPairsAfterId()
+ Line 459) n2.getArrayBracketPairsAfterId() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getArrayBracketPairsAfterId()
+ Line 463) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 463) n1.getName() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getName()
+ Line 463) n2.getName() ==> com.github.javaparser.ast.body.VariableDeclaratorId.getName()
+ Line 475) n1.getModifiers().equals(n2.getModifiers()) ==> java.util.AbstractSet.equals(java.lang.Object)
+ Line 475) n1.getModifiers() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()
+ Line 475) n2.getModifiers() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()
+ Line 479) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 479) n1.getName() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getName()
+ Line 479) n2.getName() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getName()
+ Line 483) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 483) n1.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 483) n2.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 487) nodeEquals(n1.getBody(), n2.getBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 487) n1.getBody() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getBody()
+ Line 487) n2.getBody() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getBody()
+ Line 491) nodesEquals(n1.getParameters(), n2.getParameters()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 491) n1.getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 491) n2.getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 495) nodesEquals(n1.getThrows(), n2.getThrows()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 495) n1.getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 495) n2.getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 499) nodesEquals(n1.getTypeParameters(), n2.getTypeParameters()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 499) n1.getTypeParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()
+ Line 499) n2.getTypeParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()
+ Line 511) n1.getModifiers().equals(n2.getModifiers()) ==> java.util.AbstractSet.equals(java.lang.Object)
+ Line 511) n1.getModifiers() ==> com.github.javaparser.ast.body.MethodDeclaration.getModifiers()
+ Line 511) n2.getModifiers() ==> com.github.javaparser.ast.body.MethodDeclaration.getModifiers()
+ Line 515) nodesEquals(n1.getArrayBracketPairsAfterElementType(), n2.getArrayBracketPairsAfterElementType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 515) n1.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getArrayBracketPairsAfterElementType()
+ Line 515) n2.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getArrayBracketPairsAfterElementType()
+ Line 519) nodesEquals(n1.getArrayBracketPairsAfterParameterList(), n2.getArrayBracketPairsAfterParameterList()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 519) n1.getArrayBracketPairsAfterParameterList() ==> com.github.javaparser.ast.body.MethodDeclaration.getArrayBracketPairsAfterParameterList()
+ Line 519) n2.getArrayBracketPairsAfterParameterList() ==> com.github.javaparser.ast.body.MethodDeclaration.getArrayBracketPairsAfterParameterList()
+ Line 523) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 523) n1.getName() ==> com.github.javaparser.ast.body.MethodDeclaration.getName()
+ Line 523) n2.getName() ==> com.github.javaparser.ast.body.MethodDeclaration.getName()
+ Line 527) nodeEquals(n1.getElementType(), n2.getElementType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 527) n1.getElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getElementType()
+ Line 527) n2.getElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getElementType()
+ Line 531) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 531) n1.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 531) n2.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 535) nodeEquals(n1.getBody(), n2.getBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 535) n1.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 535) n2.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 539) nodesEquals(n1.getParameters(), n2.getParameters()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 539) n1.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 539) n2.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 543) nodesEquals(n1.getThrows(), n2.getThrows()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 543) n1.getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 543) n2.getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 547) nodesEquals(n1.getTypeParameters(), n2.getTypeParameters()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 547) n1.getTypeParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getTypeParameters()
+ Line 547) n2.getTypeParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getTypeParameters()
+ Line 550) n1.isDefault() ==> com.github.javaparser.ast.body.MethodDeclaration.isDefault()
+ Line 550) n2.isDefault() ==> com.github.javaparser.ast.body.MethodDeclaration.isDefault()
+ Line 558) nodeEquals(n1.getElementType(), n2.getElementType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 558) n1.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 558) n2.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 562) nodesEquals(n1.getArrayBracketPairsAfterElementType(), n2.getArrayBracketPairsAfterElementType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 562) n1.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.Parameter.getArrayBracketPairsAfterElementType()
+ Line 562) n2.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.body.Parameter.getArrayBracketPairsAfterElementType()
+ Line 566) n1.getModifiers().equals(n2.getModifiers()) ==> java.util.AbstractSet.equals(java.lang.Object)
+ Line 566) n1.getModifiers() ==> com.github.javaparser.ast.body.Parameter.getModifiers()
+ Line 566) n2.getModifiers() ==> com.github.javaparser.ast.body.Parameter.getModifiers()
+ Line 570) nodeEquals(n1.getId(), n2.getId()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 570) n1.getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 570) n2.getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 574) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 574) n1.getAnnotations() ==> com.github.javaparser.ast.body.Parameter.getAnnotations()
+ Line 574) n2.getAnnotations() ==> com.github.javaparser.ast.body.Parameter.getAnnotations()
+ Line 588) nodeEquals(n1.getBlock(), n2.getBlock()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 588) n1.getBlock() ==> com.github.javaparser.ast.body.InitializerDeclaration.getBlock()
+ Line 588) n2.getBlock() ==> com.github.javaparser.ast.body.InitializerDeclaration.getBlock()
+ Line 592) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 592) n1.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 592) n2.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 602) objEquals(n1.getContent(), n2.getContent()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 602) n1.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 602) n2.getContent() ==> com.github.javaparser.ast.comments.Comment.getContent()
+ Line 612) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 612) n1.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 612) n2.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 616) nodeEquals(n1.getScope(), n2.getScope()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 616) n1.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 616) n2.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 620) nodesEquals(n1.getTypeArguments(), n2.getTypeArguments()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 620) n1.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 620) n2.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 624) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 624) n1.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 624) n2.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 634) n1.getType() ==> com.github.javaparser.ast.type.PrimitiveType.getType()
+ Line 634) n2.getType() ==> com.github.javaparser.ast.type.PrimitiveType.getType()
+ Line 637) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 637) n1.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 637) n2.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 647) nodeEquals(n1.getComponentType(), n2.getComponentType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 647) n1.getComponentType() ==> com.github.javaparser.ast.type.ArrayType.getComponentType()
+ Line 647) n2.getComponentType() ==> com.github.javaparser.ast.type.ArrayType.getComponentType()
+ Line 650) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 650) n1.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 650) n2.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 660) nodeEquals(n1.getDimension(), n2.getDimension()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 660) n1.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 660) n2.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 663) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 663) n1.getAnnotations() ==> com.github.javaparser.ast.ArrayCreationLevel.getAnnotations()
+ Line 663) n2.getAnnotations() ==> com.github.javaparser.ast.ArrayCreationLevel.getAnnotations()
+ Line 672) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 672) n1.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 672) n2.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 676) n1.getElements() ==> com.github.javaparser.ast.type.IntersectionType.getElements()
+ Line 677) n2.getElements() ==> com.github.javaparser.ast.type.IntersectionType.getElements()
+ Line 680) n1Elements.size() ==> java.util.List.size()
+ Line 680) n2Elements.size() ==> java.util.List.size()
+ Line 686) aux.accept(this, n2Elements.get(i)) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 686) n2Elements.get(i) ==> java.util.List.get(int)
+ Line 701) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 701) n1.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 701) n2.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 705) n1.getElements() ==> com.github.javaparser.ast.type.UnionType.getElements()
+ Line 706) n2.getElements() ==> com.github.javaparser.ast.type.UnionType.getElements()
+ Line 709) n1Elements.size() ==> java.util.List.size()
+ Line 709) n2Elements.size() ==> java.util.List.size()
+ Line 715) aux.accept(this, n2Elements.get(i)) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 715) n2Elements.get(i) ==> java.util.List.get(int)
+ Line 730) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 730) n1.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 730) n2.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 739) nodeEquals(n1.getExtends(), n2.getExtends()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 739) n1.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 739) n2.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 743) nodeEquals(n1.getSuper(), n2.getSuper()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 743) n1.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 743) n2.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 746) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 746) n1.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 746) n2.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 759) nodeEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 759) n1.getName() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getName()
+ Line 759) n2.getName() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getName()
+ Line 763) nodeEquals(n1.getIndex(), n2.getIndex()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 763) n1.getIndex() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getIndex()
+ Line 763) n2.getIndex() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getIndex()
+ Line 773) nodeEquals(n1.getType(), n2.getType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 773) n1.getType() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getType()
+ Line 773) n2.getType() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getType()
+ Line 777) nodesEquals(n1.getLevels(), n2.getLevels()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 777) n1.getLevels() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getLevels()
+ Line 777) n2.getLevels() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getLevels()
+ Line 781) nodeEquals(n1.getInitializer(), n2.getInitializer()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 781) n1.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 781) n2.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 791) nodesEquals(n1.getValues(), n2.getValues()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 791) n1.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 791) n2.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 801) n1.getOperator() ==> com.github.javaparser.ast.expr.AssignExpr.getOperator()
+ Line 801) n2.getOperator() ==> com.github.javaparser.ast.expr.AssignExpr.getOperator()
+ Line 805) nodeEquals(n1.getTarget(), n2.getTarget()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 805) n1.getTarget() ==> com.github.javaparser.ast.expr.AssignExpr.getTarget()
+ Line 805) n2.getTarget() ==> com.github.javaparser.ast.expr.AssignExpr.getTarget()
+ Line 809) nodeEquals(n1.getValue(), n2.getValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 809) n1.getValue() ==> com.github.javaparser.ast.expr.AssignExpr.getValue()
+ Line 809) n2.getValue() ==> com.github.javaparser.ast.expr.AssignExpr.getValue()
+ Line 819) n1.getOperator() ==> com.github.javaparser.ast.expr.BinaryExpr.getOperator()
+ Line 819) n2.getOperator() ==> com.github.javaparser.ast.expr.BinaryExpr.getOperator()
+ Line 823) nodeEquals(n1.getLeft(), n2.getLeft()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 823) n1.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 823) n2.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 827) nodeEquals(n1.getRight(), n2.getRight()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 827) n1.getRight() ==> com.github.javaparser.ast.expr.BinaryExpr.getRight()
+ Line 827) n2.getRight() ==> com.github.javaparser.ast.expr.BinaryExpr.getRight()
+ Line 837) nodeEquals(n1.getType(), n2.getType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 837) n1.getType() ==> com.github.javaparser.ast.expr.CastExpr.getType()
+ Line 837) n2.getType() ==> com.github.javaparser.ast.expr.CastExpr.getType()
+ Line 841) nodeEquals(n1.getExpr(), n2.getExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 841) n1.getExpr() ==> com.github.javaparser.ast.expr.CastExpr.getExpr()
+ Line 841) n2.getExpr() ==> com.github.javaparser.ast.expr.CastExpr.getExpr()
+ Line 851) nodeEquals(n1.getType(), n2.getType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 851) n1.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 851) n2.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 861) nodeEquals(n1.getCondition(), n2.getCondition()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 861) n1.getCondition() ==> com.github.javaparser.ast.expr.ConditionalExpr.getCondition()
+ Line 861) n2.getCondition() ==> com.github.javaparser.ast.expr.ConditionalExpr.getCondition()
+ Line 865) nodeEquals(n1.getThenExpr(), n2.getThenExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 865) n1.getThenExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getThenExpr()
+ Line 865) n2.getThenExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getThenExpr()
+ Line 869) nodeEquals(n1.getElseExpr(), n2.getElseExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 869) n1.getElseExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getElseExpr()
+ Line 869) n2.getElseExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getElseExpr()
+ Line 879) nodeEquals(n1.getInner(), n2.getInner()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 879) n1.getInner() ==> com.github.javaparser.ast.expr.EnclosedExpr.getInner()
+ Line 879) n2.getInner() ==> com.github.javaparser.ast.expr.EnclosedExpr.getInner()
+ Line 889) nodeEquals(n1.getScope(), n2.getScope()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 889) n1.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 889) n2.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 893) objEquals(n1.getField(), n2.getField()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 893) n1.getField() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getField()
+ Line 893) n2.getField() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getField()
+ Line 897) nodesEquals(n1.getTypeArguments(), n2.getTypeArguments()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 897) n1.getTypeArguments() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getTypeArguments()
+ Line 897) n2.getTypeArguments() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getTypeArguments()
+ Line 907) nodeEquals(n1.getExpr(), n2.getExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 907) n1.getExpr() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getExpr()
+ Line 907) n2.getExpr() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getExpr()
+ Line 911) nodeEquals(n1.getType(), n2.getType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 911) n1.getType() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getType()
+ Line 911) n2.getType() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getType()
+ Line 921) objEquals(n1.getValue(), n2.getValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 921) n1.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 921) n2.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 931) objEquals(n1.getValue(), n2.getValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 931) n1.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 931) n2.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 941) objEquals(n1.getValue(), n2.getValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 941) n1.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 941) n2.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 951) objEquals(n1.getValue(), n2.getValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 951) n1.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 951) n2.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 961) objEquals(n1.getValue(), n2.getValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 961) n1.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 961) n2.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 971) objEquals(n1.getValue(), n2.getValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 971) n1.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 971) n2.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 981) objEquals(n1.getValue(), n2.getValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 981) n1.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 981) n2.getValue() ==> com.github.javaparser.ast.expr.StringLiteralExpr.getValue()
+ Line 991) n1.getValue() ==> com.github.javaparser.ast.expr.BooleanLiteralExpr.getValue()
+ Line 991) n2.getValue() ==> com.github.javaparser.ast.expr.BooleanLiteralExpr.getValue()
+ Line 1005) nodeEquals(n1.getScope(), n2.getScope()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1005) n1.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 1005) n2.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 1009) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 1009) n1.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 1009) n2.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 1013) nodesEquals(n1.getArgs(), n2.getArgs()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1013) n1.getArgs() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArgs()
+ Line 1013) n2.getArgs() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArgs()
+ Line 1017) nodesEquals(n1.getTypeArguments(), n2.getTypeArguments()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1017) n1.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getTypeArguments()
+ Line 1017) n2.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getTypeArguments()
+ Line 1027) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 1027) n1.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 1027) n2.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 1037) nodeEquals(n1.getScope(), n2.getScope()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1037) n1.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 1037) n2.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 1041) nodeEquals(n1.getType(), n2.getType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1041) n1.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 1041) n2.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 1045) nodesEquals(n1.getAnonymousClassBody(), n2.getAnonymousClassBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1045) n1.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 1045) n2.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 1049) nodesEquals(n1.getArgs(), n2.getArgs()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1049) n1.getArgs() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getArgs()
+ Line 1049) n2.getArgs() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getArgs()
+ Line 1053) nodesEquals(n1.getTypeArguments(), n2.getTypeArguments()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1053) n1.getTypeArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getTypeArguments()
+ Line 1053) n2.getTypeArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getTypeArguments()
+ Line 1063) nodeEquals(n1.getQualifier(), n2.getQualifier()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1063) n1.getQualifier() ==> com.github.javaparser.ast.expr.QualifiedNameExpr.getQualifier()
+ Line 1063) n2.getQualifier() ==> com.github.javaparser.ast.expr.QualifiedNameExpr.getQualifier()
+ Line 1067) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 1067) n1.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 1067) n2.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 1077) nodeEquals(n1.getClassExpr(), n2.getClassExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1077) n1.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 1077) n2.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 1087) nodeEquals(n1.getClassExpr(), n2.getClassExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1087) n1.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 1087) n2.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 1097) n1.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.getOperator()
+ Line 1097) n2.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.getOperator()
+ Line 1101) nodeEquals(n1.getExpr(), n2.getExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1101) n1.getExpr() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpr()
+ Line 1101) n2.getExpr() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpr()
+ Line 1111) n1.getModifiers().equals(n2.getModifiers()) ==> java.util.AbstractSet.equals(java.lang.Object)
+ Line 1111) n1.getModifiers() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getModifiers()
+ Line 1111) n2.getModifiers() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getModifiers()
+ Line 1115) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1115) n1.getAnnotations() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getAnnotations()
+ Line 1115) n2.getAnnotations() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getAnnotations()
+ Line 1119) nodeEquals(n1.getElementType(), n2.getElementType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1119) n1.getElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getElementType()
+ Line 1119) n2.getElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getElementType()
+ Line 1123) nodesEquals(n1.getVariables(), n2.getVariables()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1123) n1.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 1123) n2.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 1127) nodesEquals(n1.getArrayBracketPairsAfterElementType(), n2.getArrayBracketPairsAfterElementType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1127) n1.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getArrayBracketPairsAfterElementType()
+ Line 1127) n2.getArrayBracketPairsAfterElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getArrayBracketPairsAfterElementType()
+ Line 1137) nodeEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1137) n1.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1137) n2.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1147) nodeEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1147) n1.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1147) n2.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1151) nodeEquals(n1.getMemberValue(), n2.getMemberValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1151) n1.getMemberValue() ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr.getMemberValue()
+ Line 1151) n2.getMemberValue() ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr.getMemberValue()
+ Line 1161) nodeEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1161) n1.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1161) n2.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1165) nodesEquals(n1.getPairs(), n2.getPairs()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1165) n1.getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 1165) n2.getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 1175) objEquals(n1.getName(), n2.getName()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 1175) n1.getName() ==> com.github.javaparser.ast.expr.MemberValuePair.getName()
+ Line 1175) n2.getName() ==> com.github.javaparser.ast.expr.MemberValuePair.getName()
+ Line 1179) nodeEquals(n1.getValue(), n2.getValue()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1179) n1.getValue() ==> com.github.javaparser.ast.expr.MemberValuePair.getValue()
+ Line 1179) n2.getValue() ==> com.github.javaparser.ast.expr.MemberValuePair.getValue()
+ Line 1189) nodeEquals(n1.getExpr(), n2.getExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1189) n1.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 1189) n2.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 1193) nodesEquals(n1.getArgs(), n2.getArgs()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1193) n1.getArgs() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getArgs()
+ Line 1193) n2.getArgs() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getArgs()
+ Line 1197) nodesEquals(n1.getTypeArguments(), n2.getTypeArguments()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1197) n1.getTypeArguments() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getTypeArguments()
+ Line 1197) n2.getTypeArguments() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getTypeArguments()
+ Line 1207) nodeEquals(n1.getTypeDeclaration(), n2.getTypeDeclaration()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1207) n1.getTypeDeclaration() ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt.getTypeDeclaration()
+ Line 1207) n2.getTypeDeclaration() ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt.getTypeDeclaration()
+ Line 1217) nodeEquals(n1.getCheck(), n2.getCheck()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1217) n1.getCheck() ==> com.github.javaparser.ast.stmt.AssertStmt.getCheck()
+ Line 1217) n2.getCheck() ==> com.github.javaparser.ast.stmt.AssertStmt.getCheck()
+ Line 1221) nodeEquals(n1.getMessage(), n2.getMessage()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1221) n1.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 1221) n2.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 1231) nodesEquals(n1.getStmts(), n2.getStmts()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1231) n1.getStmts() ==> com.github.javaparser.ast.stmt.BlockStmt.getStmts()
+ Line 1231) n2.getStmts() ==> com.github.javaparser.ast.stmt.BlockStmt.getStmts()
+ Line 1241) nodeEquals(n1.getStmt(), n2.getStmt()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1241) n1.getStmt() ==> com.github.javaparser.ast.stmt.LabeledStmt.getStmt()
+ Line 1241) n2.getStmt() ==> com.github.javaparser.ast.stmt.LabeledStmt.getStmt()
+ Line 1255) nodeEquals(n1.getExpression(), n2.getExpression()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1255) n1.getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 1255) n2.getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 1265) nodeEquals(n1.getSelector(), n2.getSelector()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1265) n1.getSelector() ==> com.github.javaparser.ast.stmt.SwitchStmt.getSelector()
+ Line 1265) n2.getSelector() ==> com.github.javaparser.ast.stmt.SwitchStmt.getSelector()
+ Line 1269) nodesEquals(n1.getEntries(), n2.getEntries()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1269) n1.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 1269) n2.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 1279) nodeEquals(n1.getLabel(), n2.getLabel()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1279) n1.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 1279) n2.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 1283) nodesEquals(n1.getStmts(), n2.getStmts()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1283) n1.getStmts() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStmts()
+ Line 1283) n2.getStmts() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStmts()
+ Line 1293) objEquals(n1.getId(), n2.getId()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 1293) n1.getId() ==> com.github.javaparser.ast.stmt.BreakStmt.getId()
+ Line 1293) n2.getId() ==> com.github.javaparser.ast.stmt.BreakStmt.getId()
+ Line 1303) nodeEquals(n1.getExpr(), n2.getExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1303) n1.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 1303) n2.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 1313) nodeEquals(n1.getCondition(), n2.getCondition()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1313) n1.getCondition() ==> com.github.javaparser.ast.stmt.IfStmt.getCondition()
+ Line 1313) n2.getCondition() ==> com.github.javaparser.ast.stmt.IfStmt.getCondition()
+ Line 1317) nodeEquals(n1.getThenStmt(), n2.getThenStmt()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1317) n1.getThenStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getThenStmt()
+ Line 1317) n2.getThenStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getThenStmt()
+ Line 1321) nodeEquals(n1.getElseStmt(), n2.getElseStmt()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1321) n1.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 1321) n2.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 1331) nodeEquals(n1.getCondition(), n2.getCondition()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1331) n1.getCondition() ==> com.github.javaparser.ast.stmt.WhileStmt.getCondition()
+ Line 1331) n2.getCondition() ==> com.github.javaparser.ast.stmt.WhileStmt.getCondition()
+ Line 1335) nodeEquals(n1.getBody(), n2.getBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1335) n1.getBody() ==> com.github.javaparser.ast.stmt.WhileStmt.getBody()
+ Line 1335) n2.getBody() ==> com.github.javaparser.ast.stmt.WhileStmt.getBody()
+ Line 1345) objEquals(n1.getId(), n2.getId()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 1345) n1.getId() ==> com.github.javaparser.ast.stmt.ContinueStmt.getId()
+ Line 1345) n2.getId() ==> com.github.javaparser.ast.stmt.ContinueStmt.getId()
+ Line 1355) nodeEquals(n1.getBody(), n2.getBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1355) n1.getBody() ==> com.github.javaparser.ast.stmt.DoStmt.getBody()
+ Line 1355) n2.getBody() ==> com.github.javaparser.ast.stmt.DoStmt.getBody()
+ Line 1359) nodeEquals(n1.getCondition(), n2.getCondition()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1359) n1.getCondition() ==> com.github.javaparser.ast.stmt.DoStmt.getCondition()
+ Line 1359) n2.getCondition() ==> com.github.javaparser.ast.stmt.DoStmt.getCondition()
+ Line 1369) nodeEquals(n1.getVariable(), n2.getVariable()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1369) n1.getVariable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getVariable()
+ Line 1369) n2.getVariable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getVariable()
+ Line 1373) nodeEquals(n1.getIterable(), n2.getIterable()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1373) n1.getIterable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getIterable()
+ Line 1373) n2.getIterable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getIterable()
+ Line 1377) nodeEquals(n1.getBody(), n2.getBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1377) n1.getBody() ==> com.github.javaparser.ast.stmt.ForeachStmt.getBody()
+ Line 1377) n2.getBody() ==> com.github.javaparser.ast.stmt.ForeachStmt.getBody()
+ Line 1387) nodesEquals(n1.getInit(), n2.getInit()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1387) n1.getInit() ==> com.github.javaparser.ast.stmt.ForStmt.getInit()
+ Line 1387) n2.getInit() ==> com.github.javaparser.ast.stmt.ForStmt.getInit()
+ Line 1391) nodeEquals(n1.getCompare(), n2.getCompare()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1391) n1.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 1391) n2.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 1395) nodesEquals(n1.getUpdate(), n2.getUpdate()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1395) n1.getUpdate() ==> com.github.javaparser.ast.stmt.ForStmt.getUpdate()
+ Line 1395) n2.getUpdate() ==> com.github.javaparser.ast.stmt.ForStmt.getUpdate()
+ Line 1399) nodeEquals(n1.getBody(), n2.getBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1399) n1.getBody() ==> com.github.javaparser.ast.stmt.ForStmt.getBody()
+ Line 1399) n2.getBody() ==> com.github.javaparser.ast.stmt.ForStmt.getBody()
+ Line 1409) nodeEquals(n1.getExpr(), n2.getExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1409) n1.getExpr() ==> com.github.javaparser.ast.stmt.ThrowStmt.getExpr()
+ Line 1409) n2.getExpr() ==> com.github.javaparser.ast.stmt.ThrowStmt.getExpr()
+ Line 1419) nodeEquals(n1.getExpr(), n2.getExpr()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1419) n1.getExpr() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getExpr()
+ Line 1419) n2.getExpr() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getExpr()
+ Line 1423) nodeEquals(n1.getBody(), n2.getBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1423) n1.getBody() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getBody()
+ Line 1423) n2.getBody() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getBody()
+ Line 1433) nodeEquals(n1.getTryBlock(), n2.getTryBlock()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1433) n1.getTryBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getTryBlock()
+ Line 1433) n2.getTryBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getTryBlock()
+ Line 1437) nodesEquals(n1.getCatchs(), n2.getCatchs()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1437) n1.getCatchs() ==> com.github.javaparser.ast.stmt.TryStmt.getCatchs()
+ Line 1437) n2.getCatchs() ==> com.github.javaparser.ast.stmt.TryStmt.getCatchs()
+ Line 1441) nodesEquals(n1.getResources(), n2.getResources()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1441) n1.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 1441) n2.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 1445) nodeEquals(n1.getFinallyBlock(), n2.getFinallyBlock()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1445) n1.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 1445) n2.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 1455) nodeEquals(n1.getParam(), n2.getParam()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1455) n1.getParam() ==> com.github.javaparser.ast.stmt.CatchClause.getParam()
+ Line 1455) n2.getParam() ==> com.github.javaparser.ast.stmt.CatchClause.getParam()
+ Line 1459) nodeEquals(n1.getBody(), n2.getBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1459) n1.getBody() ==> com.github.javaparser.ast.stmt.CatchClause.getBody()
+ Line 1459) n2.getBody() ==> com.github.javaparser.ast.stmt.CatchClause.getBody()
+ Line 1469) nodesEquals(n1.getParameters(), n2.getParameters()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1469) n1.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 1469) n2.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 1472) n1.isParametersEnclosed() ==> com.github.javaparser.ast.expr.LambdaExpr.isParametersEnclosed()
+ Line 1472) n2.isParametersEnclosed() ==> com.github.javaparser.ast.expr.LambdaExpr.isParametersEnclosed()
+ Line 1475) nodeEquals(n1.getBody(), n2.getBody()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1475) n1.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 1475) n2.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 1484) nodeEquals(n1.getScope(), n2.getScope()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1484) n1.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 1484) n2.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 1487) nodesEquals(n1.getTypeArguments(), n2.getTypeArguments()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1487) n1.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getTypeArguments()
+ Line 1487) n2.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getTypeArguments()
+ Line 1490) objEquals(n1.getIdentifier(), n2.getIdentifier()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.objEquals(java.lang.Object, java.lang.Object)
+ Line 1490) n1.getIdentifier() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getIdentifier()
+ Line 1490) n2.getIdentifier() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getIdentifier()
+ Line 1499) nodeEquals(n.getType(), n2.getType()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodeEquals(T, T)
+ Line 1499) n.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 1499) n2.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 1508) nodesEquals(n1.getAnnotations(), n2.getAnnotations()) ==> com.github.javaparser.ast.visitor.EqualsVisitor.nodesEquals(java.util.List<T>, java.util.List<T>)
+ Line 1508) n1.getAnnotations() ==> com.github.javaparser.ast.ArrayBracketPair.getAnnotations()
+ Line 1508) n2.getAnnotations() ==> com.github.javaparser.ast.ArrayBracketPair.getAnnotations()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_GenericVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_GenericVisitor.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_GenericVisitor.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_GenericVisitorAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_GenericVisitorAdapter.txt
new file mode 100644
index 000000000..beee864ec
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_GenericVisitorAdapter.txt
@@ -0,0 +1,451 @@
+ Line 43) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 44) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 45) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 47) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 54) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 55) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 57) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 69) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 70) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 71) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 73) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 81) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 81) n.getType() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getType()
+ Line 86) n.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 88) n.getDefaultValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 88) n.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 99) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 101) n.getName().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 101) n.getName() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getName()
+ Line 107) n.getIndex().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 107) n.getIndex() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getIndex()
+ Line 117) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 119) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 119) n.getType() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getType()
+ Line 124) n.getLevels() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getLevels()
+ Line 125) level.accept(this, arg) ==> com.github.javaparser.ast.ArrayCreationLevel.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 130) n.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 131) n.getInitializer().accept(this, arg) ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 131) n.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 141) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 142) n.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 143) n.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 145) expr.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 157) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 159) n.getCheck().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 159) n.getCheck() ==> com.github.javaparser.ast.stmt.AssertStmt.getCheck()
+ Line 164) n.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 166) n.getMessage().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 166) n.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 177) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 179) n.getTarget().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 179) n.getTarget() ==> com.github.javaparser.ast.expr.AssignExpr.getTarget()
+ Line 185) n.getValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 185) n.getValue() ==> com.github.javaparser.ast.expr.AssignExpr.getValue()
+ Line 195) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 197) n.getLeft().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 197) n.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 203) n.getRight().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 203) n.getRight() ==> com.github.javaparser.ast.expr.BinaryExpr.getRight()
+ Line 213) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 214) n.getStmts() ==> com.github.javaparser.ast.stmt.BlockStmt.getStmts()
+ Line 215) n.getStmts() ==> com.github.javaparser.ast.stmt.BlockStmt.getStmts()
+ Line 217) s.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 230) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 236) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 242) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 244) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 244) n.getType() ==> com.github.javaparser.ast.expr.CastExpr.getType()
+ Line 250) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 250) n.getExpr() ==> com.github.javaparser.ast.expr.CastExpr.getExpr()
+ Line 260) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 262) n.getParam().accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 262) n.getParam() ==> com.github.javaparser.ast.stmt.CatchClause.getParam()
+ Line 268) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 268) n.getBody() ==> com.github.javaparser.ast.stmt.CatchClause.getBody()
+ Line 279) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 285) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 287) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 287) n.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 297) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 298) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 299) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 301) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 308) n.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 309) n.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 311) t.accept(this, arg) ==> com.github.javaparser.ast.type.TypeParameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 318) n.getExtends() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtends()
+ Line 319) n.getExtends() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtends()
+ Line 321) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 329) n.getImplements() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplements()
+ Line 330) n.getImplements() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplements()
+ Line 332) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 339) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 340) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 342) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 354) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 355) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 356) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 361) n.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 363) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 363) n.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 369) n.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 370) n.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 371) type.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 382) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 383) n.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 385) n.getPackage().accept(this, arg) ==> com.github.javaparser.ast.PackageDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 385) n.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 391) n.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 392) n.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 394) i.accept(this, arg) ==> com.github.javaparser.ast.ImportDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 401) n.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 402) n.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 404) typeDeclaration.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 416) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 418) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 418) n.getCondition() ==> com.github.javaparser.ast.expr.ConditionalExpr.getCondition()
+ Line 424) n.getThenExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 424) n.getThenExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getThenExpr()
+ Line 430) n.getElseExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 430) n.getElseExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getElseExpr()
+ Line 440) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 441) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 442) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 444) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 451) n.getTypeParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()
+ Line 452) n.getTypeParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()
+ Line 454) t.accept(this, arg) ==> com.github.javaparser.ast.type.TypeParameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 461) n.getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 462) n.getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 464) p.accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 471) n.getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 472) n.getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 474) name.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 482) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 482) n.getBody() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getBody()
+ Line 492) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 498) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 500) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 500) n.getBody() ==> com.github.javaparser.ast.stmt.DoStmt.getBody()
+ Line 506) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 506) n.getCondition() ==> com.github.javaparser.ast.stmt.DoStmt.getCondition()
+ Line 516) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 522) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 528) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 534) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 540) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 542) n.getInner().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 542) n.getInner() ==> com.github.javaparser.ast.expr.EnclosedExpr.getInner()
+ Line 552) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 553) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 554) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 556) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 563) n.getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 564) n.getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 566) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 573) n.getClassBody() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getClassBody()
+ Line 574) n.getClassBody() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getClassBody()
+ Line 576) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 588) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 589) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 590) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 592) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 599) n.getImplements() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplements()
+ Line 600) n.getImplements() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplements()
+ Line 602) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 609) n.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 610) n.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 612) e.accept(this, arg) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 619) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 620) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 622) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 634) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 635) n.isThis() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.isThis()
+ Line 635) n.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 637) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 637) n.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 643) n.getTypeArguments() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getTypeArguments()
+ Line 644) n.getTypeArguments() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getTypeArguments()
+ Line 645) type.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 651) n.getArgs() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getArgs()
+ Line 652) n.getArgs() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getArgs()
+ Line 654) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 666) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 668) n.getExpression().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 668) n.getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 678) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 680) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 680) n.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 686) n.getTypeArguments() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getTypeArguments()
+ Line 687) n.getTypeArguments() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getTypeArguments()
+ Line 688) type.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 700) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 701) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 702) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 704) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 712) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 712) n.getElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getElementType()
+ Line 717) n.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 719) var.accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclarator.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 730) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 732) n.getVariable().accept(this, arg) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 732) n.getVariable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getVariable()
+ Line 738) n.getIterable().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 738) n.getIterable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getIterable()
+ Line 744) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 744) n.getBody() ==> com.github.javaparser.ast.stmt.ForeachStmt.getBody()
+ Line 754) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 755) n.getInit() ==> com.github.javaparser.ast.stmt.ForStmt.getInit()
+ Line 756) n.getInit() ==> com.github.javaparser.ast.stmt.ForStmt.getInit()
+ Line 758) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 765) n.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 767) n.getCompare().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 767) n.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 773) n.getUpdate() ==> com.github.javaparser.ast.stmt.ForStmt.getUpdate()
+ Line 774) n.getUpdate() ==> com.github.javaparser.ast.stmt.ForStmt.getUpdate()
+ Line 776) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 784) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 784) n.getBody() ==> com.github.javaparser.ast.stmt.ForStmt.getBody()
+ Line 794) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 796) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 796) n.getCondition() ==> com.github.javaparser.ast.stmt.IfStmt.getCondition()
+ Line 802) n.getThenStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 802) n.getThenStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getThenStmt()
+ Line 807) n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 809) n.getElseStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 809) n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 820) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 822) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 822) n.getName() ==> com.github.javaparser.ast.ImportDeclaration.getName()
+ Line 832) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 834) n.getBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 834) n.getBlock() ==> com.github.javaparser.ast.body.InitializerDeclaration.getBlock()
+ Line 844) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 846) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 846) n.getExpr() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getExpr()
+ Line 852) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 852) n.getType() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getType()
+ Line 862) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 868) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 879) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 881) n.getStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 881) n.getStmt() ==> com.github.javaparser.ast.stmt.LabeledStmt.getStmt()
+ Line 891) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 897) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 903) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 905) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 905) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 915) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 917) n.getValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 917) n.getValue() ==> com.github.javaparser.ast.expr.MemberValuePair.getValue()
+ Line 927) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 928) n.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 930) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 930) n.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 936) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getTypeArguments()
+ Line 937) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getTypeArguments()
+ Line 938) type.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 944) n.getArgs() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArgs()
+ Line 945) n.getArgs() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArgs()
+ Line 947) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 959) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 960) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 961) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 963) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 970) n.getTypeParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getTypeParameters()
+ Line 971) n.getTypeParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getTypeParameters()
+ Line 973) t.accept(this, arg) ==> com.github.javaparser.ast.type.TypeParameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 981) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 981) n.getElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getElementType()
+ Line 986) n.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 987) n.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 989) p.accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 996) n.getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 997) n.getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 999) name.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1006) n.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 1008) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1008) n.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 1019) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1025) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1027) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1027) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1032) n.getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 1033) n.getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 1035) m.accept(this, arg) ==> com.github.javaparser.ast.expr.MemberValuePair.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1047) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1053) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1054) n.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 1056) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1056) n.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 1062) n.getTypeArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getTypeArguments()
+ Line 1063) n.getTypeArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getTypeArguments()
+ Line 1064) type.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1071) n.getType().accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1071) n.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 1076) n.getArgs() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getArgs()
+ Line 1077) n.getArgs() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getArgs()
+ Line 1079) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1086) n.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 1087) n.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 1089) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1101) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1102) n.getAnnotations() ==> com.github.javaparser.ast.PackageDeclaration.getAnnotations()
+ Line 1103) n.getAnnotations() ==> com.github.javaparser.ast.PackageDeclaration.getAnnotations()
+ Line 1105) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1113) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1113) n.getName() ==> com.github.javaparser.ast.PackageDeclaration.getName()
+ Line 1123) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1124) n.getAnnotations() ==> com.github.javaparser.ast.body.Parameter.getAnnotations()
+ Line 1125) n.getAnnotations() ==> com.github.javaparser.ast.body.Parameter.getAnnotations()
+ Line 1127) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1135) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1135) n.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 1141) n.getId().accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1141) n.getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 1151) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1152) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 1153) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1163) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1165) n.getQualifier().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1165) n.getQualifier() ==> com.github.javaparser.ast.expr.QualifiedNameExpr.getQualifier()
+ Line 1175) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1176) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 1177) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1183) n.getComponentType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1183) n.getComponentType() ==> com.github.javaparser.ast.type.ArrayType.getComponentType()
+ Line 1193) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1194) n.getAnnotations() ==> com.github.javaparser.ast.ArrayCreationLevel.getAnnotations()
+ Line 1195) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1201) n.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 1202) n.getDimension().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1202) n.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 1213) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1214) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 1215) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1221) n.getElements() ==> com.github.javaparser.ast.type.IntersectionType.getElements()
+ Line 1222) element.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1233) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1234) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 1235) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1241) n.getElements() ==> com.github.javaparser.ast.type.UnionType.getElements()
+ Line 1242) element.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1253) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1254) n.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 1256) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1256) n.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 1267) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1269) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1269) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 1275) n.getMemberValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1275) n.getMemberValue() ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr.getMemberValue()
+ Line 1285) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1291) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1292) n.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 1294) n.getClassExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1294) n.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 1305) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1306) n.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 1308) n.getLabel().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1308) n.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 1314) n.getStmts() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStmts()
+ Line 1315) n.getStmts() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStmts()
+ Line 1317) s.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1329) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1331) n.getSelector().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1331) n.getSelector() ==> com.github.javaparser.ast.stmt.SwitchStmt.getSelector()
+ Line 1336) n.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 1337) n.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 1339) e.accept(this, arg) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1352) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1354) n.getExpr() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getExpr()
+ Line 1355) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1355) n.getExpr() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getExpr()
+ Line 1362) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1362) n.getBody() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getBody()
+ Line 1372) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1373) n.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 1375) n.getClassExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1375) n.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 1386) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1388) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1388) n.getExpr() ==> com.github.javaparser.ast.stmt.ThrowStmt.getExpr()
+ Line 1398) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1399) n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 1400) n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 1402) v.accept(this, arg) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1410) n.getTryBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1410) n.getTryBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getTryBlock()
+ Line 1415) n.getCatchs() ==> com.github.javaparser.ast.stmt.TryStmt.getCatchs()
+ Line 1416) n.getCatchs() ==> com.github.javaparser.ast.stmt.TryStmt.getCatchs()
+ Line 1418) c.accept(this, arg) ==> com.github.javaparser.ast.stmt.CatchClause.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1425) n.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 1427) n.getFinallyBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1427) n.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 1438) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1440) n.getTypeDeclaration().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1440) n.getTypeDeclaration() ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt.getTypeDeclaration()
+ Line 1450) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1451) n.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 1452) n.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 1454) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1466) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1468) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1468) n.getExpr() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpr()
+ Line 1478) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1484) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1485) n.getAnnotations() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getAnnotations()
+ Line 1486) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1492) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1492) n.getElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getElementType()
+ Line 1497) n.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 1499) v.accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclarator.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1510) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1512) n.getId().accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1512) n.getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 1517) n.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 1519) n.getInit().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1519) n.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 1530) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1536) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1537) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 1538) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1548) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1550) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1550) n.getCondition() ==> com.github.javaparser.ast.stmt.WhileStmt.getCondition()
+ Line 1556) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1556) n.getBody() ==> com.github.javaparser.ast.stmt.WhileStmt.getBody()
+ Line 1566) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1567) n.getAnnotations() ==> com.github.javaparser.ast.type.Type.getAnnotations()
+ Line 1568) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1573) n.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 1575) n.getExtends().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1575) n.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 1581) n.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 1583) n.getSuper().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1583) n.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 1594) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1595) n.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 1596) n.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 1597) a.accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1603) n.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 1604) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1604) n.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 1614) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1616) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getTypeArguments()
+ Line 1617) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getTypeArguments()
+ Line 1618) type.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1625) n.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 1626) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1626) n.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 1636) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.GenericVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1637) n.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 1638) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1638) n.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 1648) n.getAnnotations() ==> com.github.javaparser.ast.ArrayBracketPair.getAnnotations()
+ Line 1650) a.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1670) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1671) n.getComment().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1671) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1673) n.setComment(result) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_ModifierVisitorAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_ModifierVisitorAdapter.txt
new file mode 100644
index 000000000..b5ff373e7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_ModifierVisitorAdapter.txt
@@ -0,0 +1,685 @@
+ Line 120) list.size() ==> java.util.List.size()
+ Line 121) list.get(i) ==> java.util.List.get(int)
+ Line 122) list.remove(i) ==> java.util.List.remove(int)
+ Line 128) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 129) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 130) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 132) members.size() ==> java.util.List.size()
+ Line 133) members.set(i, (BodyDeclaration<?>) members.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 133) members.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 133) members.get(i) ==> java.util.List.get(int)
+ Line 135) removeNulls(members) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 141) n.getAnnotations() ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotations()
+ Line 143) annotations.size() ==> java.util.List.size()
+ Line 144) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 144) annotations.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 144) annotations.get(i) ==> java.util.List.get(int)
+ Line 146) removeNulls(annotations) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 151) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 152) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 154) annotations.size() ==> java.util.List.size()
+ Line 155) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 155) annotations.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 155) annotations.get(i) ==> java.util.List.get(int)
+ Line 157) removeNulls(annotations) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 159) n.setType((Type) n.getType().accept(this, arg)) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setType(com.github.javaparser.ast.type.Type)
+ Line 159) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 159) n.getType() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getType()
+ Line 160) n.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 161) n.setDefaultValue((Expression) n.getDefaultValue().accept(this, arg)) ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.setDefaultValue(com.github.javaparser.ast.expr.Expression)
+ Line 161) n.getDefaultValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 161) n.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 167) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 168) n.setName((Expression) n.getName().accept(this, arg)) ==> com.github.javaparser.ast.expr.ArrayAccessExpr.setName(com.github.javaparser.ast.expr.Expression)
+ Line 168) n.getName().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 168) n.getName() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getName()
+ Line 169) n.setIndex((Expression) n.getIndex().accept(this, arg)) ==> com.github.javaparser.ast.expr.ArrayAccessExpr.setIndex(com.github.javaparser.ast.expr.Expression)
+ Line 169) n.getIndex().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 169) n.getIndex() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getIndex()
+ Line 174) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 175) n.setType((Type) n.getType().accept(this, arg)) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 175) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 175) n.getType() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getType()
+ Line 177) n.getLevels() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getLevels()
+ Line 178) values.size() ==> java.util.List.size()
+ Line 179) values.set(i, (ArrayCreationLevel) values.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 179) values.get(i).accept(this, arg) ==> com.github.javaparser.ast.ArrayCreationLevel.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 179) values.get(i) ==> java.util.List.get(int)
+ Line 181) removeNulls(values) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 183) n.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 184) n.setInitializer((ArrayInitializerExpr) n.getInitializer().accept(this, arg)) ==> com.github.javaparser.ast.expr.ArrayCreationExpr.setInitializer(com.github.javaparser.ast.expr.ArrayInitializerExpr)
+ Line 184) n.getInitializer().accept(this, arg) ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 184) n.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 190) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 191) n.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 192) n.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 194) values.size() ==> java.util.List.size()
+ Line 195) values.set(i, (Expression) values.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 195) values.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 195) values.get(i) ==> java.util.List.get(int)
+ Line 197) removeNulls(values) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 204) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 205) n.setCheck((Expression) n.getCheck().accept(this, arg)) ==> com.github.javaparser.ast.stmt.AssertStmt.setCheck(com.github.javaparser.ast.expr.Expression)
+ Line 205) n.getCheck().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 205) n.getCheck() ==> com.github.javaparser.ast.stmt.AssertStmt.getCheck()
+ Line 206) n.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 207) n.setMessage((Expression) n.getMessage().accept(this, arg)) ==> com.github.javaparser.ast.stmt.AssertStmt.setMessage(com.github.javaparser.ast.expr.Expression)
+ Line 207) n.getMessage().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 207) n.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 213) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 214) n.getTarget().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 214) n.getTarget() ==> com.github.javaparser.ast.expr.AssignExpr.getTarget()
+ Line 218) n.setTarget(target) ==> com.github.javaparser.ast.expr.AssignExpr.setTarget(com.github.javaparser.ast.expr.Expression)
+ Line 220) n.getValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 220) n.getValue() ==> com.github.javaparser.ast.expr.AssignExpr.getValue()
+ Line 224) n.setValue(value) ==> com.github.javaparser.ast.expr.AssignExpr.setValue(com.github.javaparser.ast.expr.Expression)
+ Line 230) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 231) n.getLeft().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 231) n.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 232) n.getRight().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 232) n.getRight() ==> com.github.javaparser.ast.expr.BinaryExpr.getRight()
+ Line 239) n.setLeft(left) ==> com.github.javaparser.ast.expr.BinaryExpr.setLeft(com.github.javaparser.ast.expr.Expression)
+ Line 240) n.setRight(right) ==> com.github.javaparser.ast.expr.BinaryExpr.setRight(com.github.javaparser.ast.expr.Expression)
+ Line 245) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 246) n.getStmts() ==> com.github.javaparser.ast.stmt.BlockStmt.getStmts()
+ Line 248) stmts.size() ==> java.util.List.size()
+ Line 249) stmts.set(i, (Statement) stmts.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 249) stmts.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 249) stmts.get(i) ==> java.util.List.get(int)
+ Line 251) removeNulls(stmts) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 257) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 262) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 267) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 268) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 268) n.getType() ==> com.github.javaparser.ast.expr.CastExpr.getType()
+ Line 269) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 269) n.getExpr() ==> com.github.javaparser.ast.expr.CastExpr.getExpr()
+ Line 276) n.setType(type) ==> com.github.javaparser.ast.expr.CastExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 277) n.setExpr(expr) ==> com.github.javaparser.ast.expr.CastExpr.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 282) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 283) n.setParam((Parameter) n.getParam().accept(this, arg)) ==> com.github.javaparser.ast.stmt.CatchClause.setParam(com.github.javaparser.ast.body.Parameter)
+ Line 283) n.getParam().accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 283) n.getParam() ==> com.github.javaparser.ast.stmt.CatchClause.getParam()
+ Line 284) n.setBody((BlockStmt) n.getBody().accept(this, arg)) ==> com.github.javaparser.ast.stmt.CatchClause.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 284) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 284) n.getBody() ==> com.github.javaparser.ast.stmt.CatchClause.getBody()
+ Line 290) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 295) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 296) n.setType((Type) n.getType().accept(this, arg)) ==> com.github.javaparser.ast.expr.ClassExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 296) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 296) n.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 301) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 302) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 303) n.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 305) typeParameters.size() ==> java.util.List.size()
+ Line 306) typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 306) typeParameters.get(i).accept(this, arg) ==> com.github.javaparser.ast.type.TypeParameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 306) typeParameters.get(i) ==> java.util.List.get(int)
+ Line 308) removeNulls(typeParameters) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 310) n.getExtends() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtends()
+ Line 312) extendz.size() ==> java.util.List.size()
+ Line 313) extendz.set(i, (ClassOrInterfaceType) extendz.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 313) extendz.get(i).accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 313) extendz.get(i) ==> java.util.List.get(int)
+ Line 315) removeNulls(extendz) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 317) n.getImplements() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplements()
+ Line 319) implementz.size() ==> java.util.List.size()
+ Line 320) implementz.set(i, (ClassOrInterfaceType) implementz.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 320) implementz.get(i).accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 320) implementz.get(i) ==> java.util.List.get(int)
+ Line 322) removeNulls(implementz) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 324) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 326) members.size() ==> java.util.List.size()
+ Line 327) members.set(i, (BodyDeclaration<?>) members.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 327) members.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 327) members.get(i) ==> java.util.List.get(int)
+ Line 329) removeNulls(members) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 335) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 336) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 337) n.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 338) n.setScope((ClassOrInterfaceType) n.getScope().accept(this, arg)) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.setScope(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 338) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 338) n.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 340) n.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 342) typeArguments.size() ==> java.util.List.size()
+ Line 343) typeArguments.set(i, (Type<?>) typeArguments.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 343) typeArguments.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 343) typeArguments.get(i) ==> java.util.List.get(int)
+ Line 345) removeNulls(typeArguments) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 351) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 352) n.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 353) n.setPackage((PackageDeclaration) n.getPackage().accept(this, arg)) ==> com.github.javaparser.ast.CompilationUnit.setPackage(com.github.javaparser.ast.PackageDeclaration)
+ Line 353) n.getPackage().accept(this, arg) ==> com.github.javaparser.ast.PackageDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 353) n.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 355) n.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 357) imports.size() ==> java.util.List.size()
+ Line 358) imports.set(i, (ImportDeclaration) imports.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 358) imports.get(i).accept(this, arg) ==> com.github.javaparser.ast.ImportDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 358) imports.get(i) ==> java.util.List.get(int)
+ Line 360) removeNulls(imports) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 362) n.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 364) types.size() ==> java.util.List.size()
+ Line 365) types.set(i, (TypeDeclaration<?>) types.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 365) types.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 365) types.get(i) ==> java.util.List.get(int)
+ Line 367) removeNulls(types) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 373) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 374) n.setCondition((Expression) n.getCondition().accept(this, arg)) ==> com.github.javaparser.ast.expr.ConditionalExpr.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 374) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 374) n.getCondition() ==> com.github.javaparser.ast.expr.ConditionalExpr.getCondition()
+ Line 375) n.setThenExpr((Expression) n.getThenExpr().accept(this, arg)) ==> com.github.javaparser.ast.expr.ConditionalExpr.setThenExpr(com.github.javaparser.ast.expr.Expression)
+ Line 375) n.getThenExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 375) n.getThenExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getThenExpr()
+ Line 376) n.setElseExpr((Expression) n.getElseExpr().accept(this, arg)) ==> com.github.javaparser.ast.expr.ConditionalExpr.setElseExpr(com.github.javaparser.ast.expr.Expression)
+ Line 376) n.getElseExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 376) n.getElseExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getElseExpr()
+ Line 381) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 382) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 384) annotations.size() ==> java.util.List.size()
+ Line 385) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 385) annotations.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 385) annotations.get(i) ==> java.util.List.get(int)
+ Line 387) removeNulls(annotations) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 389) n.getTypeParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()
+ Line 391) typeParameters.size() ==> java.util.List.size()
+ Line 392) typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 392) typeParameters.get(i).accept(this, arg) ==> com.github.javaparser.ast.type.TypeParameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 392) typeParameters.get(i) ==> java.util.List.get(int)
+ Line 394) removeNulls(typeParameters) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 396) n.getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 398) parameters.size() ==> java.util.List.size()
+ Line 399) parameters.set(i, (Parameter) parameters.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 399) parameters.get(i).accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 399) parameters.get(i) ==> java.util.List.get(int)
+ Line 401) removeNulls(parameters) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 403) n.getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 405) throwz.size() ==> java.util.List.size()
+ Line 406) throwz.set(i, (ReferenceType) throwz.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 406) throwz.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 406) throwz.get(i) ==> java.util.List.get(int)
+ Line 408) removeNulls(throwz) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 410) n.setBody((BlockStmt) n.getBody().accept(this, arg)) ==> com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 410) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 410) n.getBody() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getBody()
+ Line 415) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 420) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 421) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 421) n.getBody() ==> com.github.javaparser.ast.stmt.DoStmt.getBody()
+ Line 425) n.setBody(body) ==> com.github.javaparser.ast.stmt.DoStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 427) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 427) n.getCondition() ==> com.github.javaparser.ast.stmt.DoStmt.getCondition()
+ Line 431) n.setCondition(condition) ==> com.github.javaparser.ast.stmt.DoStmt.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 437) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 442) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 447) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 452) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 457) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 458) n.setInner((Expression) n.getInner().accept(this, arg)) ==> com.github.javaparser.ast.expr.EnclosedExpr.setInner(com.github.javaparser.ast.expr.Expression)
+ Line 458) n.getInner().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 458) n.getInner() ==> com.github.javaparser.ast.expr.EnclosedExpr.getInner()
+ Line 463) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 464) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 466) annotations.size() ==> java.util.List.size()
+ Line 467) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 467) annotations.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 467) annotations.get(i) ==> java.util.List.get(int)
+ Line 469) removeNulls(annotations) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 471) n.getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 473) args.size() ==> java.util.List.size()
+ Line 474) args.set(i, (Expression) args.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 474) args.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 474) args.get(i) ==> java.util.List.get(int)
+ Line 476) removeNulls(args) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 478) n.getClassBody() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getClassBody()
+ Line 480) classBody.size() ==> java.util.List.size()
+ Line 481) classBody.set(i, (BodyDeclaration<?>) classBody.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 481) classBody.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 481) classBody.get(i) ==> java.util.List.get(int)
+ Line 483) removeNulls(classBody) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 489) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 490) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 492) annotations.size() ==> java.util.List.size()
+ Line 493) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 493) annotations.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 493) annotations.get(i) ==> java.util.List.get(int)
+ Line 495) removeNulls(annotations) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 497) n.getImplements() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplements()
+ Line 499) implementz.size() ==> java.util.List.size()
+ Line 500) implementz.set(i, (ClassOrInterfaceType) implementz.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 500) implementz.get(i).accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 500) implementz.get(i) ==> java.util.List.get(int)
+ Line 502) removeNulls(implementz) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 504) n.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 506) entries.size() ==> java.util.List.size()
+ Line 507) entries.set(i, (EnumConstantDeclaration) entries.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 507) entries.get(i).accept(this, arg) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 507) entries.get(i) ==> java.util.List.get(int)
+ Line 509) removeNulls(entries) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 511) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 513) members.size() ==> java.util.List.size()
+ Line 514) members.set(i, (BodyDeclaration<?>) members.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 514) members.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 514) members.get(i) ==> java.util.List.get(int)
+ Line 516) removeNulls(members) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 522) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 523) n.isThis() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.isThis()
+ Line 523) n.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 524) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 524) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 524) n.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 526) n.getTypeArguments() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getTypeArguments()
+ Line 528) typeArguments.size() ==> java.util.List.size()
+ Line 529) typeArguments.set(i, (Type<?>) typeArguments.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 529) typeArguments.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 529) typeArguments.get(i) ==> java.util.List.get(int)
+ Line 531) removeNulls(typeArguments) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 533) n.getArgs() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getArgs()
+ Line 535) args.size() ==> java.util.List.size()
+ Line 536) args.set(i, (Expression) args.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 536) args.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 536) args.get(i) ==> java.util.List.get(int)
+ Line 538) removeNulls(args) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 544) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 545) n.getExpression().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 545) n.getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 549) n.setExpression(expr) ==> com.github.javaparser.ast.stmt.ExpressionStmt.setExpression(com.github.javaparser.ast.expr.Expression)
+ Line 554) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 555) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 555) n.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 559) n.setScope(scope) ==> com.github.javaparser.ast.expr.FieldAccessExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 564) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 565) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 567) annotations.size() ==> java.util.List.size()
+ Line 568) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 568) annotations.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 568) annotations.get(i) ==> java.util.List.get(int)
+ Line 570) removeNulls(annotations) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 572) n.setElementType((Type) n.getElementType().accept(this, arg)) ==> com.github.javaparser.ast.body.FieldDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 572) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 572) n.getElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getElementType()
+ Line 573) n.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 574) variables.size() ==> java.util.List.size()
+ Line 575) variables.set(i, (VariableDeclarator) variables.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 575) variables.get(i).accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclarator.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 575) variables.get(i) ==> java.util.List.get(int)
+ Line 577) removeNulls(variables) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 582) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 583) n.setVariable((VariableDeclarationExpr) n.getVariable().accept(this, arg)) ==> com.github.javaparser.ast.stmt.ForeachStmt.setVariable(com.github.javaparser.ast.expr.VariableDeclarationExpr)
+ Line 583) n.getVariable().accept(this, arg) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 583) n.getVariable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getVariable()
+ Line 584) n.setIterable((Expression) n.getIterable().accept(this, arg)) ==> com.github.javaparser.ast.stmt.ForeachStmt.setIterable(com.github.javaparser.ast.expr.Expression)
+ Line 584) n.getIterable().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 584) n.getIterable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getIterable()
+ Line 585) n.setBody((Statement) n.getBody().accept(this, arg)) ==> com.github.javaparser.ast.stmt.ForeachStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 585) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 585) n.getBody() ==> com.github.javaparser.ast.stmt.ForeachStmt.getBody()
+ Line 590) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 591) n.getInit() ==> com.github.javaparser.ast.stmt.ForStmt.getInit()
+ Line 593) init.size() ==> java.util.List.size()
+ Line 594) init.set(i, (Expression) init.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 594) init.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 594) init.get(i) ==> java.util.List.get(int)
+ Line 596) removeNulls(init) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 598) n.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 599) n.setCompare((Expression) n.getCompare().accept(this, arg)) ==> com.github.javaparser.ast.stmt.ForStmt.setCompare(com.github.javaparser.ast.expr.Expression)
+ Line 599) n.getCompare().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 599) n.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 601) n.getUpdate() ==> com.github.javaparser.ast.stmt.ForStmt.getUpdate()
+ Line 603) update.size() ==> java.util.List.size()
+ Line 604) update.set(i, (Expression) update.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 604) update.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 604) update.get(i) ==> java.util.List.get(int)
+ Line 606) removeNulls(update) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 608) n.setBody((Statement) n.getBody().accept(this, arg)) ==> com.github.javaparser.ast.stmt.ForStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 608) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 608) n.getBody() ==> com.github.javaparser.ast.stmt.ForStmt.getBody()
+ Line 613) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 615) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 615) n.getCondition() ==> com.github.javaparser.ast.stmt.IfStmt.getCondition()
+ Line 619) n.setCondition(condition) ==> com.github.javaparser.ast.stmt.IfStmt.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 620) n.getThenStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 620) n.getThenStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getThenStmt()
+ Line 627) n.setThenStmt(thenStmt) ==> com.github.javaparser.ast.stmt.IfStmt.setThenStmt(com.github.javaparser.ast.stmt.Statement)
+ Line 628) n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 629) n.setElseStmt((Statement) n.getElseStmt().accept(this, arg)) ==> com.github.javaparser.ast.stmt.IfStmt.setElseStmt(com.github.javaparser.ast.stmt.Statement)
+ Line 629) n.getElseStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 629) n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 635) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 636) n.setName((NameExpr) n.getName().accept(this, arg)) ==> com.github.javaparser.ast.ImportDeclaration.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 636) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 636) n.getName() ==> com.github.javaparser.ast.ImportDeclaration.getName()
+ Line 641) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 642) n.setBlock((BlockStmt) n.getBlock().accept(this, arg)) ==> com.github.javaparser.ast.body.InitializerDeclaration.setBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 642) n.getBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 642) n.getBlock() ==> com.github.javaparser.ast.body.InitializerDeclaration.getBlock()
+ Line 647) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 648) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> com.github.javaparser.ast.expr.InstanceOfExpr.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 648) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 648) n.getExpr() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getExpr()
+ Line 649) n.setType((Type) n.getType().accept(this, arg)) ==> com.github.javaparser.ast.expr.InstanceOfExpr.setType(com.github.javaparser.ast.type.Type)
+ Line 649) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 649) n.getType() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getType()
+ Line 654) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 659) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 668) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 669) n.setStmt((Statement) n.getStmt().accept(this, arg)) ==> com.github.javaparser.ast.stmt.LabeledStmt.setStmt(com.github.javaparser.ast.stmt.Statement)
+ Line 669) n.getStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 669) n.getStmt() ==> com.github.javaparser.ast.stmt.LabeledStmt.getStmt()
+ Line 674) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 679) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 684) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 685) n.setName((NameExpr) n.getName().accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 685) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 685) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 690) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 691) n.setValue((Expression) n.getValue().accept(this, arg)) ==> com.github.javaparser.ast.expr.MemberValuePair.setValue(com.github.javaparser.ast.expr.Expression)
+ Line 691) n.getValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 691) n.getValue() ==> com.github.javaparser.ast.expr.MemberValuePair.getValue()
+ Line 696) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 697) n.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 698) n.setScope((Expression) n.getScope().accept(this, arg)) ==> com.github.javaparser.ast.expr.MethodCallExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 698) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 698) n.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 700) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getTypeArguments()
+ Line 702) typeArguments.size() ==> java.util.List.size()
+ Line 703) typeArguments.set(i, (Type<?>) typeArguments.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 703) typeArguments.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 703) typeArguments.get(i) ==> java.util.List.get(int)
+ Line 705) removeNulls(typeArguments) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 707) n.getArgs() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArgs()
+ Line 709) args.size() ==> java.util.List.size()
+ Line 710) args.set(i, (Expression) args.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 710) args.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 710) args.get(i) ==> java.util.List.get(int)
+ Line 712) removeNulls(args) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 718) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 719) n.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 721) annotations.size() ==> java.util.List.size()
+ Line 722) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 722) annotations.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 722) annotations.get(i) ==> java.util.List.get(int)
+ Line 724) removeNulls(annotations) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 726) n.getTypeParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getTypeParameters()
+ Line 728) typeParameters.size() ==> java.util.List.size()
+ Line 729) typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 729) typeParameters.get(i).accept(this, arg) ==> com.github.javaparser.ast.type.TypeParameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 729) typeParameters.get(i) ==> java.util.List.get(int)
+ Line 731) removeNulls(typeParameters) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 733) n.setElementType((Type) n.getElementType().accept(this, arg)) ==> com.github.javaparser.ast.body.MethodDeclaration.setElementType(com.github.javaparser.ast.type.Type)
+ Line 733) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 733) n.getElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getElementType()
+ Line 734) n.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 736) parameters.size() ==> java.util.List.size()
+ Line 737) parameters.set(i, (Parameter) parameters.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 737) parameters.get(i).accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 737) parameters.get(i) ==> java.util.List.get(int)
+ Line 739) removeNulls(parameters) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 741) n.getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 743) throwz.size() ==> java.util.List.size()
+ Line 744) throwz.set(i, (ReferenceType) throwz.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 744) throwz.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 744) throwz.get(i) ==> java.util.List.get(int)
+ Line 746) removeNulls(throwz) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 748) n.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 749) n.setBody((BlockStmt) n.getBody().accept(this, arg)) ==> com.github.javaparser.ast.body.MethodDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 749) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 749) n.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 755) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 760) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 761) n.setName((NameExpr) n.getName().accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 761) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 761) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 762) n.getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 764) pairs.size() ==> java.util.List.size()
+ Line 765) pairs.set(i, (MemberValuePair) pairs.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 765) pairs.get(i).accept(this, arg) ==> com.github.javaparser.ast.expr.MemberValuePair.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 765) pairs.get(i) ==> java.util.List.get(int)
+ Line 767) removeNulls(pairs) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 773) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 778) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 779) n.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 780) n.setScope((Expression) n.getScope().accept(this, arg)) ==> com.github.javaparser.ast.expr.ObjectCreationExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 780) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 780) n.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 782) n.getTypeArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getTypeArguments()
+ Line 784) typeArguments.size() ==> java.util.List.size()
+ Line 785) typeArguments.set(i, (Type<?>) typeArguments.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 785) typeArguments.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 785) typeArguments.get(i) ==> java.util.List.get(int)
+ Line 787) removeNulls(typeArguments) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 789) n.setType((ClassOrInterfaceType) n.getType().accept(this, arg)) ==> com.github.javaparser.ast.expr.ObjectCreationExpr.setType(com.github.javaparser.ast.type.Type<?>)
+ Line 789) n.getType().accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 789) n.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 790) n.getArgs() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getArgs()
+ Line 792) args.size() ==> java.util.List.size()
+ Line 793) args.set(i, (Expression) args.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 793) args.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 793) args.get(i) ==> java.util.List.get(int)
+ Line 795) removeNulls(args) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 797) n.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 799) anonymousClassBody.size() ==> java.util.List.size()
+ Line 800) anonymousClassBody.set(i, (BodyDeclaration<?>) anonymousClassBody.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 800) anonymousClassBody.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 800) anonymousClassBody.get(i) ==> java.util.List.get(int)
+ Line 802) removeNulls(anonymousClassBody) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 808) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 809) n.getAnnotations() ==> com.github.javaparser.ast.PackageDeclaration.getAnnotations()
+ Line 811) annotations.size() ==> java.util.List.size()
+ Line 812) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 812) annotations.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 812) annotations.get(i) ==> java.util.List.get(int)
+ Line 814) removeNulls(annotations) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 816) n.setName((NameExpr) n.getName().accept(this, arg)) ==> com.github.javaparser.ast.PackageDeclaration.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 816) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 816) n.getName() ==> com.github.javaparser.ast.PackageDeclaration.getName()
+ Line 821) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 822) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 823) n.setId((VariableDeclaratorId) n.getId().accept(this, arg)) ==> com.github.javaparser.ast.body.Parameter.setId(com.github.javaparser.ast.body.VariableDeclaratorId)
+ Line 823) n.getId().accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 823) n.getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 824) n.setElementType((Type) n.getElementType().accept(this, arg)) ==> com.github.javaparser.ast.body.Parameter.setElementType(com.github.javaparser.ast.type.Type)
+ Line 824) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 824) n.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 829) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 830) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 835) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 836) n.setQualifier((NameExpr) n.getQualifier().accept(this, arg)) ==> com.github.javaparser.ast.expr.QualifiedNameExpr.setQualifier(com.github.javaparser.ast.expr.NameExpr)
+ Line 836) n.getQualifier().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 836) n.getQualifier() ==> com.github.javaparser.ast.expr.QualifiedNameExpr.getQualifier()
+ Line 842) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 843) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 844) n.setComponentType((Type) n.getComponentType().accept(this, arg)) ==> com.github.javaparser.ast.type.ArrayType.setComponentType(com.github.javaparser.ast.type.Type)
+ Line 844) n.getComponentType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 844) n.getComponentType() ==> com.github.javaparser.ast.type.ArrayType.getComponentType()
+ Line 850) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 851) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 852) n.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 853) n.setDimension((Expression) n.getDimension().accept(this, arg)) ==> com.github.javaparser.ast.ArrayCreationLevel.setDimension(com.github.javaparser.ast.expr.Expression)
+ Line 853) n.getDimension().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 853) n.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 860) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 861) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 862) n.getElements() ==> com.github.javaparser.ast.type.IntersectionType.getElements()
+ Line 864) elements.size() ==> java.util.List.size()
+ Line 865) elements.set(i, (ReferenceType) elements.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 865) elements.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 865) elements.get(i) ==> java.util.List.get(int)
+ Line 867) removeNulls(elements) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 874) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 875) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 876) n.getElements() ==> com.github.javaparser.ast.type.UnionType.getElements()
+ Line 878) elements.size() ==> java.util.List.size()
+ Line 879) elements.set(i, (ReferenceType) elements.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 879) elements.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 879) elements.get(i) ==> java.util.List.get(int)
+ Line 881) removeNulls(elements) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 887) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 888) n.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 889) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> com.github.javaparser.ast.stmt.ReturnStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 889) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 889) n.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 895) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 896) n.setName((NameExpr) n.getName().accept(this, arg)) ==> com.github.javaparser.ast.expr.AnnotationExpr.setName(com.github.javaparser.ast.expr.NameExpr)
+ Line 896) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 896) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 897) n.setMemberValue((Expression) n.getMemberValue().accept(this, arg)) ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr.setMemberValue(com.github.javaparser.ast.expr.Expression)
+ Line 897) n.getMemberValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 897) n.getMemberValue() ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr.getMemberValue()
+ Line 902) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 907) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 908) n.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 909) n.setClassExpr((Expression) n.getClassExpr().accept(this, arg)) ==> com.github.javaparser.ast.expr.SuperExpr.setClassExpr(com.github.javaparser.ast.expr.Expression)
+ Line 909) n.getClassExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 909) n.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 915) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 916) n.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 917) n.setLabel((Expression) n.getLabel().accept(this, arg)) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.setLabel(com.github.javaparser.ast.expr.Expression)
+ Line 917) n.getLabel().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 917) n.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 919) n.getStmts() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStmts()
+ Line 921) stmts.size() ==> java.util.List.size()
+ Line 922) stmts.set(i, (Statement) stmts.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 922) stmts.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 922) stmts.get(i) ==> java.util.List.get(int)
+ Line 924) removeNulls(stmts) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 930) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 931) n.setSelector((Expression) n.getSelector().accept(this, arg)) ==> com.github.javaparser.ast.stmt.SwitchStmt.setSelector(com.github.javaparser.ast.expr.Expression)
+ Line 931) n.getSelector().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 931) n.getSelector() ==> com.github.javaparser.ast.stmt.SwitchStmt.getSelector()
+ Line 932) n.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 934) entries.size() ==> java.util.List.size()
+ Line 935) entries.set(i, (SwitchEntryStmt) entries.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 935) entries.get(i).accept(this, arg) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 935) entries.get(i) ==> java.util.List.get(int)
+ Line 937) removeNulls(entries) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 944) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 945) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> com.github.javaparser.ast.stmt.SynchronizedStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 945) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 945) n.getExpr() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getExpr()
+ Line 946) n.setBody((BlockStmt) n.getBody().accept(this, arg)) ==> com.github.javaparser.ast.stmt.SynchronizedStmt.setBody(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 946) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 946) n.getBody() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getBody()
+ Line 951) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 952) n.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 953) n.setClassExpr((Expression) n.getClassExpr().accept(this, arg)) ==> com.github.javaparser.ast.expr.ThisExpr.setClassExpr(com.github.javaparser.ast.expr.Expression)
+ Line 953) n.getClassExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 953) n.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 959) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 960) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> com.github.javaparser.ast.stmt.ThrowStmt.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 960) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 960) n.getExpr() ==> com.github.javaparser.ast.stmt.ThrowStmt.getExpr()
+ Line 965) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 966) n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 967) types.size() ==> java.util.List.size()
+ Line 968) n.getResources().set(i, (VariableDeclarationExpr) n.getResources().get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 968) n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 969) n.getResources().get(i).accept(this, arg) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 969) n.getResources().get(i) ==> java.util.List.get(int)
+ Line 969) n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 971) n.setTryBlock((BlockStmt) n.getTryBlock().accept(this, arg)) ==> com.github.javaparser.ast.stmt.TryStmt.setTryBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 971) n.getTryBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 971) n.getTryBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getTryBlock()
+ Line 972) n.getCatchs() ==> com.github.javaparser.ast.stmt.TryStmt.getCatchs()
+ Line 974) catchs.size() ==> java.util.List.size()
+ Line 975) catchs.set(i, (CatchClause) catchs.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 975) catchs.get(i).accept(this, arg) ==> com.github.javaparser.ast.stmt.CatchClause.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 975) catchs.get(i) ==> java.util.List.get(int)
+ Line 977) removeNulls(catchs) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 979) n.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 980) n.setFinallyBlock((BlockStmt) n.getFinallyBlock().accept(this, arg)) ==> com.github.javaparser.ast.stmt.TryStmt.setFinallyBlock(com.github.javaparser.ast.stmt.BlockStmt)
+ Line 980) n.getFinallyBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 980) n.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 986) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 987) n.setTypeDeclaration((TypeDeclaration<?>) n.getTypeDeclaration().accept(this, arg)) ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt.setTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration)
+ Line 987) n.getTypeDeclaration().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 987) n.getTypeDeclaration() ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt.getTypeDeclaration()
+ Line 992) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 993) n.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 995) typeBound.size() ==> java.util.List.size()
+ Line 996) typeBound.set(i, (ClassOrInterfaceType) typeBound.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 996) typeBound.get(i).accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 996) typeBound.get(i) ==> java.util.List.get(int)
+ Line 998) removeNulls(typeBound) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 1004) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1005) n.setExpr((Expression) n.getExpr().accept(this, arg)) ==> com.github.javaparser.ast.expr.UnaryExpr.setExpr(com.github.javaparser.ast.expr.Expression)
+ Line 1005) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1005) n.getExpr() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpr()
+ Line 1010) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1015) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1016) n.getAnnotations() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getAnnotations()
+ Line 1018) annotations.size() ==> java.util.List.size()
+ Line 1019) annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 1019) annotations.get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1019) annotations.get(i) ==> java.util.List.get(int)
+ Line 1021) removeNulls(annotations) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 1024) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1024) n.getElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getElementType()
+ Line 1028) n.setElementType(type) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.setElementType(com.github.javaparser.ast.type.Type)
+ Line 1030) n.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 1031) vars.size() ==> java.util.List.size()
+ Line 1033) vars.get(i).accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclarator.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1033) vars.get(i) ==> java.util.List.get(int)
+ Line 1035) vars.remove(i) ==> java.util.List.remove(int)
+ Line 1037) vars.set(i++, decl) ==> java.util.List.set(int, E)
+ Line 1040) vars.isEmpty() ==> java.util.List.isEmpty()
+ Line 1048) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1050) n.getId().accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1050) n.getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 1054) n.setId(id) ==> com.github.javaparser.ast.body.VariableDeclarator.setId(com.github.javaparser.ast.body.VariableDeclaratorId)
+ Line 1055) n.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 1056) n.setInit((Expression) n.getInit().accept(this, arg)) ==> com.github.javaparser.ast.body.VariableDeclarator.setInit(com.github.javaparser.ast.expr.Expression)
+ Line 1056) n.getInit().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1056) n.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 1062) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1067) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1068) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 1073) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1074) n.setCondition((Expression) n.getCondition().accept(this, arg)) ==> com.github.javaparser.ast.stmt.WhileStmt.setCondition(com.github.javaparser.ast.expr.Expression)
+ Line 1074) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1074) n.getCondition() ==> com.github.javaparser.ast.stmt.WhileStmt.getCondition()
+ Line 1075) n.setBody((Statement) n.getBody().accept(this, arg)) ==> com.github.javaparser.ast.stmt.WhileStmt.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 1075) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1075) n.getBody() ==> com.github.javaparser.ast.stmt.WhileStmt.getBody()
+ Line 1080) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1081) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 1082) n.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 1083) n.setExtends((ReferenceType) n.getExtends().accept(this, arg)) ==> com.github.javaparser.ast.type.WildcardType.setExtends(com.github.javaparser.ast.type.ReferenceType)
+ Line 1083) n.getExtends().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1083) n.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 1085) n.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 1086) n.setSuper((ReferenceType) n.getSuper().accept(this, arg)) ==> com.github.javaparser.ast.type.WildcardType.setSuper(com.github.javaparser.ast.type.ReferenceType)
+ Line 1086) n.getSuper().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1086) n.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 1093) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1094) n.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 1095) parameters.size() ==> java.util.List.size()
+ Line 1096) parameters.set(i, (Parameter) parameters.get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 1096) parameters.get(i).accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1096) parameters.get(i) ==> java.util.List.get(int)
+ Line 1098) removeNulls(parameters) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.removeNulls(java.util.List<?>)
+ Line 1099) n.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 1100) n.setBody((Statement) n.getBody().accept(this, arg)) ==> com.github.javaparser.ast.expr.LambdaExpr.setBody(com.github.javaparser.ast.stmt.Statement)
+ Line 1100) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1100) n.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 1107) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1108) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getTypeArguments()
+ Line 1109) types.size() ==> java.util.List.size()
+ Line 1110) n.getTypeArguments().set(i, (Type<?>) n.getTypeArguments().get(i).accept(this, arg)) ==> java.util.List.set(int, E)
+ Line 1110) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getTypeArguments()
+ Line 1111) n.getTypeArguments().get(i).accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1111) n.getTypeArguments().get(i) ==> java.util.List.get(int)
+ Line 1111) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getTypeArguments()
+ Line 1113) n.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 1114) n.setScope((Expression) n.getScope().accept(this, arg)) ==> com.github.javaparser.ast.expr.MethodReferenceExpr.setScope(com.github.javaparser.ast.expr.Expression)
+ Line 1114) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1114) n.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 1121) visitComment(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitComment(com.github.javaparser.ast.Node, A)
+ Line 1122) n.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 1123) n.setType((Type<?>) n.getType().accept(this, arg)) ==> com.github.javaparser.ast.expr.TypeExpr.setType(com.github.javaparser.ast.type.Type<?>)
+ Line 1123) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1123) n.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 1130) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.ModifierVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 1145) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 1146) n.setComment((Comment) n.getComment().accept(this, arg)) ==> com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
+ Line 1146) n.getComment().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 1146) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_TreeVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_TreeVisitor.txt
new file mode 100644
index 000000000..b267e5f06
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_TreeVisitor.txt
@@ -0,0 +1,3 @@
+ Line 37) process(node) ==> com.github.javaparser.ast.visitor.TreeVisitor.process(com.github.javaparser.ast.Node)
+ Line 38) node.getChildrenNodes() ==> com.github.javaparser.ast.Node.getChildrenNodes()
+ Line 39) visitDepthFirst(child) ==> com.github.javaparser.ast.visitor.TreeVisitor.visitDepthFirst(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_VoidVisitor.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_VoidVisitor.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_VoidVisitor.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_VoidVisitorAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_VoidVisitorAdapter.txt
new file mode 100644
index 000000000..2ad1131ce
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_ast_visitor_VoidVisitorAdapter.txt
@@ -0,0 +1,511 @@
+ Line 93) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 93) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 94) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 95) n.getNameExpr().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 95) n.getNameExpr() ==> com.github.javaparser.ast.body.TypeDeclaration.getNameExpr()
+ Line 96) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 97) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 98) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 104) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 104) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 105) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 106) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 106) n.getType() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getType()
+ Line 107) n.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 108) n.getDefaultValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 108) n.getDefaultValue() ==> com.github.javaparser.ast.body.AnnotationMemberDeclaration.getDefaultValue()
+ Line 113) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 113) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 114) n.getName().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 114) n.getName() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getName()
+ Line 115) n.getIndex().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 115) n.getIndex() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getIndex()
+ Line 119) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 119) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 120) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 120) n.getType() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getType()
+ Line 121) n.getLevels() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getLevels()
+ Line 122) level.accept(this, arg) ==> com.github.javaparser.ast.ArrayCreationLevel.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 124) n.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 125) n.getInitializer().accept(this, arg) ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 125) n.getInitializer() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getInitializer()
+ Line 130) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 130) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 131) n.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 132) n.getValues() ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.getValues()
+ Line 133) expr.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 139) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 139) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 140) n.getCheck().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 140) n.getCheck() ==> com.github.javaparser.ast.stmt.AssertStmt.getCheck()
+ Line 141) n.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 142) n.getMessage().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 142) n.getMessage() ==> com.github.javaparser.ast.stmt.AssertStmt.getMessage()
+ Line 147) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 147) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 148) n.getTarget().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 148) n.getTarget() ==> com.github.javaparser.ast.expr.AssignExpr.getTarget()
+ Line 149) n.getValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 149) n.getValue() ==> com.github.javaparser.ast.expr.AssignExpr.getValue()
+ Line 153) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 153) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 154) n.getLeft().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 154) n.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 155) n.getRight().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 155) n.getRight() ==> com.github.javaparser.ast.expr.BinaryExpr.getRight()
+ Line 162) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 162) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 163) n.getStmts() ==> com.github.javaparser.ast.stmt.BlockStmt.getStmts()
+ Line 164) n.getStmts() ==> com.github.javaparser.ast.stmt.BlockStmt.getStmts()
+ Line 165) s.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 171) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 171) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 175) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 175) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 179) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 179) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 180) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 180) n.getType() ==> com.github.javaparser.ast.expr.CastExpr.getType()
+ Line 181) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 181) n.getExpr() ==> com.github.javaparser.ast.expr.CastExpr.getExpr()
+ Line 185) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 185) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 186) n.getParam().accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 186) n.getParam() ==> com.github.javaparser.ast.stmt.CatchClause.getParam()
+ Line 187) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 187) n.getBody() ==> com.github.javaparser.ast.stmt.CatchClause.getBody()
+ Line 191) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 191) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 195) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 195) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 196) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 196) n.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 200) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 200) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 201) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 202) n.getNameExpr().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 202) n.getNameExpr() ==> com.github.javaparser.ast.body.TypeDeclaration.getNameExpr()
+ Line 203) n.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 204) t.accept(this, arg) ==> com.github.javaparser.ast.type.TypeParameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 206) n.getExtends() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtends()
+ Line 207) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 209) n.getImplements() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplements()
+ Line 210) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 212) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 213) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 218) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 218) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 219) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 220) n.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 221) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 221) n.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 223) n.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 224) n.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 225) t.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 231) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 231) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 232) n.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 233) n.getPackage().accept(this, arg) ==> com.github.javaparser.ast.PackageDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 233) n.getPackage() ==> com.github.javaparser.ast.CompilationUnit.getPackage()
+ Line 235) n.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 236) n.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 237) i.accept(this, arg) ==> com.github.javaparser.ast.ImportDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 240) n.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 241) n.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 242) typeDeclaration.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 248) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 248) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 249) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 249) n.getCondition() ==> com.github.javaparser.ast.expr.ConditionalExpr.getCondition()
+ Line 250) n.getThenExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 250) n.getThenExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getThenExpr()
+ Line 251) n.getElseExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 251) n.getElseExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getElseExpr()
+ Line 255) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 255) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 256) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 257) n.getTypeParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()
+ Line 258) n.getTypeParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()
+ Line 259) t.accept(this, arg) ==> com.github.javaparser.ast.type.TypeParameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 262) n.getNameExpr().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 262) n.getNameExpr() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()
+ Line 263) n.getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 264) n.getParameters() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()
+ Line 265) p.accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 268) n.getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 269) n.getThrows() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()
+ Line 270) name.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 273) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 273) n.getBody() ==> com.github.javaparser.ast.body.ConstructorDeclaration.getBody()
+ Line 277) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 277) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 281) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 281) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 282) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 282) n.getBody() ==> com.github.javaparser.ast.stmt.DoStmt.getBody()
+ Line 283) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 283) n.getCondition() ==> com.github.javaparser.ast.stmt.DoStmt.getCondition()
+ Line 287) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 287) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 291) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 291) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 295) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 295) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 299) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 299) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 300) n.getNameExpr().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 300) n.getNameExpr() ==> com.github.javaparser.ast.body.TypeDeclaration.getNameExpr()
+ Line 304) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 304) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 305) n.getInner().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 305) n.getInner() ==> com.github.javaparser.ast.expr.EnclosedExpr.getInner()
+ Line 309) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 309) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 310) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 311) n.getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 312) n.getArgs() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getArgs()
+ Line 313) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 316) n.getClassBody() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getClassBody()
+ Line 317) n.getClassBody() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getClassBody()
+ Line 318) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 324) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 324) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 325) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 326) n.getNameExpr().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 326) n.getNameExpr() ==> com.github.javaparser.ast.body.TypeDeclaration.getNameExpr()
+ Line 327) n.getImplements() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplements()
+ Line 328) n.getImplements() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplements()
+ Line 329) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 332) n.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 333) n.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 334) e.accept(this, arg) ==> com.github.javaparser.ast.body.EnumConstantDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 337) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 338) n.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 339) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 345) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 345) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 346) n.isThis() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.isThis()
+ Line 346) n.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 347) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 347) n.getExpr() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getExpr()
+ Line 349) n.getTypeArguments() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getTypeArguments()
+ Line 350) n.getTypeArguments() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getTypeArguments()
+ Line 351) t.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 354) n.getArgs() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getArgs()
+ Line 355) n.getArgs() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getArgs()
+ Line 356) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 362) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 362) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 363) n.getExpression().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 363) n.getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 367) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 367) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 368) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 368) n.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 369) n.getFieldExpr().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 369) n.getFieldExpr() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getFieldExpr()
+ Line 373) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 373) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 374) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 375) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 375) n.getElementType() ==> com.github.javaparser.ast.body.FieldDeclaration.getElementType()
+ Line 376) n.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 377) var.accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclarator.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 382) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 382) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 383) n.getVariable().accept(this, arg) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 383) n.getVariable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getVariable()
+ Line 384) n.getIterable().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 384) n.getIterable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getIterable()
+ Line 385) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 385) n.getBody() ==> com.github.javaparser.ast.stmt.ForeachStmt.getBody()
+ Line 389) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 389) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 390) n.getInit() ==> com.github.javaparser.ast.stmt.ForStmt.getInit()
+ Line 391) n.getInit() ==> com.github.javaparser.ast.stmt.ForStmt.getInit()
+ Line 392) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 395) n.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 396) n.getCompare().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 396) n.getCompare() ==> com.github.javaparser.ast.stmt.ForStmt.getCompare()
+ Line 398) n.getUpdate() ==> com.github.javaparser.ast.stmt.ForStmt.getUpdate()
+ Line 399) n.getUpdate() ==> com.github.javaparser.ast.stmt.ForStmt.getUpdate()
+ Line 400) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 403) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 403) n.getBody() ==> com.github.javaparser.ast.stmt.ForStmt.getBody()
+ Line 407) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 407) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 408) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 408) n.getCondition() ==> com.github.javaparser.ast.stmt.IfStmt.getCondition()
+ Line 409) n.getThenStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 409) n.getThenStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getThenStmt()
+ Line 410) n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 411) n.getElseStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 411) n.getElseStmt() ==> com.github.javaparser.ast.stmt.IfStmt.getElseStmt()
+ Line 416) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 416) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 417) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 417) n.getName() ==> com.github.javaparser.ast.ImportDeclaration.getName()
+ Line 421) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 421) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 422) n.getBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 422) n.getBlock() ==> com.github.javaparser.ast.body.InitializerDeclaration.getBlock()
+ Line 426) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 426) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 427) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 427) n.getExpr() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getExpr()
+ Line 428) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 428) n.getType() ==> com.github.javaparser.ast.expr.InstanceOfExpr.getType()
+ Line 432) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 432) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 436) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 436) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 443) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 443) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 444) n.getStmt().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 444) n.getStmt() ==> com.github.javaparser.ast.stmt.LabeledStmt.getStmt()
+ Line 451) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 451) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 455) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 455) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 459) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 459) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 460) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 460) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 464) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 464) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 465) n.getValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 465) n.getValue() ==> com.github.javaparser.ast.expr.MemberValuePair.getValue()
+ Line 469) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 469) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 470) n.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 471) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 471) n.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 473) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getTypeArguments()
+ Line 474) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getTypeArguments()
+ Line 475) t.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 478) n.getNameExpr().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 478) n.getNameExpr() ==> com.github.javaparser.ast.expr.MethodCallExpr.getNameExpr()
+ Line 479) n.getArgs() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArgs()
+ Line 480) n.getArgs() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArgs()
+ Line 481) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 487) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 487) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 488) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 489) n.getTypeParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getTypeParameters()
+ Line 490) n.getTypeParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getTypeParameters()
+ Line 491) t.accept(this, arg) ==> com.github.javaparser.ast.type.TypeParameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 494) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 494) n.getElementType() ==> com.github.javaparser.ast.body.MethodDeclaration.getElementType()
+ Line 495) n.getNameExpr().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 495) n.getNameExpr() ==> com.github.javaparser.ast.body.MethodDeclaration.getNameExpr()
+ Line 496) n.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 497) n.getParameters() ==> com.github.javaparser.ast.body.MethodDeclaration.getParameters()
+ Line 498) p.accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 501) n.getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 502) n.getThrows() ==> com.github.javaparser.ast.body.MethodDeclaration.getThrows()
+ Line 503) name.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 506) n.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 507) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 507) n.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 512) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 512) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 516) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 516) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 517) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 517) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 518) n.getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 519) n.getPairs() ==> com.github.javaparser.ast.expr.NormalAnnotationExpr.getPairs()
+ Line 520) m.accept(this, arg) ==> com.github.javaparser.ast.expr.MemberValuePair.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 526) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 526) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 530) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 530) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 531) n.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 532) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 532) n.getScope() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getScope()
+ Line 534) n.getTypeArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getTypeArguments()
+ Line 535) n.getTypeArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getTypeArguments()
+ Line 536) t.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 539) n.getType().accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 539) n.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 540) n.getArgs() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getArgs()
+ Line 541) n.getArgs() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getArgs()
+ Line 542) e.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 545) n.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 546) n.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 547) member.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 553) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 553) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 554) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 555) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 555) n.getName() ==> com.github.javaparser.ast.PackageDeclaration.getName()
+ Line 559) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 559) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 560) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 561) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 561) n.getElementType() ==> com.github.javaparser.ast.body.Parameter.getElementType()
+ Line 562) n.getId().accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 562) n.getId() ==> com.github.javaparser.ast.body.Parameter.getId()
+ Line 566) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 566) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 567) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 571) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 571) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 572) n.getQualifier().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 572) n.getQualifier() ==> com.github.javaparser.ast.expr.QualifiedNameExpr.getQualifier()
+ Line 577) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 577) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 578) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 579) n.getComponentType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 579) n.getComponentType() ==> com.github.javaparser.ast.type.ArrayType.getComponentType()
+ Line 584) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 584) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 585) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 586) n.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 587) n.getDimension().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 587) n.getDimension() ==> com.github.javaparser.ast.ArrayCreationLevel.getDimension()
+ Line 592) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 592) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 593) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 594) n.getElements() ==> com.github.javaparser.ast.type.IntersectionType.getElements()
+ Line 595) element.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 600) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 600) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 601) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 602) n.getElements() ==> com.github.javaparser.ast.type.UnionType.getElements()
+ Line 603) element.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 608) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 608) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 609) n.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 610) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 610) n.getExpr() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpr()
+ Line 615) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 615) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 616) n.getName().accept(this, arg) ==> com.github.javaparser.ast.expr.NameExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 616) n.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 617) n.getMemberValue().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 617) n.getMemberValue() ==> com.github.javaparser.ast.expr.SingleMemberAnnotationExpr.getMemberValue()
+ Line 621) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 621) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 625) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 625) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 626) n.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 627) n.getClassExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 627) n.getClassExpr() ==> com.github.javaparser.ast.expr.SuperExpr.getClassExpr()
+ Line 632) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 632) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 633) n.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 634) n.getLabel().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 634) n.getLabel() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getLabel()
+ Line 636) n.getStmts() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStmts()
+ Line 637) n.getStmts() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStmts()
+ Line 638) s.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 644) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 644) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 645) n.getSelector().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 645) n.getSelector() ==> com.github.javaparser.ast.stmt.SwitchStmt.getSelector()
+ Line 646) n.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 647) n.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 648) e.accept(this, arg) ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 654) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 654) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 655) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 655) n.getExpr() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getExpr()
+ Line 656) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 656) n.getBody() ==> com.github.javaparser.ast.stmt.SynchronizedStmt.getBody()
+ Line 660) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 660) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 661) n.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 662) n.getClassExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 662) n.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 667) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 667) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 668) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 668) n.getExpr() ==> com.github.javaparser.ast.stmt.ThrowStmt.getExpr()
+ Line 672) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 672) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 673) n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 674) n.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 675) v.accept(this, arg) ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 678) n.getTryBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 678) n.getTryBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getTryBlock()
+ Line 679) n.getCatchs() ==> com.github.javaparser.ast.stmt.TryStmt.getCatchs()
+ Line 680) n.getCatchs() ==> com.github.javaparser.ast.stmt.TryStmt.getCatchs()
+ Line 681) c.accept(this, arg) ==> com.github.javaparser.ast.stmt.CatchClause.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 684) n.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 685) n.getFinallyBlock().accept(this, arg) ==> com.github.javaparser.ast.stmt.BlockStmt.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 685) n.getFinallyBlock() ==> com.github.javaparser.ast.stmt.TryStmt.getFinallyBlock()
+ Line 690) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 690) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 691) n.getTypeDeclaration().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 691) n.getTypeDeclaration() ==> com.github.javaparser.ast.stmt.TypeDeclarationStmt.getTypeDeclaration()
+ Line 695) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 695) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 696) n.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 697) n.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 698) c.accept(this, arg) ==> com.github.javaparser.ast.type.ClassOrInterfaceType.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 704) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 704) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 705) n.getExpr().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 705) n.getExpr() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpr()
+ Line 709) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 709) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 713) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 713) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 714) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 715) n.getElementType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 715) n.getElementType() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getElementType()
+ Line 716) n.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 717) v.accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclarator.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 722) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 722) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 723) n.getId().accept(this, arg) ==> com.github.javaparser.ast.body.VariableDeclaratorId.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 723) n.getId() ==> com.github.javaparser.ast.body.VariableDeclarator.getId()
+ Line 724) n.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 725) n.getInit().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 725) n.getInit() ==> com.github.javaparser.ast.body.VariableDeclarator.getInit()
+ Line 730) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 730) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 734) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 734) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 735) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 740) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 740) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 741) n.getCondition().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 741) n.getCondition() ==> com.github.javaparser.ast.stmt.WhileStmt.getCondition()
+ Line 742) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 742) n.getBody() ==> com.github.javaparser.ast.stmt.WhileStmt.getBody()
+ Line 746) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 746) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 747) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 748) n.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 749) n.getExtends().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 749) n.getExtends() ==> com.github.javaparser.ast.type.WildcardType.getExtends()
+ Line 751) n.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 752) n.getSuper().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 752) n.getSuper() ==> com.github.javaparser.ast.type.WildcardType.getSuper()
+ Line 758) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 758) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 759) n.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 760) n.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 761) a.accept(this, arg) ==> com.github.javaparser.ast.body.Parameter.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 764) n.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 765) n.getBody().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 765) n.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 771) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 771) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 772) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getTypeArguments()
+ Line 773) n.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getTypeArguments()
+ Line 774) t.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 777) n.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 778) n.getScope().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 778) n.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 784) visitComment(n.getComment(), arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitComment(com.github.javaparser.ast.comments.Comment, A)
+ Line 784) n.getComment() ==> com.github.javaparser.ast.Node.getComment()
+ Line 785) n.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 786) n.getType().accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 786) n.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 792) visitAnnotations(n, arg) ==> com.github.javaparser.ast.visitor.VoidVisitorAdapter.visitAnnotations(com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?>, A)
+ Line 797) n.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
+ Line 802) n.getAnnotations() ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotations()
+ Line 803) annotation.accept(this, arg) ==> com.github.javaparser.ast.Node.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_ClassUtils.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_ClassUtils.txt
new file mode 100644
index 000000000..130079bb4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_ClassUtils.txt
@@ -0,0 +1,16 @@
+ Line 12) primitiveWrapperMap.put(Boolean.TYPE, Boolean.class) ==> java.util.Map.put(K, V)
+ Line 13) primitiveWrapperMap.put(Byte.TYPE, Byte.class) ==> java.util.Map.put(K, V)
+ Line 14) primitiveWrapperMap.put(Character.TYPE, Character.class) ==> java.util.Map.put(K, V)
+ Line 15) primitiveWrapperMap.put(Short.TYPE, Short.class) ==> java.util.Map.put(K, V)
+ Line 16) primitiveWrapperMap.put(Integer.TYPE, Integer.class) ==> java.util.Map.put(K, V)
+ Line 17) primitiveWrapperMap.put(Long.TYPE, Long.class) ==> java.util.Map.put(K, V)
+ Line 18) primitiveWrapperMap.put(Double.TYPE, Double.class) ==> java.util.Map.put(K, V)
+ Line 19) primitiveWrapperMap.put(Float.TYPE, Float.class) ==> java.util.Map.put(K, V)
+ Line 20) primitiveWrapperMap.put(Void.TYPE, Void.TYPE) ==> java.util.Map.put(K, V)
+ Line 28) primitiveWrapperMap.keySet() ==> java.util.Map.keySet()
+ Line 29) primitiveWrapperMap.get(primitiveClass) ==> java.util.Map.get(java.lang.Object)
+ Line 30) primitiveClass.equals(wrapperClass) ==> java.lang.Object.equals(java.lang.Object)
+ Line 31) wrapperPrimitiveMap.put(wrapperClass, primitiveClass) ==> java.util.Map.put(K, V)
+ Line 51) type.isPrimitive() ==> java.lang.Class.isPrimitive()
+ Line 51) isPrimitiveWrapper(type) ==> com.github.javaparser.utils.ClassUtils.isPrimitiveWrapper(java.lang.Class<?>)
+ Line 67) wrapperPrimitiveMap.containsKey(type) ==> java.util.Map.containsKey(java.lang.Object)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_Pair.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_Pair.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_Pair.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_PositionUtils.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_PositionUtils.txt
new file mode 100644
index 000000000..96493b057
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_PositionUtils.txt
@@ -0,0 +1,43 @@
+ Line 46) sortByBeginPosition(nodes, false) ==> com.github.javaparser.utils.PositionUtils.sortByBeginPosition(java.util.List<T>, boolean)
+ Line 50) Collections.sort(nodes, (o1, o2) -> PositionUtils.compare(o1, o2, ignoringAnnotations)) ==> java.util.Collections.sort(java.util.List<T>, java.util.Comparator<? super T>)
+ Line 50) PositionUtils.compare(o1, o2, ignoringAnnotations) ==> com.github.javaparser.utils.PositionUtils.compare(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node, boolean)
+ Line 54) areInOrder(a, b, false) ==> com.github.javaparser.utils.PositionUtils.areInOrder(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node, boolean)
+ Line 58) compare(a, b, ignoringAnnotations) ==> com.github.javaparser.utils.PositionUtils.compare(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node, boolean)
+ Line 63) signum(beginLineWithoutConsideringAnnotation(a) - beginLineWithoutConsideringAnnotation(b)) ==> java.lang.Integer.signum(int)
+ Line 63) beginLineWithoutConsideringAnnotation(a) ==> com.github.javaparser.utils.PositionUtils.beginLineWithoutConsideringAnnotation(com.github.javaparser.ast.Node)
+ Line 63) beginLineWithoutConsideringAnnotation(b) ==> com.github.javaparser.utils.PositionUtils.beginLineWithoutConsideringAnnotation(com.github.javaparser.ast.Node)
+ Line 65) signum(beginColumnWithoutConsideringAnnotation(a) - beginColumnWithoutConsideringAnnotation(b)) ==> java.lang.Integer.signum(int)
+ Line 65) beginColumnWithoutConsideringAnnotation(a) ==> com.github.javaparser.utils.PositionUtils.beginColumnWithoutConsideringAnnotation(com.github.javaparser.ast.Node)
+ Line 65) beginColumnWithoutConsideringAnnotation(b) ==> com.github.javaparser.utils.PositionUtils.beginColumnWithoutConsideringAnnotation(com.github.javaparser.ast.Node)
+ Line 71) signum(a.getBegin().line - b.getBegin().line) ==> java.lang.Integer.signum(int)
+ Line 71) a.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 71) b.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 73) signum(a.getBegin().column - b.getBegin().column) ==> java.lang.Integer.signum(int)
+ Line 73) a.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 73) b.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 82) annotations.addAll(((NodeWithAnnotations<?>) node).getAnnotations()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 82) ((NodeWithAnnotations<?>) node).getAnnotations() ==> com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotations()
+ Line 83) annotations.isEmpty() ==> java.util.List.isEmpty()
+ Line 86) sortByBeginPosition(annotations) ==> com.github.javaparser.utils.PositionUtils.sortByBeginPosition(java.util.List<T>)
+ Line 87) annotations.get(annotations.size() - 1) ==> java.util.List.get(int)
+ Line 87) annotations.size() ==> java.util.List.size()
+ Line 94) beginNodeWithoutConsideringAnnotations(node).getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 94) beginNodeWithoutConsideringAnnotations(node) ==> com.github.javaparser.utils.PositionUtils.beginNodeWithoutConsideringAnnotations(com.github.javaparser.ast.Node)
+ Line 99) beginNodeWithoutConsideringAnnotations(node).getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 99) beginNodeWithoutConsideringAnnotations(node) ==> com.github.javaparser.utils.PositionUtils.beginNodeWithoutConsideringAnnotations(com.github.javaparser.ast.Node)
+ Line 105) casted.getElementType() ==> com.github.javaparser.ast.nodeTypes.NodeWithElementType.getElementType()
+ Line 108) casted.getNameExpr() ==> com.github.javaparser.ast.body.TypeDeclaration.getNameExpr()
+ Line 115) PositionUtils.getLastAnnotation(container) ==> com.github.javaparser.utils.PositionUtils.getLastAnnotation(com.github.javaparser.ast.Node)
+ Line 116) container.contains(contained) ==> com.github.javaparser.ast.Node.contains(com.github.javaparser.ast.Node)
+ Line 118) container.contains(contained) ==> com.github.javaparser.ast.Node.contains(com.github.javaparser.ast.Node)
+ Line 124) beginLineWithoutConsideringAnnotation(container) ==> com.github.javaparser.utils.PositionUtils.beginLineWithoutConsideringAnnotation(com.github.javaparser.ast.Node)
+ Line 125) beginColumnWithoutConsideringAnnotation(container) ==> com.github.javaparser.utils.PositionUtils.beginColumnWithoutConsideringAnnotation(com.github.javaparser.ast.Node)
+ Line 126) contained.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 127) contained.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 127) contained.getBegin() ==> com.github.javaparser.ast.Node.getBegin()
+ Line 128) container.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 128) contained.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 130) container.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 130) contained.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 130) container.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
+ Line 130) contained.getEnd() ==> com.github.javaparser.ast.Node.getEnd()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_Utils.txt b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_Utils.txt
new file mode 100644
index 000000000..3fd87b97c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javaparser_methodcalls_expected_output/com_github_javaparser_utils_Utils.txt
@@ -0,0 +1,14 @@
+ Line 37) System.getProperty("line.separator") ==> java.lang.System.getProperty(java.lang.String)
+ Line 43) collection.isEmpty() ==> java.util.Collection.isEmpty()
+ Line 58) string.toCharArray() ==> java.lang.String.toCharArray()
+ Line 61) escapedString.append("\\n") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 64) escapedString.append("\\r") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 67) escapedString.append(c) ==> java.lang.StringBuilder.append(char)
+ Line 70) escapedString.toString() ==> java.lang.StringBuilder.toString()
+ Line 78) reader.read(buffer, 0, buffer.length) ==> java.io.Reader.read(char[], int, int)
+ Line 79) result.append(buffer, 0, numChars) ==> java.lang.StringBuilder.append(char[], int, int)
+ Line 82) result.toString() ==> java.lang.StringBuilder.toString()
+ Line 90) provider.read(buffer, 0, buffer.length) ==> com.github.javaparser.Provider.read(char[], int, int)
+ Line 91) result.append(buffer, 0, numChars) ==> java.lang.StringBuilder.append(char[], int, int)
+ Line 94) result.toString() ==> java.lang.StringBuilder.toString()
+ Line 103) Collections.addAll(list, array) ==> java.util.Collections.addAll(java.util.Collection<? super T>, T...)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/README.md b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/README.md
new file mode 100644
index 000000000..389f94c20
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/README.md
@@ -0,0 +1,8 @@
+For the tests regarding resolving symbols in Jar files, we need some jar files. Some other tests within JavaSymbolSolver use established external jars for that purpose. Given the very specific cases we need here, that would severly complicate writing and maintaining tests. Therefore, I've decided to write custom jars for the cases we need.
+
+`main_jar` contains most of the necessary classes, `included_jar` and `excluded_jar` both contain an interface and a superclass. Included_jar is included in the combined type solver, while excluded_jar is not.
+
+Running the buildTestJarMainJar gradle task should rebuild all necessary files.
+When you need to rebuild the jar, it is important to make sure you actually update the jar in git. Jar-files are in the git-ignore, so you'll have to force-add them using `git -f main_jar.jar`.
+
+(`result` was chosen as a name instead of `target` or `out`, because those seem to be ignored.) \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/excluded_jar.jar b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/excluded_jar.jar
new file mode 100644
index 000000000..2f5058ea1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/excluded_jar.jar
Binary files differ
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/result/doNotDelete.md b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/result/doNotDelete.md
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/result/doNotDelete.md
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/excluded_jar/InterfaceExcludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/excluded_jar/InterfaceExcludedJar.java
new file mode 100644
index 000000000..0dd82c253
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/excluded_jar/InterfaceExcludedJar.java
@@ -0,0 +1,5 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.excluded_jar;
+
+public interface InterfaceExcludedJar {
+ public static final String INTERFACE_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/excluded_jar/SuperClassExcludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/excluded_jar/SuperClassExcludedJar.java
new file mode 100644
index 000000000..6eb45f0fe
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/excluded_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/excluded_jar/SuperClassExcludedJar.java
@@ -0,0 +1,5 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.excluded_jar;
+
+public class SuperClassExcludedJar {
+ public static final String SUPER_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/included_jar.jar b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/included_jar.jar
new file mode 100644
index 000000000..990697e0e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/included_jar.jar
Binary files differ
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/result/doNotDelete.md b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/result/doNotDelete.md
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/result/doNotDelete.md
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/included_jar/InterfaceIncludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/included_jar/InterfaceIncludedJar.java
new file mode 100644
index 000000000..6afbd0974
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/included_jar/InterfaceIncludedJar.java
@@ -0,0 +1,5 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.included_jar;
+
+public interface InterfaceIncludedJar {
+ public static final String INTERFACE_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/included_jar/SuperClassIncludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/included_jar/SuperClassIncludedJar.java
new file mode 100644
index 000000000..44be5ca2b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/included_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/included_jar/SuperClassIncludedJar.java
@@ -0,0 +1,5 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.included_jar;
+
+public class SuperClassIncludedJar {
+ public static final String SUPER_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/main_jar.jar b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/main_jar.jar
new file mode 100644
index 000000000..faec52d75
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/main_jar.jar
Binary files differ
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/result/doNotDelete.md b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/result/doNotDelete.md
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/result/doNotDelete.md
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/ConcreteClass.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/ConcreteClass.java
new file mode 100644
index 000000000..b8616838c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/ConcreteClass.java
@@ -0,0 +1,6 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+public class ConcreteClass {
+ public static final String STATIC_STRING = "ThisIsAString";
+ public static final String SECOND_STRING = "ThisIsASecondString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/ConcreteEnum.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/ConcreteEnum.java
new file mode 100644
index 000000000..6dc246784
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/ConcreteEnum.java
@@ -0,0 +1,10 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+public enum ConcreteEnum {
+ ENUM_VAL_ONE,
+ ENUM_VAL_TWO;
+
+ public static final String STATIC_STRING = "ThisIsAString";
+ public static final String SECOND_STRING = "ThisIsASecondString";
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserExcludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserExcludedJar.java
new file mode 100644
index 000000000..0d403ace2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserExcludedJar.java
@@ -0,0 +1,7 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+import com.github.javaparser.javasymbolsolver.javassist_symbols.excluded_jar.InterfaceExcludedJar;
+
+public enum EnumInterfaceUserExcludedJar implements InterfaceExcludedJar {
+ OWN_ENUM_VAL
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserIncludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserIncludedJar.java
new file mode 100644
index 000000000..910e5d0cf
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserIncludedJar.java
@@ -0,0 +1,7 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+import com.github.javaparser.javasymbolsolver.javassist_symbols.included_jar.InterfaceIncludedJar;
+
+public enum EnumInterfaceUserIncludedJar implements InterfaceIncludedJar {
+ OWN_ENUM_VAL
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserOwnJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserOwnJar.java
new file mode 100644
index 000000000..43bf7031b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/EnumInterfaceUserOwnJar.java
@@ -0,0 +1,5 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+public enum EnumInterfaceUserOwnJar implements InterfaceOwnJar {
+ OWN_ENUM_VAL
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceOwnJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceOwnJar.java
new file mode 100644
index 000000000..6809f26f1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceOwnJar.java
@@ -0,0 +1,5 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+public interface InterfaceOwnJar {
+ public static final String INTERFACE_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserExcludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserExcludedJar.java
new file mode 100644
index 000000000..5e483f3d6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserExcludedJar.java
@@ -0,0 +1,7 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+import com.github.javaparser.javasymbolsolver.javassist_symbols.excluded_jar.InterfaceExcludedJar;
+
+public class InterfaceUserExcludedJar implements InterfaceExcludedJar {
+ public static final String OWN_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserIncludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserIncludedJar.java
new file mode 100644
index 000000000..2eba2718b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserIncludedJar.java
@@ -0,0 +1,7 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+import com.github.javaparser.javasymbolsolver.javassist_symbols.included_jar.InterfaceIncludedJar;
+
+public class InterfaceUserIncludedJar implements InterfaceIncludedJar {
+ public static final String OWN_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserOwnJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserOwnJar.java
new file mode 100644
index 000000000..4126915eb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/InterfaceUserOwnJar.java
@@ -0,0 +1,5 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+public class InterfaceUserOwnJar implements InterfaceOwnJar {
+ public static final String OWN_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/StandaloneInterface.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/StandaloneInterface.java
new file mode 100644
index 000000000..99e1f0066
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/StandaloneInterface.java
@@ -0,0 +1,6 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+public interface StandaloneInterface {
+ public static final String STATIC_STRING = "ThisIsAString";
+ public static final String SECOND_STRING = "ThisIsASecondString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassExcludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassExcludedJar.java
new file mode 100644
index 000000000..6c495eda8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassExcludedJar.java
@@ -0,0 +1,7 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+import com.github.javaparser.javasymbolsolver.javassist_symbols.excluded_jar.SuperClassExcludedJar;
+
+public class SubClassExcludedJar extends SuperClassExcludedJar {
+ public static final String OWN_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassIncludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassIncludedJar.java
new file mode 100644
index 000000000..32a4d1088
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassIncludedJar.java
@@ -0,0 +1,7 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+import com.github.javaparser.javasymbolsolver.javassist_symbols.included_jar.SuperClassIncludedJar;
+
+public class SubClassIncludedJar extends SuperClassIncludedJar {
+ public static final String OWN_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassOwnJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassOwnJar.java
new file mode 100644
index 000000000..41efa3c7a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubClassOwnJar.java
@@ -0,0 +1,5 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+public class SubClassOwnJar extends SuperClassOwnJar {
+ public static final String OWN_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceExcludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceExcludedJar.java
new file mode 100644
index 000000000..3021e0889
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceExcludedJar.java
@@ -0,0 +1,7 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+import com.github.javaparser.javasymbolsolver.javassist_symbols.excluded_jar.InterfaceExcludedJar;
+
+public interface SubInterfaceExcludedJar extends InterfaceExcludedJar {
+ public static final String OWN_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceIncludedJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceIncludedJar.java
new file mode 100644
index 000000000..906e53727
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceIncludedJar.java
@@ -0,0 +1,7 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+import com.github.javaparser.javasymbolsolver.javassist_symbols.included_jar.InterfaceIncludedJar;
+
+public interface SubInterfaceIncludedJar extends InterfaceIncludedJar {
+ public static final String OWN_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceOwnJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceOwnJar.java
new file mode 100644
index 000000000..891e94ed2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SubInterfaceOwnJar.java
@@ -0,0 +1,5 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+public interface SubInterfaceOwnJar extends InterfaceOwnJar {
+ public static final String OWN_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SuperClassOwnJar.java b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SuperClassOwnJar.java
new file mode 100644
index 000000000..d89666b45
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javassist_symbols/main_jar/src/com/github/javaparser/javasymbolsolver/javassist_symbols/main_jar/SuperClassOwnJar.java
@@ -0,0 +1,5 @@
+package com.github.javaparser.javasymbolsolver.javassist_symbols.main_jar;
+
+public class SuperClassOwnJar {
+ public static final String SUPER_FIELD = "ThisIsAString";
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_SourceFileInfoExtractor.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_SourceFileInfoExtractor.txt
new file mode 100644
index 000000000..8537d6207
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_SourceFileInfoExtractor.txt
@@ -0,0 +1,77 @@
+ Line 100) JavaParserFacade.get(typeSolver).getTypeDeclaration(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)
+ Line 100) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 101) typeDeclaration.isClass() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isClass()
+ Line 102) out.println("\n[ Class " + typeDeclaration.getQualifiedName() + " ]") ==> java.io.PrintStream.println(java.lang.String)
+ Line 102) typeDeclaration.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 103) typeDeclaration.asClass().getAllSuperClasses() ==> com.github.javaparser.symbolsolver.model.declarations.ClassDeclaration.getAllSuperClasses()
+ Line 103) typeDeclaration.asClass() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asClass()
+ Line 104) out.println(" superclass: " + sc.getQualifiedName()) ==> java.io.PrintStream.println(java.lang.String)
+ Line 104) sc.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 106) typeDeclaration.asClass().getAllInterfaces() ==> com.github.javaparser.symbolsolver.model.declarations.ClassDeclaration.getAllInterfaces()
+ Line 106) typeDeclaration.asClass() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asClass()
+ Line 107) out.println(" interface: " + sc.getQualifiedName()) ==> java.io.PrintStream.println(java.lang.String)
+ Line 107) sc.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 114) solveTypeDecl((ClassOrInterfaceDeclaration) node) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.solveTypeDecl(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)
+ Line 116) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 116) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 117) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 118) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 120) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 120) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 122) JavaParserFacade.get(typeSolver).getType(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 122) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 123) out.println(" Line " + node.getRange().get().begin.line + ") " + node + " ==> " + ref.describe()) ==> java.io.PrintStream.println(java.lang.String)
+ Line 123) node.getRange().get() ==> java.util.Optional.get()
+ Line 123) node.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 123) ref.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 127) err.println(upe.getMessage()) ==> java.io.PrintStream.println(java.lang.String)
+ Line 127) upe.getMessage() ==> java.lang.Throwable.getMessage()
+ Line 131) err.println(re.getMessage()) ==> java.io.PrintStream.println(java.lang.String)
+ Line 131) re.getMessage() ==> java.lang.Throwable.getMessage()
+ Line 140) out.println(" Line " + node.getBegin().get().line + ") " + node + " ==> " + toString((MethodCallExpr) node)) ==> java.io.PrintStream.println(java.lang.String)
+ Line 140) node.getBegin().get() ==> java.util.Optional.get()
+ Line 140) node.getBegin() ==> com.github.javaparser.ast.nodeTypes.NodeWithRange.getBegin()
+ Line 140) toString((MethodCallExpr) node) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.toString(com.github.javaparser.ast.expr.MethodCallExpr)
+ Line 142) node.getChildNodes() ==> com.github.javaparser.ast.Node.getChildNodes()
+ Line 143) solveMethodCalls(child) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.solveMethodCalls(com.github.javaparser.ast.Node)
+ Line 149) toString(JavaParserFacade.get(typeSolver).solve(node)) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.toString(com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>)
+ Line 149) JavaParserFacade.get(typeSolver).solve(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.expr.MethodCallExpr)
+ Line 149) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 152) System.err.println("Error resolving call at L" + node.getBegin().get().line + ": " + node) ==> java.io.PrintStream.println(java.lang.String)
+ Line 152) node.getBegin().get() ==> java.util.Optional.get()
+ Line 152) node.getBegin() ==> com.github.javaparser.ast.nodeTypes.NodeWithRange.getBegin()
+ Line 153) e.printStackTrace() ==> java.lang.Throwable.printStackTrace()
+ Line 160) methodDeclarationSymbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 161) methodDeclarationSymbolReference.getCorrespondingDeclaration().getQualifiedSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getQualifiedSignature()
+ Line 161) methodDeclarationSymbolReference.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 169) collectAllNodes(node, nodes) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.collectAllNodes(com.github.javaparser.ast.Node, java.util.List<com.github.javaparser.ast.Node>)
+ Line 170) nodes.sort((n1, n2) -> n1.getBegin().get().compareTo(n2.getBegin().get())) ==> java.util.List.sort(java.util.Comparator<? super E>)
+ Line 170) n1.getBegin().get().compareTo(n2.getBegin().get()) ==> ERROR
+ Line 170) n1.getBegin().get() ==> ERROR
+ Line 170) n1.getBegin() ==> com.github.javaparser.ast.nodeTypes.NodeWithRange.getBegin()
+ Line 170) n2.getBegin().get() ==> ERROR
+ Line 170) n2.getBegin() ==> com.github.javaparser.ast.nodeTypes.NodeWithRange.getBegin()
+ Line 175) nodes.add(node) ==> java.util.List.add(E)
+ Line 176) node.getChildNodes().forEach(c -> collectAllNodes(c, nodes)) ==> java.lang.Iterable.forEach(java.util.function.Consumer<? super T>)
+ Line 176) node.getChildNodes() ==> com.github.javaparser.ast.Node.getChildNodes()
+ Line 176) collectAllNodes(c, nodes) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.collectAllNodes(com.github.javaparser.ast.Node, java.util.List<com.github.javaparser.ast.Node>)
+ Line 180) file.isDirectory() ==> java.io.File.isDirectory()
+ Line 181) file.listFiles() ==> java.io.File.listFiles()
+ Line 182) solve(f) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.solve(java.io.File)
+ Line 185) file.getName().endsWith(".java") ==> java.lang.String.endsWith(java.lang.String)
+ Line 185) file.getName() ==> java.io.File.getName()
+ Line 187) out.println("- parsing " + file.getAbsolutePath()) ==> java.io.PrintStream.println(java.lang.String)
+ Line 187) file.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 189) JavaParser.parse(file) ==> com.github.javaparser.JavaParser.parse(java.io.File)
+ Line 190) collectAllNodes(cu) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.collectAllNodes(com.github.javaparser.ast.Node)
+ Line 191) nodes.forEach(n -> solve(n)) ==> java.lang.Iterable.forEach(java.util.function.Consumer<? super T>)
+ Line 191) solve(n) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.solve(com.github.javaparser.ast.Node)
+ Line 197) file.isDirectory() ==> java.io.File.isDirectory()
+ Line 198) file.listFiles() ==> java.io.File.listFiles()
+ Line 199) solveMethodCalls(f) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.solveMethodCalls(java.io.File)
+ Line 202) file.getName().endsWith(".java") ==> java.lang.String.endsWith(java.lang.String)
+ Line 202) file.getName() ==> java.io.File.getName()
+ Line 204) out.println("- parsing " + file.getAbsolutePath()) ==> java.io.PrintStream.println(java.lang.String)
+ Line 204) file.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 206) JavaParser.parse(file) ==> com.github.javaparser.JavaParser.parse(java.io.File)
+ Line 207) solveMethodCalls(cu) ==> com.github.javaparser.symbolsolver.SourceFileInfoExtractor.solveMethodCalls(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_core_resolution_Context.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_core_resolution_Context.txt
new file mode 100644
index 000000000..ddde45d2d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_core_resolution_Context.txt
@@ -0,0 +1,16 @@
+ Line 42) Optional.empty() ==> java.util.Optional.empty()
+ Line 46) getParent() ==> com.github.javaparser.symbolsolver.core.resolution.Context.getParent()
+ Line 48) SymbolReference.unsolved(ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 50) parent.solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 59) solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 60) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 61) Value.from(ref.getCorrespondingDeclaration()) ==> com.github.javaparser.symbolsolver.model.resolution.Value.from(com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration)
+ Line 61) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 62) Optional.of(value) ==> java.util.Optional.of(T)
+ Line 64) Optional.empty() ==> java.util.Optional.empty()
+ Line 89) solveMethod(name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 90) methodSolved.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 91) methodSolved.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 92) ContextHelper.resolveTypeVariables(this, methodDeclaration, argumentsTypes) ==> com.github.javaparser.symbolsolver.core.resolution.ContextHelper.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 93) Optional.of(methodUsage) ==> java.util.Optional.of(T)
+ Line 95) Optional.empty() ==> java.util.Optional.empty()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_core_resolution_ContextHelper.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_core_resolution_ContextHelper.txt
new file mode 100644
index 000000000..396ccf7b1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_core_resolution_ContextHelper.txt
@@ -0,0 +1,4 @@
+ Line 40) ((JavaParserMethodDeclaration) methodDeclaration).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserMethodDeclaration.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 42) ((JavassistMethodDeclaration) methodDeclaration).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistMethodDeclaration.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 44) ((JavaParserEnumDeclaration.ValuesMethod) methodDeclaration).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration.ValuesMethod.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 46) ((ReflectionMethodDeclaration) methodDeclaration).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionMethodDeclaration.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_declarations_common_MethodDeclarationCommonLogic.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_declarations_common_MethodDeclarationCommonLogic.txt
new file mode 100644
index 000000000..243cffefc
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_declarations_common_MethodDeclarationCommonLogic.txt
@@ -0,0 +1,34 @@
+ Line 47) replaceTypeParams(methodDeclaration.getReturnType(), typeSolver, context) ==> com.github.javaparser.symbolsolver.declarations.common.MethodDeclarationCommonLogic.replaceTypeParams(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 47) methodDeclaration.getReturnType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration.getReturnType()
+ Line 49) methodDeclaration.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 50) replaceTypeParams(methodDeclaration.getParam(i).getType(), typeSolver, context) ==> com.github.javaparser.symbolsolver.declarations.common.MethodDeclarationCommonLogic.replaceTypeParams(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 50) methodDeclaration.getParam(i).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 50) methodDeclaration.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 51) params.add(replaced) ==> java.util.List.add(E)
+ Line 58) methodDeclaration.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 58) methodDeclaration.hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 59) methodDeclaration.getParam(i).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 59) methodDeclaration.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 60) parameterTypes.get(i) ==> java.util.List.get(int)
+ Line 61) inferenceContext.addPair(formalParamType, actualParamType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 64) inferenceContext.resolve(inferenceContext.addSingle(returnType)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 64) inferenceContext.addSingle(returnType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addSingle(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 70) type.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 71) type.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 72) typeParameter.declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 73) typeParamByName(typeParameter.getName(), typeSolver, context) ==> com.github.javaparser.symbolsolver.declarations.common.MethodDeclarationCommonLogic.typeParamByName(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 73) typeParameter.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 74) typeParam.isPresent() ==> java.util.Optional.isPresent()
+ Line 75) typeParam.get() ==> java.util.Optional.get()
+ Line 80) type.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 81) type.asReferenceType().transformTypeParameters(tp -> replaceTypeParams(tp, typeSolver, context)) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.transformTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.TypeTransformer)
+ Line 81) type.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 81) replaceTypeParams(tp, typeSolver, context) ==> com.github.javaparser.symbolsolver.declarations.common.MethodDeclarationCommonLogic.replaceTypeParams(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 88) methodDeclaration.getTypeParameters().stream().filter(tp -> tp.getName().equals(name)).map(tp -> toType(tp)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 88) methodDeclaration.getTypeParameters().stream().filter(tp -> tp.getName().equals(name)).map(tp -> toType(tp)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 88) methodDeclaration.getTypeParameters().stream().filter(tp -> tp.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 88) methodDeclaration.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 88) methodDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 88) tp.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 88) tp.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 88) toType(tp) ==> com.github.javaparser.symbolsolver.declarations.common.MethodDeclarationCommonLogic.toType(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparser_Navigator.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparser_Navigator.txt
new file mode 100644
index 000000000..ea0f5e5a4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparser_Navigator.txt
@@ -0,0 +1,104 @@
+ Line 44) node.getParentNode().orElse(null) ==> java.util.Optional.orElse(T)
+ Line 44) node.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 49) cu.getTypes().isEmpty() ==> com.github.javaparser.ast.NodeList.isEmpty()
+ Line 49) cu.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 50) Optional.empty() ==> java.util.Optional.empty()
+ Line 53) getOuterTypeName(qualifiedName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getOuterTypeName(java.lang.String)
+ Line 54) cu.getTypes().stream().filter((t) -> t.getName().getId().equals(typeName)).findFirst() ==> ERROR
+ Line 54) cu.getTypes().stream().filter((t) -> t.getName().getId().equals(typeName)) ==> ERROR
+ Line 54) cu.getTypes().stream() ==> java.util.Collection.stream()
+ Line 54) cu.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 54) t.getName().getId().equals(typeName) ==> ERROR
+ Line 54) t.getName().getId() ==> ERROR
+ Line 54) t.getName() ==> ERROR
+ Line 56) getInnerTypeName(qualifiedName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getInnerTypeName(java.lang.String)
+ Line 57) type.isPresent() ==> java.util.Optional.isPresent()
+ Line 57) innerTypeName.isEmpty() ==> java.lang.String.isEmpty()
+ Line 58) findType(type.get(), innerTypeName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findType(com.github.javaparser.ast.body.TypeDeclaration<?>, java.lang.String)
+ Line 58) type.get() ==> java.util.Optional.get()
+ Line 64) getOuterTypeName(qualifiedName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getOuterTypeName(java.lang.String)
+ Line 66) Optional.empty() ==> java.util.Optional.empty()
+ Line 67) td.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 68) ((TypeDeclaration<?>) n).getName().getId().equals(typeName) ==> java.lang.String.equals(java.lang.Object)
+ Line 68) ((TypeDeclaration<?>) n).getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 68) ((TypeDeclaration<?>) n).getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 69) Optional.of((TypeDeclaration<?>) n) ==> java.util.Optional.of(T)
+ Line 73) getInnerTypeName(qualifiedName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getInnerTypeName(java.lang.String)
+ Line 74) type.isPresent() ==> java.util.Optional.isPresent()
+ Line 74) innerTypeName.isEmpty() ==> java.lang.String.isEmpty()
+ Line 75) findType(type.get(), innerTypeName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findType(com.github.javaparser.ast.body.TypeDeclaration<?>, java.lang.String)
+ Line 75) type.get() ==> java.util.Optional.get()
+ Line 81) demandClassOrInterface(cu, qualifiedName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.demandClassOrInterface(com.github.javaparser.ast.CompilationUnit, java.lang.String)
+ Line 82) cd.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 89) findType(cu, qualifiedName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findType(com.github.javaparser.ast.CompilationUnit, java.lang.String)
+ Line 90) res.isPresent() ==> java.util.Optional.isPresent()
+ Line 93) res.get() ==> java.util.Optional.get()
+ Line 96) res.get() ==> java.util.Optional.get()
+ Line 101) cd.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 104) md.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 104) md.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 104) md.getName() ==> com.github.javaparser.ast.body.CallableDeclaration.getName()
+ Line 119) cd.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 122) fd.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 123) vd.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 123) vd.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 123) vd.getName() ==> com.github.javaparser.ast.body.VariableDeclarator.getName()
+ Line 135) nameExpr.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 135) nameExpr.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 135) nameExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 135) nameExpr.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 139) node.getChildNodes() ==> com.github.javaparser.ast.Node.getChildNodes()
+ Line 140) findNameExpression(child, name) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findNameExpression(com.github.javaparser.ast.Node, java.lang.String)
+ Line 151) nameExpr.getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 151) nameExpr.getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 151) nameExpr.getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 155) node.getChildNodes() ==> com.github.javaparser.ast.Node.getChildNodes()
+ Line 156) findSimpleName(child, name) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findSimpleName(com.github.javaparser.ast.Node, java.lang.String)
+ Line 167) methodCallExpr.getName().getId().equals(methodName) ==> java.lang.String.equals(java.lang.Object)
+ Line 167) methodCallExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 167) methodCallExpr.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 171) node.getChildNodes() ==> com.github.javaparser.ast.Node.getChildNodes()
+ Line 172) findMethodCall(child, methodName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findMethodCall(com.github.javaparser.ast.Node, java.lang.String)
+ Line 183) variableDeclarator.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 183) variableDeclarator.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 183) variableDeclarator.getName() ==> com.github.javaparser.ast.body.VariableDeclarator.getName()
+ Line 187) node.getChildNodes() ==> com.github.javaparser.ast.Node.getChildNodes()
+ Line 188) demandVariableDeclaration(child, name) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.demandVariableDeclaration(com.github.javaparser.ast.Node, java.lang.String)
+ Line 197) findType(compilationUnit, qualifiedName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findType(com.github.javaparser.ast.CompilationUnit, java.lang.String)
+ Line 198) res.isPresent() ==> java.util.Optional.isPresent()
+ Line 201) res.get() ==> java.util.Optional.get()
+ Line 202) res.get().getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 202) res.get().getClass() ==> java.lang.Object.getClass()
+ Line 202) res.get() ==> java.util.Optional.get()
+ Line 204) res.get() ==> java.util.Optional.get()
+ Line 209) findSwitchHelper(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findSwitchHelper(com.github.javaparser.ast.Node)
+ Line 218) findNodeOfGivenClassHelper(node, clazz) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findNodeOfGivenClassHelper(com.github.javaparser.ast.Node, java.lang.Class<N>)
+ Line 228) findAllNodesOfGivenClassHelper(node, clazz, res) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findAllNodesOfGivenClassHelper(com.github.javaparser.ast.Node, java.lang.Class<N>, java.util.List<N>)
+ Line 233) findNodeOfGivenClass(method, ReturnStmt.class) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findNodeOfGivenClass(com.github.javaparser.ast.Node, java.lang.Class<N>)
+ Line 237) node.getParentNode().isPresent() ==> java.util.Optional.isPresent()
+ Line 237) node.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 238) Optional.empty() ==> java.util.Optional.empty()
+ Line 239) clazz.isInstance(node.getParentNode().get()) ==> java.lang.Class.isInstance(java.lang.Object)
+ Line 239) node.getParentNode().get() ==> java.util.Optional.get()
+ Line 239) node.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 240) Optional.of(clazz.cast(node.getParentNode().get())) ==> java.util.Optional.of(T)
+ Line 240) clazz.cast(node.getParentNode().get()) ==> java.lang.Class.cast(java.lang.Object)
+ Line 240) node.getParentNode().get() ==> java.util.Optional.get()
+ Line 240) node.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 242) findAncestor(node.getParentNode().get(), clazz) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findAncestor(com.github.javaparser.ast.Node, java.lang.Class<N>)
+ Line 242) node.getParentNode().get() ==> java.util.Optional.get()
+ Line 242) node.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 251) qualifiedName.split("\\.", 2) ==> java.lang.String.split(java.lang.String, int)
+ Line 255) qualifiedName.contains(".") ==> java.lang.String.contains(java.lang.CharSequence)
+ Line 256) qualifiedName.split("\\.", 2) ==> java.lang.String.split(java.lang.String, int)
+ Line 265) node.getChildNodes() ==> com.github.javaparser.ast.Node.getChildNodes()
+ Line 266) findSwitchHelper(child) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findSwitchHelper(com.github.javaparser.ast.Node)
+ Line 275) clazz.isInstance(node) ==> java.lang.Class.isInstance(java.lang.Object)
+ Line 276) clazz.cast(node) ==> java.lang.Class.cast(java.lang.Object)
+ Line 278) node.getChildNodes() ==> com.github.javaparser.ast.Node.getChildNodes()
+ Line 279) findNodeOfGivenClassHelper(child, clazz) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findNodeOfGivenClassHelper(com.github.javaparser.ast.Node, java.lang.Class<N>)
+ Line 288) clazz.isInstance(node) ==> java.lang.Class.isInstance(java.lang.Object)
+ Line 289) collector.add(clazz.cast(node)) ==> java.util.List.add(E)
+ Line 289) clazz.cast(node) ==> java.lang.Class.cast(java.lang.Object)
+ Line 291) node.getChildNodes() ==> com.github.javaparser.ast.Node.getChildNodes()
+ Line 292) findAllNodesOfGivenClassHelper(child, clazz, collector) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findAllNodesOfGivenClassHelper(com.github.javaparser.ast.Node, java.lang.Class<N>, java.util.List<N>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_DefaultVisitorAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_DefaultVisitorAdapter.txt
new file mode 100644
index 000000000..b55a6007e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_DefaultVisitorAdapter.txt
@@ -0,0 +1,180 @@
+ Line 18) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 18) node.getClass() ==> java.lang.Object.getClass()
+ Line 23) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 23) node.getClass() ==> java.lang.Object.getClass()
+ Line 28) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 28) node.getClass() ==> java.lang.Object.getClass()
+ Line 33) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 33) node.getClass() ==> java.lang.Object.getClass()
+ Line 38) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 38) node.getClass() ==> java.lang.Object.getClass()
+ Line 43) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 43) node.getClass() ==> java.lang.Object.getClass()
+ Line 48) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 48) node.getClass() ==> java.lang.Object.getClass()
+ Line 53) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 53) node.getClass() ==> java.lang.Object.getClass()
+ Line 58) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 58) node.getClass() ==> java.lang.Object.getClass()
+ Line 63) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 63) node.getClass() ==> java.lang.Object.getClass()
+ Line 68) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 68) node.getClass() ==> java.lang.Object.getClass()
+ Line 73) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 73) node.getClass() ==> java.lang.Object.getClass()
+ Line 78) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 78) node.getClass() ==> java.lang.Object.getClass()
+ Line 83) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 83) node.getClass() ==> java.lang.Object.getClass()
+ Line 88) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 88) node.getClass() ==> java.lang.Object.getClass()
+ Line 93) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 93) node.getClass() ==> java.lang.Object.getClass()
+ Line 98) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 98) node.getClass() ==> java.lang.Object.getClass()
+ Line 103) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 103) node.getClass() ==> java.lang.Object.getClass()
+ Line 108) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 108) node.getClass() ==> java.lang.Object.getClass()
+ Line 113) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 113) node.getClass() ==> java.lang.Object.getClass()
+ Line 118) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 118) node.getClass() ==> java.lang.Object.getClass()
+ Line 123) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 123) node.getClass() ==> java.lang.Object.getClass()
+ Line 128) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 128) node.getClass() ==> java.lang.Object.getClass()
+ Line 133) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 133) node.getClass() ==> java.lang.Object.getClass()
+ Line 138) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 138) node.getClass() ==> java.lang.Object.getClass()
+ Line 143) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 143) node.getClass() ==> java.lang.Object.getClass()
+ Line 148) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 148) node.getClass() ==> java.lang.Object.getClass()
+ Line 153) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 153) node.getClass() ==> java.lang.Object.getClass()
+ Line 158) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 158) node.getClass() ==> java.lang.Object.getClass()
+ Line 163) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 163) node.getClass() ==> java.lang.Object.getClass()
+ Line 168) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 168) node.getClass() ==> java.lang.Object.getClass()
+ Line 173) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 173) node.getClass() ==> java.lang.Object.getClass()
+ Line 178) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 178) node.getClass() ==> java.lang.Object.getClass()
+ Line 183) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 183) node.getClass() ==> java.lang.Object.getClass()
+ Line 188) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 188) node.getClass() ==> java.lang.Object.getClass()
+ Line 193) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 193) node.getClass() ==> java.lang.Object.getClass()
+ Line 198) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 198) node.getClass() ==> java.lang.Object.getClass()
+ Line 203) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 203) node.getClass() ==> java.lang.Object.getClass()
+ Line 208) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 208) node.getClass() ==> java.lang.Object.getClass()
+ Line 213) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 213) node.getClass() ==> java.lang.Object.getClass()
+ Line 218) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 218) node.getClass() ==> java.lang.Object.getClass()
+ Line 223) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 223) node.getClass() ==> java.lang.Object.getClass()
+ Line 228) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 228) node.getClass() ==> java.lang.Object.getClass()
+ Line 233) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 233) node.getClass() ==> java.lang.Object.getClass()
+ Line 238) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 238) node.getClass() ==> java.lang.Object.getClass()
+ Line 243) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 243) node.getClass() ==> java.lang.Object.getClass()
+ Line 248) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 248) node.getClass() ==> java.lang.Object.getClass()
+ Line 253) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 253) node.getClass() ==> java.lang.Object.getClass()
+ Line 258) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 258) node.getClass() ==> java.lang.Object.getClass()
+ Line 263) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 263) node.getClass() ==> java.lang.Object.getClass()
+ Line 268) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 268) node.getClass() ==> java.lang.Object.getClass()
+ Line 273) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 273) node.getClass() ==> java.lang.Object.getClass()
+ Line 278) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 278) node.getClass() ==> java.lang.Object.getClass()
+ Line 283) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 283) node.getClass() ==> java.lang.Object.getClass()
+ Line 288) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 288) node.getClass() ==> java.lang.Object.getClass()
+ Line 293) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 293) node.getClass() ==> java.lang.Object.getClass()
+ Line 298) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 298) node.getClass() ==> java.lang.Object.getClass()
+ Line 303) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 303) node.getClass() ==> java.lang.Object.getClass()
+ Line 308) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 308) node.getClass() ==> java.lang.Object.getClass()
+ Line 313) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 313) node.getClass() ==> java.lang.Object.getClass()
+ Line 318) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 318) node.getClass() ==> java.lang.Object.getClass()
+ Line 323) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 323) node.getClass() ==> java.lang.Object.getClass()
+ Line 328) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 328) node.getClass() ==> java.lang.Object.getClass()
+ Line 333) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 333) node.getClass() ==> java.lang.Object.getClass()
+ Line 338) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 338) node.getClass() ==> java.lang.Object.getClass()
+ Line 343) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 343) node.getClass() ==> java.lang.Object.getClass()
+ Line 348) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 348) node.getClass() ==> java.lang.Object.getClass()
+ Line 353) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 353) node.getClass() ==> java.lang.Object.getClass()
+ Line 358) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 358) node.getClass() ==> java.lang.Object.getClass()
+ Line 363) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 363) node.getClass() ==> java.lang.Object.getClass()
+ Line 368) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 368) node.getClass() ==> java.lang.Object.getClass()
+ Line 373) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 373) node.getClass() ==> java.lang.Object.getClass()
+ Line 378) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 378) node.getClass() ==> java.lang.Object.getClass()
+ Line 383) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 383) node.getClass() ==> java.lang.Object.getClass()
+ Line 388) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 388) node.getClass() ==> java.lang.Object.getClass()
+ Line 393) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 393) node.getClass() ==> java.lang.Object.getClass()
+ Line 398) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 398) node.getClass() ==> java.lang.Object.getClass()
+ Line 403) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 403) node.getClass() ==> java.lang.Object.getClass()
+ Line 408) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 408) node.getClass() ==> java.lang.Object.getClass()
+ Line 413) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 413) node.getClass() ==> java.lang.Object.getClass()
+ Line 418) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 418) node.getClass() ==> java.lang.Object.getClass()
+ Line 423) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 423) node.getClass() ==> java.lang.Object.getClass()
+ Line 428) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 428) node.getClass() ==> java.lang.Object.getClass()
+ Line 433) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 433) node.getClass() ==> java.lang.Object.getClass()
+ Line 438) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 438) node.getClass() ==> java.lang.Object.getClass()
+ Line 443) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 443) node.getClass() ==> java.lang.Object.getClass()
+ Line 448) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 448) node.getClass() ==> java.lang.Object.getClass()
+ Line 453) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 453) node.getClass() ==> java.lang.Object.getClass()
+ Line 458) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 458) node.getClass() ==> java.lang.Object.getClass()
+ Line 463) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 463) node.getClass() ==> java.lang.Object.getClass()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_JavaParserFacade.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_JavaParserFacade.txt
new file mode 100644
index 000000000..bb9ceb336
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_JavaParserFacade.txt
@@ -0,0 +1,253 @@
+ Line 58) Logger.getLogger(JavaParserFacade.class.getCanonicalName()) ==> java.util.logging.Logger.getLogger(java.lang.String)
+ Line 58) JavaParserFacade.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 61) logger.setLevel(Level.INFO) ==> java.util.logging.Logger.setLevel(java.util.logging.Level)
+ Line 63) consoleHandler.setLevel(Level.INFO) ==> java.util.logging.Handler.setLevel(java.util.logging.Level)
+ Line 64) logger.addHandler(consoleHandler) ==> java.util.logging.Logger.addHandler(java.util.logging.Handler)
+ Line 75) typeSolver.getRoot() ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.getRoot()
+ Line 89) instances.computeIfAbsent(typeSolver, JavaParserFacade::new) ==> java.util.Map.computeIfAbsent(K, java.util.function.Function<? super K, ? extends V>)
+ Line 96) instances.clear() ==> java.util.Map.clear()
+ Line 100) type.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 101) context.solveGenericType(type.describe(), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveGenericType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 101) type.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 102) solved.isPresent() ==> java.util.Optional.isPresent()
+ Line 103) solved.get() ==> java.util.Optional.get()
+ Line 107) type.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 108) type.asWildcard().isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 108) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 108) type.asWildcard().isSuper() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isSuper()
+ Line 108) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 109) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 110) solveGenericTypes(wildcardUsage.getBoundedType(), context, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveGenericTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.core.resolution.Context, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 110) wildcardUsage.getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 111) wildcardUsage.isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 112) Wildcard.extendsBound(boundResolved) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 114) Wildcard.superBound(boundResolved) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.superBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 126) symbolSolver.solveSymbol(nameExpr.getName().getId(), nameExpr) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbol(java.lang.String, com.github.javaparser.ast.Node)
+ Line 126) nameExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 126) nameExpr.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 130) symbolSolver.solveSymbol(nameExpr.getId(), nameExpr) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbol(java.lang.String, com.github.javaparser.ast.Node)
+ Line 130) nameExpr.getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 135) solve((NameExpr) expr) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.expr.NameExpr)
+ Line 137) expr.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 137) expr.getClass() ==> java.lang.Object.getClass()
+ Line 142) solve(methodCallExpr, true) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.expr.MethodCallExpr, boolean)
+ Line 146) solve(objectCreationExpr, true) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.expr.ObjectCreationExpr, boolean)
+ Line 150) solve(explicitConstructorInvocationStmt, true) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt, boolean)
+ Line 157) solveArguments(explicitConstructorInvocationStmt, explicitConstructorInvocationStmt.getArguments(), solveLambdas, argumentTypes, placeholders) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveArguments(com.github.javaparser.ast.Node, com.github.javaparser.ast.NodeList<com.github.javaparser.ast.expr.Expression>, boolean, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, java.util.List<com.github.javaparser.symbolsolver.javaparsermodel.LambdaArgumentTypePlaceholder>)
+ Line 157) explicitConstructorInvocationStmt.getArguments() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.getArguments()
+ Line 159) explicitConstructorInvocationStmt.getAncestorOfType(ClassOrInterfaceDeclaration.class) ==> com.github.javaparser.HasParentNode.getAncestorOfType(java.lang.Class<N>)
+ Line 160) optAncestor.isPresent() ==> java.util.Optional.isPresent()
+ Line 161) SymbolReference.unsolved(ConstructorDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 163) optAncestor.get() ==> java.util.Optional.get()
+ Line 165) explicitConstructorInvocationStmt.isThis() ==> com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt.isThis()
+ Line 166) JavaParserFacade.get(typeSolver).convert(classNode.getExtendedTypes(0), classNode) ==> UNSOLVED
+ Line 166) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 166) classNode.getExtendedTypes(0) ==> com.github.javaparser.ast.nodeTypes.NodeWithExtends.getExtendedTypes(int)
+ Line 167) classDecl.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 168) classDecl.asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 168) classDecl.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 171) JavaParserFactory.getContext(classNode, typeSolver).solveType(classNode.getNameAsString(), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 171) JavaParserFactory.getContext(classNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 171) classNode.getNameAsString() ==> com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.getNameAsString()
+ Line 172) sr.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 173) sr.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 177) SymbolReference.unsolved(ConstructorDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 179) ConstructorResolutionLogic.findMostApplicable(((ClassDeclaration) typeDecl).getConstructors(), argumentTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration>, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 179) ((ClassDeclaration) typeDecl).getConstructors() ==> com.github.javaparser.symbolsolver.model.declarations.ClassDeclaration.getConstructors()
+ Line 181) placeholder.setMethod(res) ==> com.github.javaparser.symbolsolver.javaparsermodel.LambdaArgumentTypePlaceholder.setMethod(com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration>)
+ Line 188) node.getClassExpr().isPresent() ==> java.util.Optional.isPresent()
+ Line 188) node.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 190) node.getClassExpr().get().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 190) node.getClassExpr().get() ==> java.util.Optional.get()
+ Line 190) node.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 192) typeSolver.tryToSolveType(className) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 193) clazz.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 194) SymbolReference.solved(clazz.getCorrespondingDeclaration()) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 194) clazz.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 197) node.getAncestorOfType(CompilationUnit.class) ==> com.github.javaparser.HasParentNode.getAncestorOfType(java.lang.Class<N>)
+ Line 198) cu.isPresent() ==> java.util.Optional.isPresent()
+ Line 199) cu.get().getClassByName(className) ==> com.github.javaparser.ast.CompilationUnit.getClassByName(java.lang.String)
+ Line 199) cu.get() ==> java.util.Optional.get()
+ Line 200) classByName.isPresent() ==> java.util.Optional.isPresent()
+ Line 201) SymbolReference.solved(getTypeDeclaration(classByName.get())) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 201) getTypeDeclaration(classByName.get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)
+ Line 201) classByName.get() ==> java.util.Optional.get()
+ Line 205) SymbolReference.solved(getTypeDeclaration(findContainingTypeDecl(node))) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 205) getTypeDeclaration(findContainingTypeDecl(node)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 205) findContainingTypeDecl(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.findContainingTypeDecl(com.github.javaparser.ast.Node)
+ Line 215) solveArguments(objectCreationExpr, objectCreationExpr.getArguments(), solveLambdas, argumentTypes, placeholders) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveArguments(com.github.javaparser.ast.Node, com.github.javaparser.ast.NodeList<com.github.javaparser.ast.expr.Expression>, boolean, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, java.util.List<com.github.javaparser.symbolsolver.javaparsermodel.LambdaArgumentTypePlaceholder>)
+ Line 215) objectCreationExpr.getArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getArguments()
+ Line 217) JavaParserFacade.get(typeSolver).convert(objectCreationExpr.getType(), objectCreationExpr) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 217) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 217) objectCreationExpr.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 218) classDecl.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 219) SymbolReference.unsolved(ConstructorDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 221) ConstructorResolutionLogic.findMostApplicable(((ClassDeclaration) classDecl.asReferenceType().getTypeDeclaration()).getConstructors(), argumentTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration>, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 221) ((ClassDeclaration) classDecl.asReferenceType().getTypeDeclaration()).getConstructors() ==> com.github.javaparser.symbolsolver.model.declarations.ClassDeclaration.getConstructors()
+ Line 221) classDecl.asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 221) classDecl.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 223) placeholder.setMethod(res) ==> com.github.javaparser.symbolsolver.javaparsermodel.LambdaArgumentTypePlaceholder.setMethod(com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration>)
+ Line 233) argumentTypes.add(placeholder) ==> java.util.List.add(E)
+ Line 234) placeholders.add(placeholder) ==> java.util.List.add(E)
+ Line 237) argumentTypes.add(JavaParserFacade.get(typeSolver).getType(parameterValue, solveLambdas)) ==> java.util.List.add(E)
+ Line 237) JavaParserFacade.get(typeSolver).getType(parameterValue, solveLambdas) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node, boolean)
+ Line 237) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 241) String.format("Unable to calculate the type of a parameter of a method call. Method call: %s, Parameter: %s", node, parameterValue) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 256) solveArguments(methodCallExpr, methodCallExpr.getArguments(), solveLambdas, argumentTypes, placeholders) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveArguments(com.github.javaparser.ast.Node, com.github.javaparser.ast.NodeList<com.github.javaparser.ast.expr.Expression>, boolean, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, java.util.List<com.github.javaparser.symbolsolver.javaparsermodel.LambdaArgumentTypePlaceholder>)
+ Line 256) methodCallExpr.getArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArguments()
+ Line 258) JavaParserFactory.getContext(methodCallExpr, typeSolver).solveMethod(methodCallExpr.getName().getId(), argumentTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 258) JavaParserFactory.getContext(methodCallExpr, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 258) methodCallExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 258) methodCallExpr.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 260) placeholder.setMethod(res) ==> com.github.javaparser.symbolsolver.javaparsermodel.LambdaArgumentTypePlaceholder.setMethod(com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration>)
+ Line 266) JavaParserFactory.getContext(annotationExpr, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 267) context.solveType(annotationExpr.getNameAsString(), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 267) annotationExpr.getNameAsString() ==> com.github.javaparser.ast.nodeTypes.NodeWithName.getNameAsString()
+ Line 268) typeDeclarationSymbolReference.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 269) typeDeclarationSymbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 270) SymbolReference.solved(annotationDeclaration) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 272) SymbolReference.unsolved(AnnotationDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 277) getType(node, true) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node, boolean)
+ Line 282) cacheWithLambdasSolved.containsKey(node) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 283) getTypeConcrete(node, solveLambdas) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeConcrete(com.github.javaparser.ast.Node, boolean)
+ Line 285) cacheWithLambdasSolved.put(node, res) ==> java.util.Map.put(K, V)
+ Line 290) methodCallExpr.getArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArguments()
+ Line 291) cacheWithLambdasSolved.containsKey(arg) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 292) getType(arg, true) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node, boolean)
+ Line 298) cacheWithLambdasSolved.remove(node) ==> java.util.Map.remove(java.lang.Object)
+ Line 299) cacheWithLambdasSolved.put(node, getType(node, true)) ==> java.util.Map.put(K, V)
+ Line 299) getType(node, true) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node, boolean)
+ Line 301) logger.finer("getType on " + node + " -> " + res) ==> java.util.logging.Logger.finer(java.lang.String)
+ Line 303) cacheWithLambdasSolved.get(node) ==> java.util.Map.get(java.lang.Object)
+ Line 305) find(cacheWithLambdasSolved, node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.find(java.util.Map<com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.ast.Node)
+ Line 306) res.isPresent() ==> java.util.Optional.isPresent()
+ Line 307) res.get() ==> java.util.Optional.get()
+ Line 309) find(cacheWithoutLambdasSolved, node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.find(java.util.Map<com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.ast.Node)
+ Line 310) res.isPresent() ==> java.util.Optional.isPresent()
+ Line 311) getTypeConcrete(node, solveLambdas) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeConcrete(com.github.javaparser.ast.Node, boolean)
+ Line 312) cacheWithoutLambdasSolved.put(node, resType) ==> java.util.Map.put(K, V)
+ Line 313) logger.finer("getType on " + node + " (no solveLambdas) -> " + res) ==> java.util.logging.Logger.finer(java.lang.String)
+ Line 316) res.get() ==> java.util.Optional.get()
+ Line 321) map.containsKey(node) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 322) Optional.of(map.get(node)) ==> java.util.Optional.of(T)
+ Line 322) map.get(node) ==> java.util.Map.get(java.lang.Object)
+ Line 325) find(map, (LambdaExpr) node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.find(java.util.Map<com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.ast.expr.LambdaExpr)
+ Line 327) Optional.empty() ==> java.util.Optional.empty()
+ Line 338) map.keySet() ==> java.util.Map.keySet()
+ Line 341) keyLambdaExpr.toString().equals(lambdaExpr.toString()) ==> java.lang.String.equals(java.lang.Object)
+ Line 341) keyLambdaExpr.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 341) lambdaExpr.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 341) getParentNode(keyLambdaExpr) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 341) getParentNode(lambdaExpr) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 342) Optional.of(map.get(keyLambdaExpr)) ==> java.util.Optional.of(T)
+ Line 342) map.get(keyLambdaExpr) ==> java.util.Map.get(java.lang.Object)
+ Line 346) Optional.empty() ==> java.util.Optional.empty()
+ Line 350) methodReferenceExpr.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 353) methodReferenceExpr.getScope() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getScope()
+ Line 354) typeExpr.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 355) typeExpr.getType().getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 355) typeExpr.getType().getClass() ==> java.lang.Object.getClass()
+ Line 355) typeExpr.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 357) typeExpr.getType() ==> com.github.javaparser.ast.expr.TypeExpr.getType()
+ Line 358) JavaParserFactory.getContext(classOrInterfaceType, typeSolver).solveType(classOrInterfaceType.getName().getId(), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 358) JavaParserFactory.getContext(classOrInterfaceType, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 358) classOrInterfaceType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 358) classOrInterfaceType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 359) typeDeclarationSymbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 362) ((ReferenceTypeDeclaration) typeDeclarationSymbolReference.getCorrespondingDeclaration()).getAllMethods().stream().filter(it -> it.getName().equals(methodReferenceExpr.getIdentifier())).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 362) ((ReferenceTypeDeclaration) typeDeclarationSymbolReference.getCorrespondingDeclaration()).getAllMethods().stream().filter(it -> it.getName().equals(methodReferenceExpr.getIdentifier())) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 362) ((ReferenceTypeDeclaration) typeDeclarationSymbolReference.getCorrespondingDeclaration()).getAllMethods().stream() ==> java.util.Collection.stream()
+ Line 362) ((ReferenceTypeDeclaration) typeDeclarationSymbolReference.getCorrespondingDeclaration()).getAllMethods() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllMethods()
+ Line 362) typeDeclarationSymbolReference.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 362) it.getName().equals(methodReferenceExpr.getIdentifier()) ==> java.lang.String.equals(java.lang.Object)
+ Line 362) it.getName() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getName()
+ Line 362) methodReferenceExpr.getIdentifier() ==> com.github.javaparser.ast.expr.MethodReferenceExpr.getIdentifier()
+ Line 362) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 363) methodUsages.size() ==> java.util.List.size()
+ Line 367) methodUsages.get(0) ==> java.util.List.get(int)
+ Line 374) getTypeConcrete(left, solveLambdas) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeConcrete(com.github.javaparser.ast.Node, boolean)
+ Line 375) getTypeConcrete(right, solveLambdas) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeConcrete(com.github.javaparser.ast.Node, boolean)
+ Line 376) rightType.isAssignableBy(leftType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 391) node.accept(typeExtractor, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 399) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 402) findContainingTypeDecl(getParentNode(node)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.findContainingTypeDecl(com.github.javaparser.ast.Node)
+ Line 402) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 407) JavaParserFacade.get(typeSolver).convertToUsage(var.getType(), var) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 407) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 407) var.getType() ==> com.github.javaparser.ast.body.VariableDeclarator.getType()
+ Line 415) convertToUsage(type, JavaParserFactory.getContext(context, typeSolver)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 415) JavaParserFactory.getContext(context, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 419) convertToUsage(type, type) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 424) classOrInterfaceType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 424) classOrInterfaceType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 425) classOrInterfaceType.getScope().isPresent() ==> java.util.Optional.isPresent()
+ Line 425) classOrInterfaceType.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 426) qName(classOrInterfaceType.getScope().get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.qName(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 426) classOrInterfaceType.getScope().get() ==> java.util.Optional.get()
+ Line 426) classOrInterfaceType.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 435) qName(classOrInterfaceType) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.qName(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 436) context.solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 437) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 440) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 441) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 442) classOrInterfaceType.getTypeArguments().isPresent() ==> java.util.Optional.isPresent()
+ Line 442) classOrInterfaceType.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 443) classOrInterfaceType.getTypeArguments().get().stream().map((pt) -> convertToUsage(pt, context)).collect(Collectors.toList()) ==> ERROR
+ Line 443) classOrInterfaceType.getTypeArguments().get().stream().map((pt) -> convertToUsage(pt, context)) ==> ERROR
+ Line 443) classOrInterfaceType.getTypeArguments().get().stream() ==> java.util.Collection.stream()
+ Line 443) classOrInterfaceType.getTypeArguments().get() ==> java.util.Optional.get()
+ Line 443) classOrInterfaceType.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 443) convertToUsage(pt, context) ==> ERROR
+ Line 443) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 445) typeDeclaration.isTypeParameter() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isTypeParameter()
+ Line 450) javaParserTypeVariableDeclaration.asTypeParameter() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeVariableDeclaration.asTypeParameter()
+ Line 456) PrimitiveType.byName(((com.github.javaparser.ast.type.PrimitiveType) type).getType().name()) ==> com.github.javaparser.symbolsolver.model.typesystem.PrimitiveType.byName(java.lang.String)
+ Line 456) ((com.github.javaparser.ast.type.PrimitiveType) type).getType().name() ==> java.lang.Enum.name()
+ Line 456) ((com.github.javaparser.ast.type.PrimitiveType) type).getType() ==> com.github.javaparser.ast.type.PrimitiveType.getType()
+ Line 459) wildcardType.getExtendedTypes().isPresent() ==> java.util.Optional.isPresent()
+ Line 459) wildcardType.getExtendedTypes() ==> com.github.javaparser.ast.type.WildcardType.getExtendedTypes()
+ Line 459) wildcardType.getSuperTypes().isPresent() ==> java.util.Optional.isPresent()
+ Line 459) wildcardType.getSuperTypes() ==> com.github.javaparser.ast.type.WildcardType.getSuperTypes()
+ Line 460) Wildcard.extendsBound(convertToUsage(wildcardType.getExtendedTypes().get(), context)) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 460) convertToUsage(wildcardType.getExtendedTypes().get(), context) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 460) wildcardType.getExtendedTypes().get() ==> java.util.Optional.get()
+ Line 460) wildcardType.getExtendedTypes() ==> com.github.javaparser.ast.type.WildcardType.getExtendedTypes()
+ Line 461) wildcardType.getExtendedTypes().isPresent() ==> java.util.Optional.isPresent()
+ Line 461) wildcardType.getExtendedTypes() ==> com.github.javaparser.ast.type.WildcardType.getExtendedTypes()
+ Line 461) wildcardType.getSuperTypes().isPresent() ==> java.util.Optional.isPresent()
+ Line 461) wildcardType.getSuperTypes() ==> com.github.javaparser.ast.type.WildcardType.getSuperTypes()
+ Line 462) Wildcard.superBound(convertToUsage(wildcardType.getSuperTypes().get(), context)) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.superBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 462) convertToUsage(wildcardType.getSuperTypes().get(), context) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 462) wildcardType.getSuperTypes().get() ==> java.util.Optional.get()
+ Line 462) wildcardType.getSuperTypes() ==> com.github.javaparser.ast.type.WildcardType.getSuperTypes()
+ Line 463) wildcardType.getExtendedTypes().isPresent() ==> java.util.Optional.isPresent()
+ Line 463) wildcardType.getExtendedTypes() ==> com.github.javaparser.ast.type.WildcardType.getExtendedTypes()
+ Line 463) wildcardType.getSuperTypes().isPresent() ==> java.util.Optional.isPresent()
+ Line 463) wildcardType.getSuperTypes() ==> com.github.javaparser.ast.type.WildcardType.getSuperTypes()
+ Line 466) wildcardType.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 472) convertToUsage(jpArrayType.getComponentType(), context) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 472) jpArrayType.getComponentType() ==> com.github.javaparser.ast.type.ArrayType.getComponentType()
+ Line 474) type.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 474) type.getClass() ==> java.lang.Object.getClass()
+ Line 480) convert(type, JavaParserFactory.getContext(node, typeSolver)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 480) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 484) convertToUsage(type, context) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 489) call.getArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArguments()
+ Line 490) call.getArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArguments()
+ Line 493) params.add(getType(param, false)) ==> java.util.List.add(E)
+ Line 493) getType(param, false) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node, boolean)
+ Line 495) String.format("Error calculating the type of parameter %s of method call %s", param, call) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 500) JavaParserFactory.getContext(call, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 501) context.solveMethodAsUsage(call.getName().getId(), params, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 501) call.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 501) call.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 502) methodUsage.isPresent() ==> java.util.Optional.isPresent()
+ Line 503) call.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 504) call.getRange().get() ==> java.util.Optional.get()
+ Line 504) call.getRange() ==> com.github.javaparser.ast.Node.getRange()
+ Line 506) methodUsage.get() ==> java.util.Optional.get()
+ Line 510) JavaParserFactory.toTypeDeclaration(classOrInterfaceDeclaration, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.toTypeDeclaration(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 519) getTypeDeclaration((ClassOrInterfaceDeclaration) node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)
+ Line 524) getTypeOfThisIn(getParentNode(node)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeOfThisIn(com.github.javaparser.ast.Node)
+ Line 524) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 529) JavaParserFactory.toTypeDeclaration(typeDeclaration, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.toTypeDeclaration(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_JavaParserFactory.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_JavaParserFactory.txt
new file mode 100644
index 000000000..42d242158
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_JavaParserFactory.txt
@@ -0,0 +1,26 @@
+ Line 79) ((ObjectCreationExpr) node).getAnonymousClassBody().isPresent() ==> java.util.Optional.isPresent()
+ Line 79) ((ObjectCreationExpr) node).getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 84) node.getParentNode().isPresent() ==> java.util.Optional.isPresent()
+ Line 84) node.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 84) node.getParentNode().get() ==> java.util.Optional.get()
+ Line 84) node.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 84) node.getParentNode().get().getParentNode().isPresent() ==> java.util.Optional.isPresent()
+ Line 84) node.getParentNode().get().getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 84) node.getParentNode().get() ==> java.util.Optional.get()
+ Line 84) node.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 85) getContext(node.getParentNode().get().getParentNode().get(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 85) node.getParentNode().get().getParentNode().get() ==> java.util.Optional.get()
+ Line 85) node.getParentNode().get().getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 85) node.getParentNode().get() ==> java.util.Optional.get()
+ Line 85) node.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 88) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 89) ((ObjectCreationExpr) parentNode).getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 90) getContext(getParentNode(parentNode), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 90) getParentNode(parentNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 92) getContext(parentNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 103) expressionStmt.getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 104) expressionStmt.getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 112) foreachStmt.getVariable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getVariable()
+ Line 120) ((ClassOrInterfaceDeclaration) node).isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 132) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 132) node.getClass() ==> java.lang.Object.getClass()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_LambdaArgumentTypePlaceholder.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_LambdaArgumentTypePlaceholder.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_LambdaArgumentTypePlaceholder.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_TypeExtractor.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_TypeExtractor.txt
new file mode 100644
index 000000000..9291a06b5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_TypeExtractor.txt
@@ -0,0 +1,279 @@
+ Line 41) Logger.getLogger(TypeExtractor.class.getCanonicalName()) ==> java.util.logging.Logger.getLogger(java.lang.String)
+ Line 41) TypeExtractor.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 44) logger.setLevel(Level.INFO) ==> java.util.logging.Logger.setLevel(java.util.logging.Level)
+ Line 46) consoleHandler.setLevel(Level.INFO) ==> java.util.logging.Handler.setLevel(java.util.logging.Level)
+ Line 47) logger.addHandler(consoleHandler) ==> java.util.logging.Logger.addHandler(java.util.logging.Handler)
+ Line 60) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 62) facade.convertToUsageVariableType(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsageVariableType(com.github.javaparser.ast.body.VariableDeclarator)
+ Line 63) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 65) facade.convertToUsageVariableType(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsageVariableType(com.github.javaparser.ast.body.VariableDeclarator)
+ Line 67) getParentNode(node).getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 67) getParentNode(node).getClass() ==> java.lang.Object.getClass()
+ Line 67) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 73) node.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 76) facade.convertToUsage(node.getType(), node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 76) node.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 82) node.getName().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 82) node.getName() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getName()
+ Line 83) arrayUsageType.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 84) ((ArrayType) arrayUsageType).getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 91) facade.convertToUsage(node.getElementType(), JavaParserFactory.getContext(node, typeSolver)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 91) node.getElementType() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getElementType()
+ Line 91) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 92) node.getLevels().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 92) node.getLevels() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getLevels()
+ Line 100) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 100) node.getClass() ==> java.lang.Object.getClass()
+ Line 105) node.getTarget().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 105) node.getTarget() ==> com.github.javaparser.ast.expr.AssignExpr.getTarget()
+ Line 110) node.getOperator() ==> com.github.javaparser.ast.expr.BinaryExpr.getOperator()
+ Line 115) facade.getBinaryTypeConcrete(node.getLeft(), node.getRight(), solveLambdas) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getBinaryTypeConcrete(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node, boolean)
+ Line 115) node.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 115) node.getRight() ==> com.github.javaparser.ast.expr.BinaryExpr.getRight()
+ Line 132) node.getLeft().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 132) node.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 134) node.getOperator().name() ==> java.lang.Enum.name()
+ Line 134) node.getOperator() ==> com.github.javaparser.ast.expr.BinaryExpr.getOperator()
+ Line 140) facade.convertToUsage(node.getType(), JavaParserFactory.getContext(node, typeSolver)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 140) node.getType() ==> com.github.javaparser.ast.expr.CastExpr.getType()
+ Line 140) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 146) node.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 147) facade.convertToUsage(astType, node.getType()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 147) node.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 148) ImmutableList.of(jssType) ==> com.google.common.collect.ImmutableList.of(E)
+ Line 153) node.getThenExpr().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 153) node.getThenExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getThenExpr()
+ Line 158) node.getInner().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 158) node.getInner() ==> com.github.javaparser.ast.expr.EnclosedExpr.getInner()
+ Line 168) parentType.hasField(node.getName().getId()) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasField(java.lang.String)
+ Line 168) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 168) node.getName() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getName()
+ Line 169) parentType.getField(node.getName().getId()).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 169) parentType.getField(node.getName().getId()) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getField(java.lang.String)
+ Line 169) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 169) node.getName() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getName()
+ Line 170) parentType.hasInternalType(node.getName().getId()) ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.hasInternalType(java.lang.String)
+ Line 170) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 170) node.getName() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getName()
+ Line 171) parentType.getInternalType(node.getName().getId()) ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getInternalType(java.lang.String)
+ Line 171) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 171) node.getName() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getName()
+ Line 173) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 173) node.getName() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getName()
+ Line 180) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 181) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 182) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 183) JavaParserFactory.getContext(node, typeSolver).solveType(staticValue.toString(), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 183) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 183) staticValue.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 184) typeAccessedStatically.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 186) solveDotExpressionType(typeAccessedStatically.getCorrespondingDeclaration().asReferenceType(), node) ==> com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.solveDotExpressionType(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.ast.expr.FieldAccessExpr)
+ Line 187) typeAccessedStatically.getCorrespondingDeclaration().asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 187) typeAccessedStatically.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 189) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 192) facade.solve((ThisExpr) node.getScope()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.expr.ThisExpr)
+ Line 192) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 194) solve.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 195) solve.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 197) solveDotExpressionType(correspondingDeclaration.asReferenceType(), node) ==> com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.solveDotExpressionType(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.ast.expr.FieldAccessExpr)
+ Line 197) correspondingDeclaration.asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 201) node.getScope().toString().indexOf('.') ==> java.lang.String.indexOf(int)
+ Line 201) node.getScope().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 201) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 203) typeSolver.tryToSolveType(node.getScope().toString()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 203) node.getScope().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 203) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 204) sr.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 205) solveDotExpressionType(sr.getCorrespondingDeclaration(), node) ==> com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.solveDotExpressionType(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.ast.expr.FieldAccessExpr)
+ Line 205) sr.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 210) new SymbolSolver(typeSolver).solveSymbolAsValue(node.getField().getId(), node) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolAsValue(java.lang.String, com.github.javaparser.ast.Node)
+ Line 210) node.getField().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 210) node.getField() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getField()
+ Line 214) typeSolver.tryToSolveType(node.toString()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 214) node.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 215) sref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 216) sref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 219) value.isPresent() ==> java.util.Optional.isPresent()
+ Line 220) value.get().getType() ==> com.github.javaparser.symbolsolver.model.resolution.Value.getType()
+ Line 220) value.get() ==> java.util.Optional.get()
+ Line 222) node.getField().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 222) node.getField() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getField()
+ Line 233) new ReflectionTypeSolver().solveType("java.lang.String") ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 253) node.getValue().toLowerCase().endsWith("f") ==> java.lang.String.endsWith(java.lang.String)
+ Line 253) node.getValue().toLowerCase() ==> java.lang.String.toLowerCase()
+ Line 253) node.getValue() ==> com.github.javaparser.ast.expr.LiteralStringValueExpr.getValue()
+ Line 271) logger.finest("getType on method call " + node) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 273) facade.solveMethodAsUsage(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveMethodAsUsage(com.github.javaparser.ast.expr.MethodCallExpr)
+ Line 274) logger.finest("getType on method call " + node + " resolved to " + ref) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 275) logger.finest("getType on method call " + node + " return type is " + ref.returnType()) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 275) ref.returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 276) ref.returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 282) logger.finest("getType on name expr " + node) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 283) new SymbolSolver(typeSolver).solveSymbolAsValue(node.getName().getId(), node) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolAsValue(java.lang.String, com.github.javaparser.ast.Node)
+ Line 283) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 283) node.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 284) value.isPresent() ==> java.util.Optional.isPresent()
+ Line 285) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 285) node.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 287) value.get().getType() ==> com.github.javaparser.symbolsolver.model.resolution.Value.getType()
+ Line 287) value.get() ==> java.util.Optional.get()
+ Line 293) facade.convertToUsage(node.getType(), node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 293) node.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 300) node.getClassExpr().isPresent() ==> java.util.Optional.isPresent()
+ Line 300) node.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 302) node.getClassExpr().get().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 302) node.getClassExpr().get() ==> java.util.Optional.get()
+ Line 302) node.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 304) typeSolver.tryToSolveType(className) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 305) clazz.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 306) clazz.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 309) node.getAncestorOfType(CompilationUnit.class) ==> com.github.javaparser.HasParentNode.getAncestorOfType(java.lang.Class<N>)
+ Line 310) cu.isPresent() ==> java.util.Optional.isPresent()
+ Line 311) cu.get().getClassByName(className) ==> com.github.javaparser.ast.CompilationUnit.getClassByName(java.lang.String)
+ Line 311) cu.get() ==> java.util.Optional.get()
+ Line 312) classByName.isPresent() ==> java.util.Optional.isPresent()
+ Line 313) facade.getTypeDeclaration(classByName.get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)
+ Line 313) classByName.get() ==> java.util.Optional.get()
+ Line 318) facade.getTypeDeclaration(facade.findContainingTypeDecl(node)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 318) facade.findContainingTypeDecl(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.findContainingTypeDecl(com.github.javaparser.ast.Node)
+ Line 323) facade.getTypeDeclaration(facade.findContainingTypeDecl(node)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 323) facade.findContainingTypeDecl(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.findContainingTypeDecl(com.github.javaparser.ast.Node)
+ Line 325) ((ClassDeclaration) typeOfNode).getSuperClass() ==> com.github.javaparser.symbolsolver.model.declarations.ClassDeclaration.getSuperClass()
+ Line 327) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 327) node.getClass() ==> java.lang.Object.getClass()
+ Line 333) node.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.getOperator()
+ Line 336) node.getExpression().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 336) node.getExpression() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpression()
+ Line 343) node.getExpression().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 343) node.getExpression() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpression()
+ Line 345) node.getOperator().name() ==> java.lang.Enum.name()
+ Line 345) node.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.getOperator()
+ Line 351) node.getVariables().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 351) node.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 354) facade.convertToUsageVariableType(node.getVariables().get(0)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsageVariableType(com.github.javaparser.ast.body.VariableDeclarator)
+ Line 354) node.getVariables().get(0) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 354) node.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 360) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 361) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 362) JavaParserSymbolDeclaration.getParamPos(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.getParamPos(com.github.javaparser.ast.Node)
+ Line 363) facade.solve(callExpr) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.expr.MethodCallExpr)
+ Line 364) refMethod.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 365) getParentNode(node).toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 365) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 365) callExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 365) callExpr.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 367) logger.finest("getType on lambda expr " + refMethod.getCorrespondingDeclaration().getName()) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 367) refMethod.getCorrespondingDeclaration().getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 367) refMethod.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 371) refMethod.getCorrespondingDeclaration().getParam(pos).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 371) refMethod.getCorrespondingDeclaration().getParam(pos) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 371) refMethod.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 373) callExpr.getScope().isPresent() ==> java.util.Optional.isPresent()
+ Line 373) callExpr.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 374) callExpr.getScope().get() ==> java.util.Optional.get()
+ Line 374) callExpr.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 381) JavaParserFactory.getContext(nameExpr, typeSolver).solveType(nameExpr.getName().getId(), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 381) JavaParserFactory.getContext(nameExpr, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 381) nameExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 381) nameExpr.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 382) type.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 391) facade.getType(scope) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 392) scopeType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 393) scopeType.asReferenceType().useThisTypeParametersOnTheGivenType(result) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParameterValueProvider.useThisTypeParametersOnTheGivenType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 393) scopeType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 399) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 400) facade.solveGenericTypes(result, ctx, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveGenericTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.core.resolution.Context, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 405) FunctionalInterfaceLogic.getFunctionalMethod(result) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.getFunctionalMethod(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 406) functionalMethod.isPresent() ==> java.util.Optional.isPresent()
+ Line 415) ReferenceTypeImpl.undeterminedParameters(functionalMethod.get().getDeclaration().declaringType(), typeSolver) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl.undeterminedParameters(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 415) functionalMethod.get().getDeclaration().declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
+ Line 415) functionalMethod.get().getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 415) functionalMethod.get() ==> java.util.Optional.get()
+ Line 417) lambdaCtx.addPair(result, functionalInterfaceType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 421) lambdaExpr.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 422) facade.getType(((ExpressionStmt) lambdaExpr.getBody()).getExpression()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 422) ((ExpressionStmt) lambdaExpr.getBody()).getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 422) lambdaExpr.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 423) lambdaExpr.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 424) lambdaExpr.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 425) blockStmt.getStatements() ==> com.github.javaparser.ast.stmt.BlockStmt.getStatements()
+ Line 428) blockStmt.getNodesByType(ReturnStmt.class) ==> com.github.javaparser.ast.Node.getNodesByType(java.lang.Class<N>)
+ Line 430) returnStmts.size() ==> java.util.List.size()
+ Line 432) returnStmts.stream().map(returnStmt -> {
+ Optional<Expression> expression = returnStmt.getExpression();
+ if (expression.isPresent()) {
+ return facade.getType(expression.get());
+ } else {
+ return VoidType.INSTANCE;
+ }
+}).filter(x -> x != null && !x.isVoid() && !x.isNull()).findFirst().orElse(VoidType.INSTANCE) ==> java.util.Optional.orElse(T)
+ Line 432) returnStmts.stream().map(returnStmt -> {
+ Optional<Expression> expression = returnStmt.getExpression();
+ if (expression.isPresent()) {
+ return facade.getType(expression.get());
+ } else {
+ return VoidType.INSTANCE;
+ }
+}).filter(x -> x != null && !x.isVoid() && !x.isNull()).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 432) returnStmts.stream().map(returnStmt -> {
+ Optional<Expression> expression = returnStmt.getExpression();
+ if (expression.isPresent()) {
+ return facade.getType(expression.get());
+ } else {
+ return VoidType.INSTANCE;
+ }
+}).filter(x -> x != null && !x.isVoid() && !x.isNull()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 432) returnStmts.stream().map(returnStmt -> {
+ Optional<Expression> expression = returnStmt.getExpression();
+ if (expression.isPresent()) {
+ return facade.getType(expression.get());
+ } else {
+ return VoidType.INSTANCE;
+ }
+}) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 432) returnStmts.stream() ==> java.util.Collection.stream()
+ Line 434) returnStmt.getExpression() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpression()
+ Line 435) expression.isPresent() ==> java.util.Optional.isPresent()
+ Line 436) facade.getType(expression.get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 436) expression.get() ==> java.util.Optional.get()
+ Line 441) x.isVoid() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isVoid()
+ Line 441) x.isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 454) functionalMethod.get().returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 454) functionalMethod.get() ==> java.util.Optional.get()
+ Line 457) funcInterfaceCtx.addPair(formalType, actualType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 459) funcInterfaceCtx.resolve(funcInterfaceCtx.addSingle(functionalInterfaceType)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 459) funcInterfaceCtx.addSingle(functionalInterfaceType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addSingle(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 464) lambdaCtx.addPair(result, functionalTypeWithReturn) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 465) lambdaCtx.resolve(lambdaCtx.addSingle(result)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 465) lambdaCtx.addSingle(result) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addSingle(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 471) refMethod.getCorrespondingDeclaration().getParam(pos).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 471) refMethod.getCorrespondingDeclaration().getParam(pos) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 471) refMethod.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 480) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 481) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 482) JavaParserSymbolDeclaration.getParamPos(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.getParamPos(com.github.javaparser.ast.Node)
+ Line 483) facade.solve(callExpr, false) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.expr.MethodCallExpr, boolean)
+ Line 484) refMethod.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 485) getParentNode(node).toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 485) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 485) callExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 485) callExpr.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 487) logger.finest("getType on method reference expr " + refMethod.getCorrespondingDeclaration().getName()) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 487) refMethod.getCorrespondingDeclaration().getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 487) refMethod.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 490) facade.solveMethodAsUsage(callExpr) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveMethodAsUsage(com.github.javaparser.ast.expr.MethodCallExpr)
+ Line 491) usage.getParamType(pos) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 493) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 494) facade.solveGenericTypes(result, ctx, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveGenericTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.core.resolution.Context, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 499) FunctionalInterfaceLogic.getFunctionalMethod(result) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.getFunctionalMethod(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 500) functionalMethod.isPresent() ==> java.util.Optional.isPresent()
+ Line 504) facade.toMethodUsage(methodReferenceExpr).returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 504) facade.toMethodUsage(methodReferenceExpr) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.toMethodUsage(com.github.javaparser.ast.expr.MethodReferenceExpr)
+ Line 505) functionalMethod.get().returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 505) functionalMethod.get() ==> java.util.Optional.get()
+ Line 508) inferenceContext.addPair(formalType, actualType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 509) inferenceContext.resolve(inferenceContext.addSingle(result)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 509) inferenceContext.addSingle(result) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addSingle(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 515) refMethod.getCorrespondingDeclaration().getParam(pos).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 515) refMethod.getCorrespondingDeclaration().getParam(pos) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 515) refMethod.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_TypeExtractor_J9.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_TypeExtractor_J9.txt
new file mode 100644
index 000000000..28c113fd7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_TypeExtractor_J9.txt
@@ -0,0 +1,279 @@
+ Line 41) Logger.getLogger(TypeExtractor.class.getCanonicalName()) ==> java.util.logging.Logger.getLogger(java.lang.String)
+ Line 41) TypeExtractor.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 44) logger.setLevel(Level.INFO) ==> java.util.logging.Logger.setLevel(java.util.logging.Level)
+ Line 46) consoleHandler.setLevel(Level.INFO) ==> java.util.logging.Handler.setLevel(java.util.logging.Level)
+ Line 47) logger.addHandler(consoleHandler) ==> java.util.logging.Logger.addHandler(java.util.logging.Handler)
+ Line 60) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 62) facade.convertToUsageVariableType(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsageVariableType(com.github.javaparser.ast.body.VariableDeclarator)
+ Line 63) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 65) facade.convertToUsageVariableType(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsageVariableType(com.github.javaparser.ast.body.VariableDeclarator)
+ Line 67) getParentNode(node).getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 67) getParentNode(node).getClass() ==> java.lang.Object.getClass()
+ Line 67) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 73) node.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 76) facade.convertToUsage(node.getType(), node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 76) node.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 82) node.getName().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 82) node.getName() ==> com.github.javaparser.ast.expr.ArrayAccessExpr.getName()
+ Line 83) arrayUsageType.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 84) ((ArrayType) arrayUsageType).getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 91) facade.convertToUsage(node.getElementType(), JavaParserFactory.getContext(node, typeSolver)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 91) node.getElementType() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getElementType()
+ Line 91) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 92) node.getLevels().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 92) node.getLevels() ==> com.github.javaparser.ast.expr.ArrayCreationExpr.getLevels()
+ Line 100) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 100) node.getClass() ==> java.lang.Object.getClass()
+ Line 105) node.getTarget().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 105) node.getTarget() ==> com.github.javaparser.ast.expr.AssignExpr.getTarget()
+ Line 110) node.getOperator() ==> com.github.javaparser.ast.expr.BinaryExpr.getOperator()
+ Line 115) facade.getBinaryTypeConcrete(node.getLeft(), node.getRight(), solveLambdas) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getBinaryTypeConcrete(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node, boolean)
+ Line 115) node.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 115) node.getRight() ==> com.github.javaparser.ast.expr.BinaryExpr.getRight()
+ Line 132) node.getLeft().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 132) node.getLeft() ==> com.github.javaparser.ast.expr.BinaryExpr.getLeft()
+ Line 134) node.getOperator().name() ==> java.lang.Enum.name()
+ Line 134) node.getOperator() ==> com.github.javaparser.ast.expr.BinaryExpr.getOperator()
+ Line 140) facade.convertToUsage(node.getType(), JavaParserFactory.getContext(node, typeSolver)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 140) node.getType() ==> com.github.javaparser.ast.expr.CastExpr.getType()
+ Line 140) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 146) node.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 147) facade.convertToUsage(astType, node.getType()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 147) node.getType() ==> com.github.javaparser.ast.expr.ClassExpr.getType()
+ Line 148) ImmutableList.of(jssType) ==> java.util.List.of(E...)
+ Line 153) node.getThenExpr().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 153) node.getThenExpr() ==> com.github.javaparser.ast.expr.ConditionalExpr.getThenExpr()
+ Line 158) node.getInner().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 158) node.getInner() ==> com.github.javaparser.ast.expr.EnclosedExpr.getInner()
+ Line 168) parentType.hasField(node.getName().getId()) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasField(java.lang.String)
+ Line 168) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 168) node.getName() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getName()
+ Line 169) parentType.getField(node.getName().getId()).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 169) parentType.getField(node.getName().getId()) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getField(java.lang.String)
+ Line 169) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 169) node.getName() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getName()
+ Line 170) parentType.hasInternalType(node.getName().getId()) ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.hasInternalType(java.lang.String)
+ Line 170) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 170) node.getName() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getName()
+ Line 171) parentType.getInternalType(node.getName().getId()) ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getInternalType(java.lang.String)
+ Line 171) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 171) node.getName() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getName()
+ Line 173) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 173) node.getName() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getName()
+ Line 180) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 181) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 182) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 183) JavaParserFactory.getContext(node, typeSolver).solveType(staticValue.toString(), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 183) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 183) staticValue.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 184) typeAccessedStatically.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 186) solveDotExpressionType(typeAccessedStatically.getCorrespondingDeclaration().asReferenceType(), node) ==> com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.solveDotExpressionType(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.ast.expr.FieldAccessExpr)
+ Line 187) typeAccessedStatically.getCorrespondingDeclaration().asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 187) typeAccessedStatically.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 189) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 192) facade.solve((ThisExpr) node.getScope()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.expr.ThisExpr)
+ Line 192) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 194) solve.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 195) solve.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 197) solveDotExpressionType(correspondingDeclaration.asReferenceType(), node) ==> com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.solveDotExpressionType(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.ast.expr.FieldAccessExpr)
+ Line 197) correspondingDeclaration.asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 201) node.getScope().toString().indexOf('.') ==> java.lang.String.indexOf(int)
+ Line 201) node.getScope().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 201) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 203) typeSolver.tryToSolveType(node.getScope().toString()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 203) node.getScope().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 203) node.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 204) sr.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 205) solveDotExpressionType(sr.getCorrespondingDeclaration(), node) ==> com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.solveDotExpressionType(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.ast.expr.FieldAccessExpr)
+ Line 205) sr.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 210) new SymbolSolver(typeSolver).solveSymbolAsValue(node.getField().getId(), node) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolAsValue(java.lang.String, com.github.javaparser.ast.Node)
+ Line 210) node.getField().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 210) node.getField() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getField()
+ Line 214) typeSolver.tryToSolveType(node.toString()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 214) node.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 215) sref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 216) sref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 219) value.isPresent() ==> java.util.Optional.isPresent()
+ Line 220) value.get().getType() ==> com.github.javaparser.symbolsolver.model.resolution.Value.getType()
+ Line 220) value.get() ==> java.util.Optional.get()
+ Line 222) node.getField().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 222) node.getField() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getField()
+ Line 233) new ReflectionTypeSolver().solveType("java.lang.String") ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 253) node.getValue().toLowerCase().endsWith("f") ==> java.lang.String.endsWith(java.lang.String)
+ Line 253) node.getValue().toLowerCase() ==> java.lang.String.toLowerCase()
+ Line 253) node.getValue() ==> com.github.javaparser.ast.expr.LiteralStringValueExpr.getValue()
+ Line 271) logger.finest("getType on method call " + node) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 273) facade.solveMethodAsUsage(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveMethodAsUsage(com.github.javaparser.ast.expr.MethodCallExpr)
+ Line 274) logger.finest("getType on method call " + node + " resolved to " + ref) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 275) logger.finest("getType on method call " + node + " return type is " + ref.returnType()) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 275) ref.returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 276) ref.returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 282) logger.finest("getType on name expr " + node) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 283) new SymbolSolver(typeSolver).solveSymbolAsValue(node.getName().getId(), node) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolAsValue(java.lang.String, com.github.javaparser.ast.Node)
+ Line 283) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 283) node.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 284) value.isPresent() ==> java.util.Optional.isPresent()
+ Line 285) node.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 285) node.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 287) value.get().getType() ==> com.github.javaparser.symbolsolver.model.resolution.Value.getType()
+ Line 287) value.get() ==> java.util.Optional.get()
+ Line 293) facade.convertToUsage(node.getType(), node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 293) node.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 300) node.getClassExpr().isPresent() ==> java.util.Optional.isPresent()
+ Line 300) node.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 302) node.getClassExpr().get().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 302) node.getClassExpr().get() ==> java.util.Optional.get()
+ Line 302) node.getClassExpr() ==> com.github.javaparser.ast.expr.ThisExpr.getClassExpr()
+ Line 304) typeSolver.tryToSolveType(className) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 305) clazz.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 306) clazz.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 309) node.getAncestorOfType(CompilationUnit.class) ==> com.github.javaparser.HasParentNode.getAncestorOfType(java.lang.Class<N>)
+ Line 310) cu.isPresent() ==> java.util.Optional.isPresent()
+ Line 311) cu.get().getClassByName(className) ==> com.github.javaparser.ast.CompilationUnit.getClassByName(java.lang.String)
+ Line 311) cu.get() ==> java.util.Optional.get()
+ Line 312) classByName.isPresent() ==> java.util.Optional.isPresent()
+ Line 313) facade.getTypeDeclaration(classByName.get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)
+ Line 313) classByName.get() ==> java.util.Optional.get()
+ Line 318) facade.getTypeDeclaration(facade.findContainingTypeDecl(node)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 318) facade.findContainingTypeDecl(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.findContainingTypeDecl(com.github.javaparser.ast.Node)
+ Line 323) facade.getTypeDeclaration(facade.findContainingTypeDecl(node)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 323) facade.findContainingTypeDecl(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.findContainingTypeDecl(com.github.javaparser.ast.Node)
+ Line 325) ((ClassDeclaration) typeOfNode).getSuperClass() ==> com.github.javaparser.symbolsolver.model.declarations.ClassDeclaration.getSuperClass()
+ Line 327) node.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 327) node.getClass() ==> java.lang.Object.getClass()
+ Line 333) node.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.getOperator()
+ Line 336) node.getExpression().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 336) node.getExpression() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpression()
+ Line 343) node.getExpression().accept(this, solveLambdas) ==> com.github.javaparser.ast.visitor.Visitable.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)
+ Line 343) node.getExpression() ==> com.github.javaparser.ast.expr.UnaryExpr.getExpression()
+ Line 345) node.getOperator().name() ==> java.lang.Enum.name()
+ Line 345) node.getOperator() ==> com.github.javaparser.ast.expr.UnaryExpr.getOperator()
+ Line 351) node.getVariables().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 351) node.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 354) facade.convertToUsageVariableType(node.getVariables().get(0)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsageVariableType(com.github.javaparser.ast.body.VariableDeclarator)
+ Line 354) node.getVariables().get(0) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 354) node.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 360) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 361) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 362) JavaParserSymbolDeclaration.getParamPos(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.getParamPos(com.github.javaparser.ast.Node)
+ Line 363) facade.solve(callExpr) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.expr.MethodCallExpr)
+ Line 364) refMethod.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 365) getParentNode(node).toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 365) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 365) callExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 365) callExpr.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 367) logger.finest("getType on lambda expr " + refMethod.getCorrespondingDeclaration().getName()) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 367) refMethod.getCorrespondingDeclaration().getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 367) refMethod.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 371) refMethod.getCorrespondingDeclaration().getParam(pos).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 371) refMethod.getCorrespondingDeclaration().getParam(pos) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 371) refMethod.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 373) callExpr.getScope().isPresent() ==> java.util.Optional.isPresent()
+ Line 373) callExpr.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 374) callExpr.getScope().get() ==> java.util.Optional.get()
+ Line 374) callExpr.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 381) JavaParserFactory.getContext(nameExpr, typeSolver).solveType(nameExpr.getName().getId(), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 381) JavaParserFactory.getContext(nameExpr, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 381) nameExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 381) nameExpr.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 382) type.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 391) facade.getType(scope) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 392) scopeType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 393) scopeType.asReferenceType().useThisTypeParametersOnTheGivenType(result) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParameterValueProvider.useThisTypeParametersOnTheGivenType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 393) scopeType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 399) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 400) facade.solveGenericTypes(result, ctx, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveGenericTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.core.resolution.Context, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 405) FunctionalInterfaceLogic.getFunctionalMethod(result) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.getFunctionalMethod(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 406) functionalMethod.isPresent() ==> java.util.Optional.isPresent()
+ Line 415) ReferenceTypeImpl.undeterminedParameters(functionalMethod.get().getDeclaration().declaringType(), typeSolver) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl.undeterminedParameters(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 415) functionalMethod.get().getDeclaration().declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
+ Line 415) functionalMethod.get().getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 415) functionalMethod.get() ==> java.util.Optional.get()
+ Line 417) lambdaCtx.addPair(result, functionalInterfaceType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 421) lambdaExpr.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 422) facade.getType(((ExpressionStmt) lambdaExpr.getBody()).getExpression()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 422) ((ExpressionStmt) lambdaExpr.getBody()).getExpression() ==> com.github.javaparser.ast.stmt.ExpressionStmt.getExpression()
+ Line 422) lambdaExpr.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 423) lambdaExpr.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 424) lambdaExpr.getBody() ==> com.github.javaparser.ast.expr.LambdaExpr.getBody()
+ Line 425) blockStmt.getStatements() ==> com.github.javaparser.ast.stmt.BlockStmt.getStatements()
+ Line 428) blockStmt.getNodesByType(ReturnStmt.class) ==> com.github.javaparser.ast.Node.getNodesByType(java.lang.Class<N>)
+ Line 430) returnStmts.size() ==> java.util.List.size()
+ Line 432) returnStmts.stream().map(returnStmt -> {
+ Optional<Expression> expression = returnStmt.getExpression();
+ if (expression.isPresent()) {
+ return facade.getType(expression.get());
+ } else {
+ return VoidType.INSTANCE;
+ }
+}).filter(x -> x != null && !x.isVoid() && !x.isNull()).findFirst().orElse(VoidType.INSTANCE) ==> java.util.Optional.orElse(T)
+ Line 432) returnStmts.stream().map(returnStmt -> {
+ Optional<Expression> expression = returnStmt.getExpression();
+ if (expression.isPresent()) {
+ return facade.getType(expression.get());
+ } else {
+ return VoidType.INSTANCE;
+ }
+}).filter(x -> x != null && !x.isVoid() && !x.isNull()).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 432) returnStmts.stream().map(returnStmt -> {
+ Optional<Expression> expression = returnStmt.getExpression();
+ if (expression.isPresent()) {
+ return facade.getType(expression.get());
+ } else {
+ return VoidType.INSTANCE;
+ }
+}).filter(x -> x != null && !x.isVoid() && !x.isNull()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 432) returnStmts.stream().map(returnStmt -> {
+ Optional<Expression> expression = returnStmt.getExpression();
+ if (expression.isPresent()) {
+ return facade.getType(expression.get());
+ } else {
+ return VoidType.INSTANCE;
+ }
+}) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 432) returnStmts.stream() ==> java.util.Collection.stream()
+ Line 434) returnStmt.getExpression() ==> com.github.javaparser.ast.stmt.ReturnStmt.getExpression()
+ Line 435) expression.isPresent() ==> java.util.Optional.isPresent()
+ Line 436) facade.getType(expression.get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 436) expression.get() ==> java.util.Optional.get()
+ Line 441) x.isVoid() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isVoid()
+ Line 441) x.isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 454) functionalMethod.get().returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 454) functionalMethod.get() ==> java.util.Optional.get()
+ Line 457) funcInterfaceCtx.addPair(formalType, actualType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 459) funcInterfaceCtx.resolve(funcInterfaceCtx.addSingle(functionalInterfaceType)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 459) funcInterfaceCtx.addSingle(functionalInterfaceType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addSingle(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 464) lambdaCtx.addPair(result, functionalTypeWithReturn) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 465) lambdaCtx.resolve(lambdaCtx.addSingle(result)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 465) lambdaCtx.addSingle(result) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addSingle(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 471) refMethod.getCorrespondingDeclaration().getParam(pos).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 471) refMethod.getCorrespondingDeclaration().getParam(pos) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 471) refMethod.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 480) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 481) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 482) JavaParserSymbolDeclaration.getParamPos(node) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.getParamPos(com.github.javaparser.ast.Node)
+ Line 483) facade.solve(callExpr, false) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(com.github.javaparser.ast.expr.MethodCallExpr, boolean)
+ Line 484) refMethod.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 485) getParentNode(node).toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 485) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 485) callExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 485) callExpr.getName() ==> com.github.javaparser.ast.expr.MethodCallExpr.getName()
+ Line 487) logger.finest("getType on method reference expr " + refMethod.getCorrespondingDeclaration().getName()) ==> java.util.logging.Logger.finest(java.lang.String)
+ Line 487) refMethod.getCorrespondingDeclaration().getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 487) refMethod.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 490) facade.solveMethodAsUsage(callExpr) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveMethodAsUsage(com.github.javaparser.ast.expr.MethodCallExpr)
+ Line 491) usage.getParamType(pos) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 493) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 494) facade.solveGenericTypes(result, ctx, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveGenericTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.core.resolution.Context, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 499) FunctionalInterfaceLogic.getFunctionalMethod(result) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.getFunctionalMethod(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 500) functionalMethod.isPresent() ==> java.util.Optional.isPresent()
+ Line 504) facade.toMethodUsage(methodReferenceExpr).returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 504) facade.toMethodUsage(methodReferenceExpr) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.toMethodUsage(com.github.javaparser.ast.expr.MethodReferenceExpr)
+ Line 505) functionalMethod.get().returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 505) functionalMethod.get() ==> java.util.Optional.get()
+ Line 508) inferenceContext.addPair(formalType, actualType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 509) inferenceContext.resolve(inferenceContext.addSingle(result)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 509) inferenceContext.addSingle(result) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addSingle(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 515) refMethod.getCorrespondingDeclaration().getParam(pos).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 515) refMethod.getCorrespondingDeclaration().getParam(pos) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 515) refMethod.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_UnsolvedSymbolException.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_UnsolvedSymbolException.txt
new file mode 100644
index 000000000..eb5ab9029
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_UnsolvedSymbolException.txt
@@ -0,0 +1 @@
+ Line 43) context.toString() ==> java.lang.Object.toString()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AbstractJavaParserContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AbstractJavaParserContext.txt
new file mode 100644
index 000000000..091a96d1c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AbstractJavaParserContext.txt
@@ -0,0 +1,30 @@
+ Line 49) symbolDeclarator.getSymbolDeclarations() ==> com.github.javaparser.symbolsolver.resolution.SymbolDeclarator.getSymbolDeclarations()
+ Line 50) decl.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 50) decl.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 51) SymbolReference.solved(decl) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 54) SymbolReference.unsolved(ValueDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 76) getClass() ==> java.lang.Object.getClass()
+ Line 76) o.getClass() ==> java.lang.Object.getClass()
+ Line 80) wrappedNode.equals(that.wrappedNode) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 87) wrappedNode.hashCode() ==> com.github.javaparser.ast.Node.hashCode()
+ Line 92) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 94) Optional.empty() ==> java.util.Optional.empty()
+ Line 96) parent.solveGenericType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveGenericType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 102) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 103) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 105) parentCall.getArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArguments()
+ Line 106) parentCall.getArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArguments()
+ Line 113) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 115) getParentNode(notMethod) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 117) JavaParserFactory.getContext(notMethod, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 120) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 122) getParentNode(notMethod) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 124) JavaParserFactory.getContext(notMethod, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 132) symbolDeclarator.getSymbolDeclarations().stream().filter(d -> d.getName().equals(name)).map(d -> Value.from(d)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 132) symbolDeclarator.getSymbolDeclarations().stream().filter(d -> d.getName().equals(name)).map(d -> Value.from(d)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 132) symbolDeclarator.getSymbolDeclarations().stream().filter(d -> d.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 132) symbolDeclarator.getSymbolDeclarations().stream() ==> java.util.Collection.stream()
+ Line 132) symbolDeclarator.getSymbolDeclarations() ==> com.github.javaparser.symbolsolver.resolution.SymbolDeclarator.getSymbolDeclarations()
+ Line 133) d.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 133) d.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 134) Value.from(d) ==> com.github.javaparser.symbolsolver.model.resolution.Value.from(com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AbstractMethodLikeDeclarationContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AbstractMethodLikeDeclarationContext.txt
new file mode 100644
index 000000000..51d21ecff
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AbstractMethodLikeDeclarationContext.txt
@@ -0,0 +1,44 @@
+ Line 34) wrappedNode.getParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParameters()
+ Line 35) JavaParserFactory.getSymbolDeclarator(parameter, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 36) AbstractJavaParserContext.solveWith(sb, name) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWith(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String)
+ Line 37) symbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 43) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 43) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 48) wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.getTypeParameters()
+ Line 49) tp.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 49) tp.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 49) tp.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 50) Optional.of(new TypeVariable(new JavaParserTypeParameter(tp, typeSolver))) ==> java.util.Optional.of(T)
+ Line 53) super.solveGenericType(name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveGenericType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 58) wrappedNode.getParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParameters()
+ Line 59) JavaParserFactory.getSymbolDeclarator(parameter, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 60) solveWithAsValue(sb, name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWithAsValue(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 61) symbolReference.isPresent() ==> java.util.Optional.isPresent()
+ Line 68) getParent().solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 68) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 73) wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.getTypeParameters()
+ Line 74) wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.getTypeParameters()
+ Line 75) tp.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 75) tp.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 75) tp.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 76) SymbolReference.solved(new JavaParserTypeParameter(tp, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 82) wrappedNode.getChildNodesByType(com.github.javaparser.ast.body.TypeDeclaration.class) ==> com.github.javaparser.ast.Node.getChildNodesByType(java.lang.Class<N>)
+ Line 85) localType.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 85) localType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 85) localType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 86) SymbolReference.solved(JavaParserFacade.get(typeSolver).getTypeDeclaration(localType)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 86) JavaParserFacade.get(typeSolver).getTypeDeclaration(localType) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 86) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 87) name.startsWith(String.format("%s.", localType.getName())) ==> java.lang.String.startsWith(java.lang.String)
+ Line 87) String.format("%s.", localType.getName()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 87) localType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 88) JavaParserFactory.getContext(localType, typeSolver).solveType(name.substring(localType.getName().getId().length() + 1), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 88) JavaParserFactory.getContext(localType, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 89) name.substring(localType.getName().getId().length() + 1) ==> java.lang.String.substring(int)
+ Line 89) localType.getName().getId().length() ==> java.lang.String.length()
+ Line 89) localType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 89) localType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 93) getParent().solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 93) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 99) getParent().solveMethod(name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 99) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AnonymousClassDeclarationContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AnonymousClassDeclarationContext.txt
new file mode 100644
index 000000000..b5561564e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_AnonymousClassDeclarationContext.txt
@@ -0,0 +1,96 @@
+ Line 37) Preconditions.checkArgument(node.getAnonymousClassBody().isPresent(), "An anonymous class must have a body") ==> com.google.common.base.Preconditions.checkArgument(boolean, java.lang.Object)
+ Line 37) node.getAnonymousClassBody().isPresent() ==> java.util.Optional.isPresent()
+ Line 37) node.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 47) myDeclaration.getDeclaredMethods().stream().filter(m -> m.getName().equals(name) && (!staticOnly || m.isStatic())).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 47) myDeclaration.getDeclaredMethods().stream().filter(m -> m.getName().equals(name) && (!staticOnly || m.isStatic())) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 47) myDeclaration.getDeclaredMethods().stream() ==> java.util.Collection.stream()
+ Line 47) myDeclaration.getDeclaredMethods() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.getDeclaredMethods()
+ Line 50) m.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 50) m.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 50) m.isStatic() ==> com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration.isStatic()
+ Line 51) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 53) Object.class.getCanonicalName().equals(myDeclaration.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 53) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 53) myDeclaration.getQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.getQualifiedName()
+ Line 54) myDeclaration.getAncestors() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.getAncestors()
+ Line 56) MethodResolutionLogic.solveMethodInType(ancestor.getTypeDeclaration(), name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 56) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 64) res.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 65) candidateMethods.add(res.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 65) res.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 72) candidateMethods.isEmpty() ==> java.util.List.isEmpty()
+ Line 74) getParent().solveMethod(name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 74) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 75) parentSolution.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 76) candidateMethods.add(parentSolution.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 76) parentSolution.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 81) candidateMethods.isEmpty() ==> java.util.List.isEmpty()
+ Line 81) myDeclaration.getSuperTypeDeclaration().isInterface() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isInterface()
+ Line 81) myDeclaration.getSuperTypeDeclaration() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.getSuperTypeDeclaration()
+ Line 83) MethodResolutionLogic.solveMethodInType(new ReflectionClassDeclaration(Object.class, typeSolver), name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 89) res.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 90) candidateMethods.add(res.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 90) res.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 94) MethodResolutionLogic.findMostApplicable(candidateMethods, name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 103) myDeclaration.findMembersOfKind(com.github.javaparser.ast.body.TypeDeclaration.class) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.findMembersOfKind(java.lang.Class<T>)
+ Line 107) typeDeclarations.stream().filter(internalType -> internalType.getName().getId().equals(name)).findFirst().map(internalType -> SymbolReference.solved(JavaParserFacade.get(typeSolver).getTypeDeclaration(internalType))) ==> java.util.Optional.map(java.util.function.Function<? super T, ? extends U>)
+ Line 107) typeDeclarations.stream().filter(internalType -> internalType.getName().getId().equals(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 107) typeDeclarations.stream().filter(internalType -> internalType.getName().getId().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 107) typeDeclarations.stream() ==> java.util.Collection.stream()
+ Line 109) internalType.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 109) internalType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 109) internalType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 112) SymbolReference.solved(JavaParserFacade.get(typeSolver).getTypeDeclaration(internalType)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 113) JavaParserFacade.get(typeSolver).getTypeDeclaration(internalType) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 113) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 115) exactMatch.isPresent() ==> java.util.Optional.isPresent()
+ Line 116) exactMatch.get() ==> java.util.Optional.get()
+ Line 120) typeDeclarations.stream().filter(internalType -> name.startsWith(String.format("%s.", internalType.getName()))).findFirst().map(internalType -> JavaParserFactory.getContext(internalType, typeSolver).solveType(name.substring(internalType.getName().getId().length() + 1), typeSolver)) ==> java.util.Optional.map(java.util.function.Function<? super T, ? extends U>)
+ Line 120) typeDeclarations.stream().filter(internalType -> name.startsWith(String.format("%s.", internalType.getName()))).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 120) typeDeclarations.stream().filter(internalType -> name.startsWith(String.format("%s.", internalType.getName()))) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 120) typeDeclarations.stream() ==> java.util.Collection.stream()
+ Line 122) name.startsWith(String.format("%s.", internalType.getName())) ==> java.lang.String.startsWith(java.lang.String)
+ Line 122) String.format("%s.", internalType.getName()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 122) internalType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 125) JavaParserFactory.getContext(internalType, typeSolver).solveType(name.substring(internalType.getName().getId().length() + 1), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 125) JavaParserFactory.getContext(internalType, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 127) name.substring(internalType.getName().getId().length() + 1) ==> java.lang.String.substring(int)
+ Line 127) internalType.getName().getId().length() ==> java.lang.String.length()
+ Line 127) internalType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 127) internalType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 130) recursiveMatch.isPresent() ==> java.util.Optional.isPresent()
+ Line 131) recursiveMatch.get() ==> java.util.Optional.get()
+ Line 135) wrappedNode.getTypeArguments().map(nodes -> ((NodeWithTypeArguments<?>) nodes).getTypeArguments().orElse(new NodeList<>())).orElse(new NodeList<>()).stream().filter(type -> type.toString().equals(name)).findFirst().map(matchingType -> SymbolReference.solved(new JavaParserTypeParameter(new TypeParameter(matchingType.toString()), typeSolver))) ==> ERROR
+ Line 135) wrappedNode.getTypeArguments().map(nodes -> ((NodeWithTypeArguments<?>) nodes).getTypeArguments().orElse(new NodeList<>())).orElse(new NodeList<>()).stream().filter(type -> type.toString().equals(name)).findFirst() ==> ERROR
+ Line 135) wrappedNode.getTypeArguments().map(nodes -> ((NodeWithTypeArguments<?>) nodes).getTypeArguments().orElse(new NodeList<>())).orElse(new NodeList<>()).stream().filter(type -> type.toString().equals(name)) ==> ERROR
+ Line 135) wrappedNode.getTypeArguments().map(nodes -> ((NodeWithTypeArguments<?>) nodes).getTypeArguments().orElse(new NodeList<>())).orElse(new NodeList<>()).stream() ==> java.util.Collection.stream()
+ Line 135) wrappedNode.getTypeArguments().map(nodes -> ((NodeWithTypeArguments<?>) nodes).getTypeArguments().orElse(new NodeList<>())).orElse(new NodeList<>()) ==> java.util.Optional.orElse(T)
+ Line 135) wrappedNode.getTypeArguments().map(nodes -> ((NodeWithTypeArguments<?>) nodes).getTypeArguments().orElse(new NodeList<>())) ==> java.util.Optional.map(java.util.function.Function<? super T, ? extends U>)
+ Line 135) wrappedNode.getTypeArguments() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getTypeArguments()
+ Line 138) ((NodeWithTypeArguments<?>) nodes).getTypeArguments().orElse(new NodeList<>()) ==> java.util.Optional.orElse(T)
+ Line 138) ((NodeWithTypeArguments<?>) nodes).getTypeArguments() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments.getTypeArguments()
+ Line 142) type.toString().equals(name) ==> ERROR
+ Line 142) type.toString() ==> ERROR
+ Line 145) SymbolReference.solved(new JavaParserTypeParameter(new TypeParameter(matchingType.toString()), typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 146) matchingType.toString() ==> ERROR
+ Line 149) typeArgumentsMatch.isPresent() ==> java.util.Optional.isPresent()
+ Line 150) typeArgumentsMatch.get() ==> java.util.Optional.get()
+ Line 154) myDeclaration.getAncestors() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.getAncestors()
+ Line 156) ancestor.getTypeDeclaration().getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 156) ancestor.getTypeDeclaration().getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 156) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 157) SymbolReference.solved(ancestor.getTypeDeclaration()) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 157) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 161) ancestor.getTypeDeclaration().internalTypes() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.internalTypes()
+ Line 161) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 162) internalTypeDeclaration.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 162) internalTypeDeclaration.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 163) SymbolReference.solved(internalTypeDeclaration) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 171) getParent().solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 171) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 177) Preconditions.checkArgument(typeSolver != null) ==> com.google.common.base.Preconditions.checkArgument(boolean)
+ Line 179) myDeclaration.hasVisibleField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasVisibleField(java.lang.String)
+ Line 180) SymbolReference.solved(myDeclaration.getVisibleField(name)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 180) myDeclaration.getVisibleField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getVisibleField(java.lang.String)
+ Line 183) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 183) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_CatchClauseContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_CatchClauseContext.txt
new file mode 100644
index 000000000..cebbaa0f4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_CatchClauseContext.txt
@@ -0,0 +1,14 @@
+ Line 26) JavaParserFactory.getSymbolDeclarator(wrappedNode.getParameter(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 26) wrappedNode.getParameter() ==> com.github.javaparser.ast.stmt.CatchClause.getParameter()
+ Line 27) AbstractJavaParserContext.solveWith(sb, name) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWith(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String)
+ Line 28) symbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 33) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 33) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 38) JavaParserFactory.getSymbolDeclarator(wrappedNode.getParameter(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 38) wrappedNode.getParameter() ==> com.github.javaparser.ast.stmt.CatchClause.getParameter()
+ Line 39) solveWithAsValue(sb, name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWithAsValue(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 40) symbolReference.isPresent() ==> java.util.Optional.isPresent()
+ Line 46) getParent().solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 46) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 52) getParent().solveMethod(name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 52) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ClassOrInterfaceDeclarationContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ClassOrInterfaceDeclarationContext.txt
new file mode 100644
index 000000000..c40ab772f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ClassOrInterfaceDeclarationContext.txt
@@ -0,0 +1,28 @@
+ Line 46) getDeclaration() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.ClassOrInterfaceDeclarationContext.getDeclaration()
+ Line 57) this.getDeclaration().hasVisibleField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasVisibleField(java.lang.String)
+ Line 57) this.getDeclaration() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.ClassOrInterfaceDeclarationContext.getDeclaration()
+ Line 58) SymbolReference.solved(this.getDeclaration().getVisibleField(name)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 58) this.getDeclaration().getVisibleField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getVisibleField(java.lang.String)
+ Line 58) this.getDeclaration() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.ClassOrInterfaceDeclarationContext.getDeclaration()
+ Line 62) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 62) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 69) this.getDeclaration().hasVisibleField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasVisibleField(java.lang.String)
+ Line 69) this.getDeclaration() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.ClassOrInterfaceDeclarationContext.getDeclaration()
+ Line 70) Optional.of(Value.from(this.getDeclaration().getVisibleField(name))) ==> java.util.Optional.of(T)
+ Line 70) Value.from(this.getDeclaration().getVisibleField(name)) ==> com.github.javaparser.symbolsolver.model.resolution.Value.from(com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration)
+ Line 70) this.getDeclaration().getVisibleField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getVisibleField(java.lang.String)
+ Line 70) this.getDeclaration() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.ClassOrInterfaceDeclarationContext.getDeclaration()
+ Line 74) getParent().solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 74) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 79) wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 80) tp.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 80) tp.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 80) tp.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 81) Optional.of(new TypeVariable(new JavaParserTypeParameter(tp, typeSolver))) ==> java.util.Optional.of(T)
+ Line 84) getParent().solveGenericType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveGenericType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 84) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 89) javaParserTypeDeclarationAdapter.solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.JavaParserTypeDeclarationAdapter.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 94) javaParserTypeDeclarationAdapter.solveMethod(name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.JavaParserTypeDeclarationAdapter.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 98) javaParserTypeDeclarationAdapter.solveConstructor(argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.JavaParserTypeDeclarationAdapter.solveConstructor(java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 106) JavaParserFacade.get(typeSolver).getTypeDeclaration(this.wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)
+ Line 106) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_CompilationUnitContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_CompilationUnitContext.txt
new file mode 100644
index 000000000..532124e7e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_CompilationUnitContext.txt
@@ -0,0 +1,130 @@
+ Line 49) name.contains(".") ==> java.lang.String.contains(java.lang.CharSequence)
+ Line 69) itName.contains(".") ==> java.lang.String.contains(java.lang.CharSequence)
+ Line 70) getType(itName) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.getType(java.lang.String)
+ Line 71) getMember(itName) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.getMember(java.lang.String)
+ Line 72) this.solveType(typeName, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 73) type.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 74) new SymbolSolver(typeSolver).solveSymbolInType(type.getCorrespondingDeclaration(), memberName) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String)
+ Line 74) type.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 81) wrappedNode.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 82) wrappedNode.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 83) importDecl.isStatic() ==> com.github.javaparser.ast.ImportDeclaration.isStatic()
+ Line 84) importDecl.isAsterisk() ==> com.github.javaparser.ast.ImportDeclaration.isAsterisk()
+ Line 85) importDecl.getNameAsString() ==> com.github.javaparser.ast.nodeTypes.NodeWithName.getNameAsString()
+ Line 86) typeSolver.solveType(qName) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 87) new SymbolSolver(typeSolver).solveSymbolInType(importedType, name) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String)
+ Line 88) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 92) importDecl.getNameAsString() ==> com.github.javaparser.ast.nodeTypes.NodeWithName.getNameAsString()
+ Line 95) getMember(whole) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.getMember(java.lang.String)
+ Line 96) getType(whole) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.getType(java.lang.String)
+ Line 98) memberName.equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 99) typeSolver.solveType(typeName) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 100) new SymbolSolver(typeSolver).solveSymbolInType(importedType, memberName) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String)
+ Line 107) SymbolReference.unsolved(ValueDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 112) wrappedNode.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 113) wrappedNode.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 114) type.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 114) type.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 114) type.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 116) SymbolReference.solved(JavaParserFacade.get(typeSolver).getTypeDeclaration((ClassOrInterfaceDeclaration) type)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 116) JavaParserFacade.get(typeSolver).getTypeDeclaration((ClassOrInterfaceDeclaration) type) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)
+ Line 116) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 118) SymbolReference.solved(new JavaParserAnnotationDeclaration((AnnotationDeclaration) type, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 120) type.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 120) type.getClass() ==> java.lang.Object.getClass()
+ Line 126) wrappedNode.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 127) name.indexOf('.') ==> java.lang.String.indexOf(int)
+ Line 130) name.substring(0, dotPos) ==> java.lang.String.substring(int, int)
+ Line 133) wrappedNode.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 134) importDecl.isAsterisk() ==> com.github.javaparser.ast.ImportDeclaration.isAsterisk()
+ Line 135) importDecl.getNameAsString() ==> com.github.javaparser.ast.nodeTypes.NodeWithName.getNameAsString()
+ Line 136) importDecl.getName().getQualifier().isPresent() ==> java.util.Optional.isPresent()
+ Line 136) importDecl.getName().getQualifier() ==> com.github.javaparser.ast.expr.Name.getQualifier()
+ Line 136) importDecl.getName() ==> com.github.javaparser.ast.ImportDeclaration.getName()
+ Line 137) importDecl.getName().getIdentifier().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 137) importDecl.getName().getIdentifier() ==> com.github.javaparser.ast.expr.Name.getIdentifier()
+ Line 137) importDecl.getName() ==> com.github.javaparser.ast.ImportDeclaration.getName()
+ Line 140) qName.endsWith("." + prefix) ==> java.lang.String.endsWith(java.lang.String)
+ Line 142) name.substring(dotPos) ==> java.lang.String.substring(int)
+ Line 147) typeSolver.tryToSolveType(qName) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 148) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 149) SymbolReference.adapt(ref, com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.adapt(com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends O>, java.lang.Class<O>)
+ Line 155) wrappedNode.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 156) importDecl.isAsterisk() ==> com.github.javaparser.ast.ImportDeclaration.isAsterisk()
+ Line 157) importDecl.getNameAsString() ==> com.github.javaparser.ast.nodeTypes.NodeWithName.getNameAsString()
+ Line 158) typeSolver.tryToSolveType(qName) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 159) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 160) SymbolReference.adapt(ref, com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.adapt(com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends O>, java.lang.Class<O>)
+ Line 167) this.wrappedNode.getPackageDeclaration().isPresent() ==> java.util.Optional.isPresent()
+ Line 167) this.wrappedNode.getPackageDeclaration() ==> com.github.javaparser.ast.CompilationUnit.getPackageDeclaration()
+ Line 168) this.wrappedNode.getPackageDeclaration().get().getName().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 168) this.wrappedNode.getPackageDeclaration().get().getName() ==> com.github.javaparser.ast.PackageDeclaration.getName()
+ Line 168) this.wrappedNode.getPackageDeclaration().get() ==> java.util.Optional.get()
+ Line 168) this.wrappedNode.getPackageDeclaration() ==> com.github.javaparser.ast.CompilationUnit.getPackageDeclaration()
+ Line 169) typeSolver.tryToSolveType(qName) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 170) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 171) SymbolReference.adapt(ref, com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.adapt(com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends O>, java.lang.Class<O>)
+ Line 176) typeSolver.tryToSolveType(qName) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 177) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 178) SymbolReference.adapt(ref, com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.adapt(com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends O>, java.lang.Class<O>)
+ Line 183) typeSolver.tryToSolveType("java.lang." + name) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 184) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 185) SymbolReference.adapt(ref, com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.adapt(com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends O>, java.lang.Class<O>)
+ Line 189) isQualifiedName(name) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.isQualifiedName(java.lang.String)
+ Line 190) SymbolReference.adapt(typeSolver.tryToSolveType(name), com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.adapt(com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends O>, java.lang.Class<O>)
+ Line 190) typeSolver.tryToSolveType(name) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 192) SymbolReference.unsolved(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 197) type.getScope().isPresent() ==> java.util.Optional.isPresent()
+ Line 197) type.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 198) qName(type.getScope().get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.qName(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 198) type.getScope().get() ==> java.util.Optional.get()
+ Line 198) type.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 198) type.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 198) type.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 200) type.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 200) type.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 205) name.getQualifier().isPresent() ==> java.util.Optional.isPresent()
+ Line 205) name.getQualifier() ==> com.github.javaparser.ast.expr.Name.getQualifier()
+ Line 206) qName(name.getQualifier().get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.qName(com.github.javaparser.ast.expr.Name)
+ Line 206) name.getQualifier().get() ==> java.util.Optional.get()
+ Line 206) name.getQualifier() ==> com.github.javaparser.ast.expr.Name.getQualifier()
+ Line 206) name.getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 208) name.getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 213) qName.split("\\.") ==> java.lang.String.split(java.lang.String)
+ Line 218) qName.lastIndexOf('.') ==> java.lang.String.lastIndexOf(int)
+ Line 222) qName.substring(0, lastDot) ==> java.lang.String.substring(int, int)
+ Line 228) wrappedNode.getImports() ==> com.github.javaparser.ast.CompilationUnit.getImports()
+ Line 229) importDecl.isStatic() ==> com.github.javaparser.ast.ImportDeclaration.isStatic()
+ Line 230) importDecl.isAsterisk() ==> com.github.javaparser.ast.ImportDeclaration.isAsterisk()
+ Line 231) importDecl.getNameAsString() ==> com.github.javaparser.ast.nodeTypes.NodeWithName.getNameAsString()
+ Line 233) this.wrappedNode.getPackageDeclaration().isPresent() ==> java.util.Optional.isPresent()
+ Line 233) this.wrappedNode.getPackageDeclaration() ==> com.github.javaparser.ast.CompilationUnit.getPackageDeclaration()
+ Line 234) this.wrappedNode.getPackageDeclaration().get().getName().getIdentifier().equals(packageName(importString)) ==> java.lang.String.equals(java.lang.Object)
+ Line 234) this.wrappedNode.getPackageDeclaration().get().getName().getIdentifier() ==> com.github.javaparser.ast.expr.Name.getIdentifier()
+ Line 234) this.wrappedNode.getPackageDeclaration().get().getName() ==> com.github.javaparser.ast.PackageDeclaration.getName()
+ Line 234) this.wrappedNode.getPackageDeclaration().get() ==> java.util.Optional.get()
+ Line 234) this.wrappedNode.getPackageDeclaration() ==> com.github.javaparser.ast.CompilationUnit.getPackageDeclaration()
+ Line 234) packageName(importString) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.packageName(java.lang.String)
+ Line 235) this.wrappedNode.getTypes().stream().anyMatch(it -> it.getName().getIdentifier().equals(toSimpleName(importString))) ==> ERROR
+ Line 235) this.wrappedNode.getTypes().stream() ==> java.util.Collection.stream()
+ Line 235) this.wrappedNode.getTypes() ==> com.github.javaparser.ast.CompilationUnit.getTypes()
+ Line 235) it.getName().getIdentifier().equals(toSimpleName(importString)) ==> ERROR
+ Line 235) it.getName().getIdentifier() ==> ERROR
+ Line 235) it.getName() ==> ERROR
+ Line 235) toSimpleName(importString) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.toSimpleName(java.lang.String)
+ Line 238) SymbolReference.unsolved(MethodDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 241) typeSolver.solveType(importString) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 242) MethodResolutionLogic.solveMethodInType(ref, name, argumentsTypes, true, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 244) method.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 248) importDecl.getNameAsString() ==> com.github.javaparser.ast.nodeTypes.NodeWithName.getNameAsString()
+ Line 250) qName.equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 250) qName.endsWith("." + name) ==> java.lang.String.endsWith(java.lang.String)
+ Line 251) getType(qName) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext.getType(java.lang.String)
+ Line 252) typeSolver.solveType(typeName) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 253) MethodResolutionLogic.solveMethodInType(ref, name, argumentsTypes, true, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 254) method.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 261) SymbolReference.unsolved(MethodDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 269) qName.lastIndexOf('.') ==> java.lang.String.lastIndexOf(int)
+ Line 273) qName.substring(0, index) ==> java.lang.String.substring(int, int)
+ Line 278) qName.lastIndexOf('.') ==> java.lang.String.lastIndexOf(int)
+ Line 282) qName.substring(index + 1) ==> java.lang.String.substring(int)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ConstructorContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ConstructorContext.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ConstructorContext.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ContextHelper.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ContextHelper.txt
new file mode 100644
index 000000000..dd6aa345c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ContextHelper.txt
@@ -0,0 +1,13 @@
+ Line 50) ((JavassistClassDeclaration) typeDeclaration).solveMethodAsUsage(name, argumentsTypes, typeSolver, invokationContext, typeParameters) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 52) ((JavassistInterfaceDeclaration) typeDeclaration).solveMethodAsUsage(name, argumentsTypes, typeSolver, invokationContext, typeParameters) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 54) ((JavassistEnumDeclaration) typeDeclaration).solveMethodAsUsage(name, argumentsTypes, typeSolver, invokationContext, typeParameters) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistEnumDeclaration.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 56) ((ReflectionClassDeclaration) typeDeclaration).solveMethodAsUsage(name, argumentsTypes, typeSolver, invokationContext, typeParameters) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 58) ((ReflectionInterfaceDeclaration) typeDeclaration).solveMethodAsUsage(name, argumentsTypes, typeSolver, invokationContext, typeParameters) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 60) ((ReflectionEnumDeclaration) typeDeclaration).solveMethodAsUsage(name, argumentsTypes, typeSolver, invokationContext, typeParameters) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionEnumDeclaration.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 62) ((JavaParserClassDeclaration) typeDeclaration).getContext().solveMethodAsUsage(name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 62) ((JavaParserClassDeclaration) typeDeclaration).getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getContext()
+ Line 64) ((JavaParserInterfaceDeclaration) typeDeclaration).getContext().solveMethodAsUsage(name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 64) ((JavaParserInterfaceDeclaration) typeDeclaration).getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.getContext()
+ Line 66) ((JavaParserEnumDeclaration) typeDeclaration).getContext().solveMethodAsUsage(name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 66) ((JavaParserEnumDeclaration) typeDeclaration).getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration.getContext()
+ Line 68) typeDeclaration.toString() ==> java.lang.Object.toString()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_EnumDeclarationContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_EnumDeclarationContext.txt
new file mode 100644
index 000000000..125da24ee
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_EnumDeclarationContext.txt
@@ -0,0 +1,15 @@
+ Line 41) getDeclaration() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.EnumDeclarationContext.getDeclaration()
+ Line 49) wrappedNode.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 50) constant.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 50) constant.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 50) constant.getName() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getName()
+ Line 51) SymbolReference.solved(new JavaParserEnumConstantDeclaration(constant, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 55) this.getDeclaration().hasField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasField(java.lang.String)
+ Line 55) this.getDeclaration() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.EnumDeclarationContext.getDeclaration()
+ Line 56) SymbolReference.solved(this.getDeclaration().getField(name)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 56) this.getDeclaration().getField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getField(java.lang.String)
+ Line 56) this.getDeclaration() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.EnumDeclarationContext.getDeclaration()
+ Line 60) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 60) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 65) javaParserTypeDeclarationAdapter.solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.JavaParserTypeDeclarationAdapter.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 70) javaParserTypeDeclarationAdapter.solveMethod(name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.JavaParserTypeDeclarationAdapter.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_FieldAccessContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_FieldAccessContext.txt
new file mode 100644
index 000000000..62039f676
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_FieldAccessContext.txt
@@ -0,0 +1,37 @@
+ Line 52) wrappedNode.getField().toString().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 52) wrappedNode.getField().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 52) wrappedNode.getField() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getField()
+ Line 53) wrappedNode.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 54) JavaParserFacade.get(typeSolver).getTypeOfThisIn(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeOfThisIn(com.github.javaparser.ast.Node)
+ Line 54) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 55) new SymbolSolver(typeSolver).solveSymbolInType(typeOfThis.asReferenceType().getTypeDeclaration(), name) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String)
+ Line 55) typeOfThis.asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 55) typeOfThis.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 58) JavaParserFactory.getContext(getParentNode(wrappedNode), typeSolver).solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 58) JavaParserFactory.getContext(getParentNode(wrappedNode), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 58) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 63) JavaParserFactory.getContext(getParentNode(wrappedNode), typeSolver).solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 63) JavaParserFactory.getContext(getParentNode(wrappedNode), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 63) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 68) JavaParserFactory.getContext(getParentNode(wrappedNode), typeSolver).solveMethod(name, parameterTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 68) JavaParserFactory.getContext(getParentNode(wrappedNode), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 68) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 73) wrappedNode.getScope() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getScope()
+ Line 74) wrappedNode.getField().toString().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 74) wrappedNode.getField().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 74) wrappedNode.getField() ==> com.github.javaparser.ast.expr.FieldAccessExpr.getField()
+ Line 75) JavaParserFacade.get(typeSolver).getType(scope) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 75) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 76) typeOfScope.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 76) name.equals(ARRAY_LENGTH_FIELD_NAME) ==> java.lang.String.equals(java.lang.Object)
+ Line 77) Optional.of(new Value(PrimitiveType.INT, ARRAY_LENGTH_FIELD_NAME)) ==> java.util.Optional.of(T)
+ Line 79) typeOfScope.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 80) typeOfScope.asReferenceType().getFieldType(name) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getFieldType(java.lang.String)
+ Line 80) typeOfScope.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 81) typeUsage.isPresent() ==> java.util.Optional.isPresent()
+ Line 82) Optional.of(new Value(typeUsage.get(), name)) ==> java.util.Optional.of(T)
+ Line 82) typeUsage.get() ==> java.util.Optional.get()
+ Line 84) Optional.empty() ==> java.util.Optional.empty()
+ Line 87) Optional.empty() ==> java.util.Optional.empty()
+ Line 90) getParent().solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 90) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ForStatementContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ForStatementContext.txt
new file mode 100644
index 000000000..1c4e6a3e5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ForStatementContext.txt
@@ -0,0 +1,15 @@
+ Line 45) wrappedNode.getInitialization() ==> com.github.javaparser.ast.stmt.ForStmt.getInitialization()
+ Line 48) variableDeclarationExpr.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 49) variableDeclarator.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 49) variableDeclarator.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 49) variableDeclarator.getName() ==> com.github.javaparser.ast.body.VariableDeclarator.getName()
+ Line 50) SymbolReference.solved(JavaParserSymbolDeclaration.localVar(variableDeclarator, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 50) JavaParserSymbolDeclaration.localVar(variableDeclarator, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.localVar(com.github.javaparser.ast.body.VariableDeclarator, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 54) expression.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 54) expression.getClass() ==> java.lang.Object.getClass()
+ Line 58) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 59) StatementContext.solveInBlock(name, typeSolver, wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.StatementContext.solveInBlock(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.ast.stmt.Statement)
+ Line 61) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 61) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 67) getParent().solveMethod(name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 67) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ForechStatementContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ForechStatementContext.txt
new file mode 100644
index 000000000..835f3e4a6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_ForechStatementContext.txt
@@ -0,0 +1,17 @@
+ Line 41) wrappedNode.getVariable().getVariables().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 41) wrappedNode.getVariable().getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 41) wrappedNode.getVariable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getVariable()
+ Line 44) wrappedNode.getVariable().getVariables().get(0) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 44) wrappedNode.getVariable().getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 44) wrappedNode.getVariable() ==> com.github.javaparser.ast.stmt.ForeachStmt.getVariable()
+ Line 45) variableDeclarator.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 45) variableDeclarator.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 45) variableDeclarator.getName() ==> com.github.javaparser.ast.body.VariableDeclarator.getName()
+ Line 46) SymbolReference.solved(JavaParserSymbolDeclaration.localVar(variableDeclarator, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 46) JavaParserSymbolDeclaration.localVar(variableDeclarator, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.localVar(com.github.javaparser.ast.body.VariableDeclarator, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 48) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 49) StatementContext.solveInBlock(name, typeSolver, wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.StatementContext.solveInBlock(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.ast.stmt.Statement)
+ Line 51) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 51) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 58) getParent().solveMethod(name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 58) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_JavaParserTypeDeclarationAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_JavaParserTypeDeclarationAdapter.txt
new file mode 100644
index 000000000..a39bb250c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_JavaParserTypeDeclarationAdapter.txt
@@ -0,0 +1,80 @@
+ Line 42) this.wrappedNode.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 42) this.wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 42) this.wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 43) SymbolReference.solved(JavaParserFacade.get(typeSolver).getTypeDeclaration(wrappedNode)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 43) JavaParserFacade.get(typeSolver).getTypeDeclaration(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 43) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 47) this.wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 50) internalType.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 50) internalType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 50) internalType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 51) SymbolReference.solved(JavaParserFacade.get(typeSolver).getTypeDeclaration(internalType)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 51) JavaParserFacade.get(typeSolver).getTypeDeclaration(internalType) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 51) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 52) name.startsWith(String.format("%s.%s", wrappedNode.getName(), internalType.getName())) ==> java.lang.String.startsWith(java.lang.String)
+ Line 52) String.format("%s.%s", wrappedNode.getName(), internalType.getName()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 52) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 52) internalType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 53) JavaParserFactory.getContext(internalType, typeSolver).solveType(name.substring(wrappedNode.getName().getId().length() + 1), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 53) JavaParserFactory.getContext(internalType, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 53) name.substring(wrappedNode.getName().getId().length() + 1) ==> java.lang.String.substring(int)
+ Line 53) wrappedNode.getName().getId().length() ==> java.lang.String.length()
+ Line 53) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 53) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 54) name.startsWith(String.format("%s.", internalType.getName())) ==> java.lang.String.startsWith(java.lang.String)
+ Line 54) String.format("%s.", internalType.getName()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 54) internalType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 55) JavaParserFactory.getContext(internalType, typeSolver).solveType(name.substring(internalType.getName().getId().length() + 1), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 55) JavaParserFactory.getContext(internalType, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 55) name.substring(internalType.getName().getId().length() + 1) ==> java.lang.String.substring(int)
+ Line 55) internalType.getName().getId().length() ==> java.lang.String.length()
+ Line 55) internalType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 55) internalType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 62) nodeWithTypeParameters.getTypeParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.getTypeParameters()
+ Line 64) astTp.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 64) astTp.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 64) astTp.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 65) SymbolReference.solved(new JavaParserTypeParameter(astTp, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 71) this.typeDeclaration.getAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAncestors()
+ Line 73) ancestor.getTypeDeclaration().internalTypes() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.internalTypes()
+ Line 73) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 74) internalTypeDeclaration.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 74) internalTypeDeclaration.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 75) SymbolReference.solved(internalTypeDeclaration) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 83) context.getParent().solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 83) context.getParent() ==> com.github.javaparser.symbolsolver.core.resolution.Context.getParent()
+ Line 87) typeDeclaration.getDeclaredMethods().stream().filter(m -> m.getName().equals(name)).filter(m -> !staticOnly || (staticOnly && m.isStatic())).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 87) typeDeclaration.getDeclaredMethods().stream().filter(m -> m.getName().equals(name)).filter(m -> !staticOnly || (staticOnly && m.isStatic())) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 87) typeDeclaration.getDeclaredMethods().stream().filter(m -> m.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 87) typeDeclaration.getDeclaredMethods().stream() ==> java.util.Collection.stream()
+ Line 87) typeDeclaration.getDeclaredMethods() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getDeclaredMethods()
+ Line 88) m.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 88) m.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 89) m.isStatic() ==> com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration.isStatic()
+ Line 90) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 92) Object.class.getCanonicalName().equals(typeDeclaration.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 92) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 92) typeDeclaration.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 93) typeDeclaration.getAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAncestors()
+ Line 95) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 96) MethodResolutionLogic.solveMethodInType(ancestor.getTypeDeclaration(), name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 97) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 101) res.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 102) candidateMethods.add(res.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 102) res.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 109) candidateMethods.isEmpty() ==> java.util.List.isEmpty()
+ Line 110) context.getParent().solveMethod(name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 110) context.getParent() ==> com.github.javaparser.symbolsolver.core.resolution.Context.getParent()
+ Line 111) parentSolution.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 112) candidateMethods.add(parentSolution.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 112) parentSolution.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 117) candidateMethods.isEmpty() ==> java.util.List.isEmpty()
+ Line 117) typeDeclaration.isInterface() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isInterface()
+ Line 118) MethodResolutionLogic.solveMethodInType(new ReflectionClassDeclaration(Object.class, typeSolver), name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 119) res.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 120) candidateMethods.add(res.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 120) res.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 124) MethodResolutionLogic.findMostApplicable(candidateMethods, name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 129) ConstructorResolutionLogic.findMostApplicable(((ClassDeclaration) typeDeclaration).getConstructors(), argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration>, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 129) ((ClassDeclaration) typeDeclaration).getConstructors() ==> com.github.javaparser.symbolsolver.model.declarations.ClassDeclaration.getConstructors()
+ Line 131) SymbolReference.unsolved(ConstructorDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_LambdaExprContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_LambdaExprContext.txt
new file mode 100644
index 000000000..f9e6d59f3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_LambdaExprContext.txt
@@ -0,0 +1,78 @@
+ Line 58) wrappedNode.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 59) JavaParserFactory.getSymbolDeclarator(parameter, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 61) sb.getSymbolDeclarations() ==> com.github.javaparser.symbolsolver.resolution.SymbolDeclarator.getSymbolDeclarations()
+ Line 62) decl.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 62) decl.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 63) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 64) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 65) JavaParserFacade.get(typeSolver).solveMethodAsUsage(methodCallExpr) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveMethodAsUsage(com.github.javaparser.ast.expr.MethodCallExpr)
+ Line 65) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 66) pos(methodCallExpr, wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.LambdaExprContext.pos(com.github.javaparser.ast.expr.MethodCallExpr, com.github.javaparser.ast.expr.Expression)
+ Line 67) methodUsage.getParamTypes().get(i) ==> java.util.List.get(int)
+ Line 67) methodUsage.getParamTypes() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamTypes()
+ Line 70) FunctionalInterfaceLogic.getFunctionalMethod(lambdaType) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.getFunctionalMethod(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 71) functionalMethodOpt.isPresent() ==> java.util.Optional.isPresent()
+ Line 72) functionalMethodOpt.get() ==> java.util.Optional.get()
+ Line 77) inferenceContext.addPair(lambdaType, new ReferenceTypeImpl(lambdaType.asReferenceType().getTypeDeclaration(), typeSolver)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 77) lambdaType.asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 77) lambdaType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 82) wrappedNode.getParameters().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 82) wrappedNode.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 83) wrappedNode.getParameter(lambdaParamIndex).getName().getIdentifier().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 83) wrappedNode.getParameter(lambdaParamIndex).getName().getIdentifier() ==> com.github.javaparser.ast.expr.SimpleName.getIdentifier()
+ Line 83) wrappedNode.getParameter(lambdaParamIndex).getName() ==> com.github.javaparser.ast.body.Parameter.getName()
+ Line 83) wrappedNode.getParameter(lambdaParamIndex) ==> com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParameter(int)
+ Line 88) Optional.empty() ==> java.util.Optional.empty()
+ Line 91) inferenceContext.resolve(inferenceContext.addSingle(functionalMethod.getParamType(lambdaParamIndex))) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 91) inferenceContext.addSingle(functionalMethod.getParamType(lambdaParamIndex)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addSingle(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 91) functionalMethod.getParamType(lambdaParamIndex) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 94) argType.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 95) LambdaConstraintType.bound(argType.asWildcard().getBoundedType()) ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.bound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 95) argType.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 95) argType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 97) LambdaConstraintType.bound(argType) ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.bound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 100) Optional.of(value) ==> java.util.Optional.of(T)
+ Line 102) Optional.empty() ==> java.util.Optional.empty()
+ Line 104) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 105) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 106) JavaParserFacade.get(typeSolver).convertToUsageVariableType(variableDeclarator) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsageVariableType(com.github.javaparser.ast.body.VariableDeclarator)
+ Line 106) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 107) FunctionalInterfaceLogic.getFunctionalMethod(t) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.getFunctionalMethod(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 108) functionalMethod.isPresent() ==> java.util.Optional.isPresent()
+ Line 109) functionalMethod.get().getParamType(index) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 109) functionalMethod.get() ==> java.util.Optional.get()
+ Line 113) lambdaType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 114) lambdaType.asReferenceType().getTypeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeParametersMap()
+ Line 114) lambdaType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 115) entry._2.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 115) entry._2.asTypeParameter().declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 115) entry._2.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 116) t.asReferenceType().typeParametersMap().getValue(entry._1) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 116) t.asReferenceType().typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 116) t.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 117) lambdaType.replaceTypeVariables(entry._1, ot, inferredTypes) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 120) lambdaType.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 120) lambdaType.asTypeParameter().declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 120) lambdaType.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 121) t.asReferenceType().typeParametersMap().getValue(lambdaType.asTypeParameter()) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 121) t.asReferenceType().typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 121) t.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 121) lambdaType.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 125) Optional.of(value) ==> java.util.Optional.of(T)
+ Line 138) getParent().solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 138) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 143) wrappedNode.getParameters() ==> com.github.javaparser.ast.expr.LambdaExpr.getParameters()
+ Line 144) JavaParserFactory.getSymbolDeclarator(parameter, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 145) solveWith(sb, name) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWith(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String)
+ Line 146) symbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 152) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 152) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 157) getParent().solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 157) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 163) getParent().solveMethod(name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 163) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 171) symbolDeclarator.getSymbolDeclarations() ==> com.github.javaparser.symbolsolver.resolution.SymbolDeclarator.getSymbolDeclarations()
+ Line 172) decl.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 172) decl.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 177) Optional.empty() ==> java.util.Optional.empty()
+ Line 186) callExpr.getArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArguments()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_MethodCallExprContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_MethodCallExprContext.txt
new file mode 100644
index 000000000..2c751fe1f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_MethodCallExprContext.txt
@@ -0,0 +1,322 @@
+ Line 64) wrappedNode.getScope().isPresent() ==> java.util.Optional.isPresent()
+ Line 64) wrappedNode.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 65) JavaParserFacade.get(typeSolver).getType(wrappedNode.getScope().get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 65) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 65) wrappedNode.getScope().get() ==> java.util.Optional.get()
+ Line 65) wrappedNode.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 66) typeOfScope.asReferenceType().getGenericParameterByName(name) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getGenericParameterByName(java.lang.String)
+ Line 66) typeOfScope.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 69) Optional.empty() ==> java.util.Optional.empty()
+ Line 80) wrappedNode.getScope().isPresent() ==> java.util.Optional.isPresent()
+ Line 80) wrappedNode.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 81) wrappedNode.getScope().get() ==> java.util.Optional.get()
+ Line 81) wrappedNode.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 84) ((NameExpr) scope).getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 84) ((NameExpr) scope).getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 85) solveType(className, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 86) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 87) MethodResolutionLogic.solveMethodInType(ref.getCorrespondingDeclaration(), name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 87) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 88) m.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 89) m.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 90) resolveMethodTypeParametersFromExplicitList(typeSolver, methodUsage) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.resolveMethodTypeParametersFromExplicitList(com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.methods.MethodUsage)
+ Line 91) resolveMethodTypeParameters(methodUsage, argumentsTypes) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.resolveMethodTypeParameters(com.github.javaparser.symbolsolver.model.methods.MethodUsage, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 92) Optional.of(methodUsage) ==> java.util.Optional.of(T)
+ Line 94) ref.getCorrespondingDeclaration().toString() ==> java.lang.Object.toString()
+ Line 94) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 100) JavaParserFacade.get(typeSolver).getType(scope) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 100) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 104) argumentsTypes.size() ==> java.util.List.size()
+ Line 107) argumentsTypes.get(i) ==> java.util.List.get(int)
+ Line 108) usingParameterTypesFromScope(typeOfScope, originalArgumentType, inferredTypes) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.usingParameterTypesFromScope(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 109) argumentsTypes.set(i, updatedArgumentType) ==> java.util.List.set(int, E)
+ Line 111) argumentsTypes.size() ==> java.util.List.size()
+ Line 112) applyInferredTypes(argumentsTypes.get(i), inferredTypes) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.applyInferredTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 112) argumentsTypes.get(i) ==> java.util.List.get(int)
+ Line 113) argumentsTypes.set(i, updatedArgumentType) ==> java.util.List.set(int, E)
+ Line 116) solveMethodAsUsage(typeOfScope, name, argumentsTypes, typeSolver, this) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethodAsUsage(com.github.javaparser.symbolsolver.model.typesystem.Type, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 118) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 120) parentContext.getParent() ==> com.github.javaparser.symbolsolver.core.resolution.Context.getParent()
+ Line 122) parentContext.solveMethodAsUsage(name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 127) wrappedNode.getTypeArguments().isPresent() ==> java.util.Optional.isPresent()
+ Line 127) wrappedNode.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getTypeArguments()
+ Line 129) wrappedNode.getTypeArguments().get() ==> java.util.Optional.get()
+ Line 129) wrappedNode.getTypeArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getTypeArguments()
+ Line 130) typeArguments.add(JavaParserFacade.get(typeSolver).convertToUsage(ty)) ==> java.util.List.add(E)
+ Line 130) JavaParserFacade.get(typeSolver).convertToUsage(ty) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type)
+ Line 130) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 133) methodUsage.getDeclaration().getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 133) methodUsage.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 134) tyParamDecls.size() ==> java.util.List.size()
+ Line 134) typeArguments.size() ==> java.util.List.size()
+ Line 135) tyParamDecls.size() ==> java.util.List.size()
+ Line 136) methodUsage.replaceTypeParameter(tyParamDecls.get(i), typeArguments.get(i)) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceTypeParameter(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 136) tyParamDecls.get(i) ==> java.util.List.get(int)
+ Line 136) typeArguments.get(i) ==> java.util.List.get(int)
+ Line 146) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 146) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 151) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 152) parentContext.solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 157) wrappedNode.getScope().isPresent() ==> java.util.Optional.isPresent()
+ Line 157) wrappedNode.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 158) wrappedNode.getScope().get() ==> java.util.Optional.get()
+ Line 158) wrappedNode.getScope() ==> com.github.javaparser.ast.expr.MethodCallExpr.getScope()
+ Line 163) this.solveType(scopeAsName.getName().getId(), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 163) scopeAsName.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 163) scopeAsName.getName() ==> com.github.javaparser.ast.expr.NameExpr.getName()
+ Line 164) symbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 164) symbolReference.getCorrespondingDeclaration().isType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isType()
+ Line 164) symbolReference.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 165) symbolReference.getCorrespondingDeclaration().asType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asType()
+ Line 165) symbolReference.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 166) MethodResolutionLogic.solveMethodInType(typeDeclaration, name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 172) JavaParserFacade.get(typeSolver).getType(scope) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 172) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 174) String.format("Issue calculating the type of the scope of " + this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 176) typeOfScope.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 177) typeOfScope.asWildcard().isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 177) typeOfScope.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 177) typeOfScope.asWildcard().isSuper() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isSuper()
+ Line 177) typeOfScope.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 178) MethodResolutionLogic.solveMethodInType(typeOfScope.asWildcard().getBoundedType().asReferenceType().getTypeDeclaration(), name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 178) typeOfScope.asWildcard().getBoundedType().asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 178) typeOfScope.asWildcard().getBoundedType().asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 178) typeOfScope.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 178) typeOfScope.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 180) MethodResolutionLogic.solveMethodInType(new ReflectionClassDeclaration(Object.class, typeSolver), name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 182) typeOfScope.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 184) MethodResolutionLogic.solveMethodInType(new ReflectionClassDeclaration(Object.class, typeSolver), name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 185) typeOfScope.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 186) typeOfScope.asTypeParameter().getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 186) typeOfScope.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 187) MethodResolutionLogic.solveMethodInType(bound.getType().asReferenceType().getTypeDeclaration(), name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 187) bound.getType().asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 187) bound.getType().asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 187) bound.getType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.getType()
+ Line 188) res.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 192) SymbolReference.unsolved(MethodDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 193) typeOfScope.isConstraint() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isConstraint()
+ Line 194) MethodResolutionLogic.solveMethodInType(typeOfScope.asConstraintType().getBound().asReferenceType().getTypeDeclaration(), name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 194) typeOfScope.asConstraintType().getBound().asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 194) typeOfScope.asConstraintType().getBound().asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 194) typeOfScope.asConstraintType().getBound() ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.getBound()
+ Line 194) typeOfScope.asConstraintType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asConstraintType()
+ Line 196) MethodResolutionLogic.solveMethodInType(typeOfScope.asReferenceType().getTypeDeclaration(), name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 196) typeOfScope.asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 196) typeOfScope.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 199) JavaParserFacade.get(typeSolver).getTypeOfThisIn(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeOfThisIn(com.github.javaparser.ast.Node)
+ Line 199) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 200) MethodResolutionLogic.solveMethodInType(typeOfScope.asReferenceType().getTypeDeclaration(), name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 200) typeOfScope.asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 200) typeOfScope.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 211) ContextHelper.solveMethodAsUsage(refType.getTypeDeclaration(), name, argumentsTypes, typeSolver, invokationContext, refType.typeParametersValues()) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.ContextHelper.solveMethodAsUsage(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 211) refType.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 211) refType.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 212) ref.isPresent() ==> java.util.Optional.isPresent()
+ Line 213) ref.get() ==> java.util.Optional.get()
+ Line 215) resolveMethodTypeParametersFromExplicitList(typeSolver, methodUsage) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.resolveMethodTypeParametersFromExplicitList(com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.methods.MethodUsage)
+ Line 236) methodUsage.getParamTypes().size() ==> java.util.List.size()
+ Line 236) methodUsage.getParamTypes() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamTypes()
+ Line 237) methodUsage.getDeclaration().getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 237) methodUsage.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 238) parameter.getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 239) parameter.isVariadic() ==> com.github.javaparser.symbolsolver.model.declarations.ParameterDeclaration.isVariadic()
+ Line 240) parameterType.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 240) parameterType.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 242) inferTypes(argumentsTypes.get(i), parameterType, derivedValues) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 242) argumentsTypes.get(i) ==> java.util.List.get(int)
+ Line 245) derivedValues.entrySet() ==> java.util.Map.entrySet()
+ Line 246) methodUsage.replaceTypeParameter(entry.getKey(), entry.getValue()) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceTypeParameter(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 246) entry.getKey() ==> java.util.Map.Entry.getKey()
+ Line 246) entry.getValue() ==> java.util.Map.Entry.getValue()
+ Line 249) refType.useThisTypeParametersOnTheGivenType(methodUsage.returnType()) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParameterValueProvider.useThisTypeParametersOnTheGivenType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 249) methodUsage.returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 250) methodUsage.returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 251) methodUsage.replaceReturnType(returnType) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceReturnType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 253) methodUsage.getParamTypes().size() ==> java.util.List.size()
+ Line 253) methodUsage.getParamTypes() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamTypes()
+ Line 254) refType.useThisTypeParametersOnTheGivenType(methodUsage.getParamTypes().get(i)) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParameterValueProvider.useThisTypeParametersOnTheGivenType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 254) methodUsage.getParamTypes().get(i) ==> java.util.List.get(int)
+ Line 254) methodUsage.getParamTypes() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamTypes()
+ Line 255) methodUsage.replaceParamType(i, replaced) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceParamType(int, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 257) Optional.of(methodUsage) ==> java.util.Optional.of(T)
+ Line 264) source.equals(target) ==> java.lang.Object.equals(java.lang.Object)
+ Line 267) source.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 267) target.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 268) source.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 269) target.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 270) sourceRefType.getQualifiedName().equals(targetRefType.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 270) sourceRefType.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 270) targetRefType.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 271) sourceRefType.isRawType() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.isRawType()
+ Line 271) targetRefType.isRawType() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.isRawType()
+ Line 272) sourceRefType.typeParametersValues().size() ==> java.util.List.size()
+ Line 272) sourceRefType.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 273) inferTypes(sourceRefType.typeParametersValues().get(i), targetRefType.typeParametersValues().get(i), mappings) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 273) sourceRefType.typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 273) sourceRefType.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 273) targetRefType.typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 273) targetRefType.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 279) source.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 279) target.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 280) target.asWildcard().isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 280) target.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 281) inferTypes(source, target.asWildcard().getBoundedType(), mappings) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 281) target.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 281) target.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 286) source.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 286) target.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 287) source.asWildcard().isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 287) source.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 287) target.asWildcard().isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 287) target.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 288) inferTypes(source.asWildcard().getBoundedType(), target.asWildcard().getBoundedType(), mappings) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 288) source.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 288) source.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 288) target.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 288) target.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 292) source.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 292) target.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 293) mappings.put(target.asTypeParameter(), source) ==> java.util.Map.put(K, V)
+ Line 293) target.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 296) source.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 296) target.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 297) mappings.put(target.asTypeParameter(), source) ==> java.util.Map.put(K, V)
+ Line 297) target.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 300) source.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 300) target.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 301) target.asWildcard().isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 301) target.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 302) inferTypes(source, target.asWildcard().getBoundedType(), mappings) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 302) target.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 302) target.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 307) source.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 307) target.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 308) mappings.put(target.asTypeParameter(), source) ==> java.util.Map.put(K, V)
+ Line 308) target.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 312) source.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 312) target.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 313) source.asWildcard().isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 313) source.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 314) inferTypes(source.asWildcard().getBoundedType(), target, mappings) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 314) source.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 314) source.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 318) source.isConstraint() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isConstraint()
+ Line 318) target.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 319) inferTypes(source.asConstraintType().getBound(), target, mappings) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 319) source.asConstraintType().getBound() ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.getBound()
+ Line 319) source.asConstraintType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asConstraintType()
+ Line 323) source.isConstraint() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isConstraint()
+ Line 323) target.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 324) inferTypes(source.asConstraintType().getBound(), target, mappings) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 324) source.asConstraintType().getBound() ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.getBound()
+ Line 324) source.asConstraintType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asConstraintType()
+ Line 327) source.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 327) target.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 328) mappings.put(target.asTypeParameter(), source) ==> java.util.Map.put(K, V)
+ Line 328) target.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 331) source.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 331) target.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 334) source.isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 337) source.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 337) target.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 343) methodUsage.getDeclaration().hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 343) methodUsage.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 344) actualParamTypes.size() ==> java.util.List.size()
+ Line 344) methodUsage.getDeclaration().getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 344) methodUsage.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 347) methodUsage.getDeclaration().getLastParam().getType().asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 347) methodUsage.getDeclaration().getLastParam().getType().asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 347) methodUsage.getDeclaration().getLastParam().getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 347) methodUsage.getDeclaration().getLastParam() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getLastParam()
+ Line 347) methodUsage.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 350) actualParamTypes.get(actualParamTypes.size() - 1).isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 350) actualParamTypes.get(actualParamTypes.size() - 1) ==> java.util.List.get(int)
+ Line 350) actualParamTypes.size() ==> java.util.List.size()
+ Line 351) actualParamTypes.get(actualParamTypes.size() - 1).asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 351) actualParamTypes.get(actualParamTypes.size() - 1).asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 351) actualParamTypes.get(actualParamTypes.size() - 1) ==> java.util.List.get(int)
+ Line 351) actualParamTypes.size() ==> java.util.List.size()
+ Line 352) actualParamTypes.get(actualParamTypes.size() - 1) ==> java.util.List.get(int)
+ Line 352) actualParamTypes.size() ==> java.util.List.size()
+ Line 353) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 354) methodUsage.getDeclaration().getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 354) methodUsage.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 355) MethodResolutionLogic.replaceTypeParam(expectedType, tp, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.replaceTypeParam(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 358) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 361) String.format("Unable to resolve the type typeParametersValues in a MethodUsage. Expected type: %s, Actual type: %s. Method Declaration: %s. MethodUsage: %s", expectedType, actualType, methodUsage.getDeclaration(), methodUsage) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 364) methodUsage.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 368) matchTypeParameters(expectedType, actualType, matchedTypeParameters) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.matchTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 374) methodUsage.getDeclaration().hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 374) methodUsage.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 375) actualParamTypes.size() ==> java.util.List.size()
+ Line 376) actualParamTypes.size() ==> java.util.List.size()
+ Line 379) methodUsage.getParamType(i) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 380) actualParamTypes.get(i) ==> java.util.List.get(int)
+ Line 381) matchTypeParameters(expectedType, actualType, matchedTypeParameters) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.matchTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 383) matchedTypeParameters.keySet() ==> java.util.Map.keySet()
+ Line 384) methodUsage.replaceTypeParameter(tp, matchedTypeParameters.get(tp)) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceTypeParameter(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 384) matchedTypeParameters.get(tp) ==> java.util.Map.get(java.lang.Object)
+ Line 390) expectedType.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 391) actualType.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 391) actualType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 392) actualType.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 392) actualType.getClass() ==> java.lang.Object.getClass()
+ Line 394) matchedTypeParameters.put(expectedType.asTypeParameter(), actualType) ==> java.util.Map.put(K, V)
+ Line 394) expectedType.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 395) expectedType.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 396) actualType.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 397) actualType.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 397) actualType.getClass() ==> java.lang.Object.getClass()
+ Line 399) matchTypeParameters(expectedType.asArrayType().getComponentType(), actualType.asArrayType().getComponentType(), matchedTypeParameters) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.matchTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 400) expectedType.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 400) expectedType.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 401) actualType.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 401) actualType.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 403) expectedType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 405) actualType.asReferenceType().typeParametersValues().size() ==> java.util.List.size()
+ Line 405) actualType.asReferenceType().typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 405) actualType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 407) expectedType.asReferenceType().typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 407) expectedType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 408) matchTypeParameters(tp, actualType.asReferenceType().typeParametersValues().get(i), matchedTypeParameters) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.matchTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 408) actualType.asReferenceType().typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 408) actualType.asReferenceType().typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 408) actualType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 413) expectedType.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 415) expectedType.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 418) expectedType.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 418) expectedType.getClass() ==> java.lang.Object.getClass()
+ Line 423) tp.asTypeParameter().getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 423) tp.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.TypeVariable.asTypeParameter()
+ Line 424) solveMethodAsUsage(bound.getType(), name, argumentsTypes, typeSolver, invokationContext) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethodAsUsage(com.github.javaparser.symbolsolver.model.typesystem.Type, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 424) bound.getType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.getType()
+ Line 425) methodUsage.isPresent() ==> java.util.Optional.isPresent()
+ Line 429) Optional.empty() ==> java.util.Optional.empty()
+ Line 434) solveMethodAsUsage((ReferenceType) type, name, argumentsTypes, typeSolver, invokationContext) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethodAsUsage(com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 436) solveMethodAsUsage((TypeVariable) type, name, argumentsTypes, typeSolver, invokationContext) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethodAsUsage(com.github.javaparser.symbolsolver.model.typesystem.TypeVariable, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 439) wildcardUsage.isSuper() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isSuper()
+ Line 440) solveMethodAsUsage(wildcardUsage.getBoundedType(), name, argumentsTypes, typeSolver, invokationContext) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethodAsUsage(com.github.javaparser.symbolsolver.model.typesystem.Type, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 440) wildcardUsage.getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 441) wildcardUsage.isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 448) solveMethodAsUsage(constraintType.getBound(), name, argumentsTypes, typeSolver, invokationContext) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethodAsUsage(com.github.javaparser.symbolsolver.model.typesystem.Type, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 448) constraintType.getBound() ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.getBound()
+ Line 451) solveMethodAsUsage(new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver), name, argumentsTypes, typeSolver, invokationContext) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethodAsUsage(com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 453) type.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 453) type.getClass() ==> java.lang.Object.getClass()
+ Line 458) type.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 459) type.asReferenceType().getTypeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeParametersMap()
+ Line 459) type.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 460) entry._1.declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 460) scope.asReferenceType().getGenericParameterByName(entry._1.getName()).isPresent() ==> java.util.Optional.isPresent()
+ Line 460) scope.asReferenceType().getGenericParameterByName(entry._1.getName()) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getGenericParameterByName(java.lang.String)
+ Line 460) scope.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 460) entry._1.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 461) type.replaceTypeVariables(entry._1, scope.asReferenceType().getGenericParameterByName(entry._1.getName()).get(), inferredTypes) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 461) scope.asReferenceType().getGenericParameterByName(entry._1.getName()).get() ==> java.util.Optional.get()
+ Line 461) scope.asReferenceType().getGenericParameterByName(entry._1.getName()) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getGenericParameterByName(java.lang.String)
+ Line 461) scope.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 461) entry._1.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 471) inferredTypes.keySet() ==> java.util.Map.keySet()
+ Line 472) type.replaceTypeVariables(tp, inferredTypes.get(tp), inferredTypes) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 472) inferredTypes.get(tp) ==> java.util.Map.get(java.lang.Object)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_MethodContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_MethodContext.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_MethodContext.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_StatementContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_StatementContext.txt
new file mode 100644
index 000000000..774a46580
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_StatementContext.txt
@@ -0,0 +1,93 @@
+ Line 49) getParentNode(stmt) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 52) getParentNode(stmt) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 54) blockStmt.getStatements().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 54) blockStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 55) blockStmt.getStatements().get(i).equals(stmt) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 55) blockStmt.getStatements().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 55) blockStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 63) JavaParserFactory.getSymbolDeclarator(blockStmt.getStatements().get(i), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 63) blockStmt.getStatements().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 63) blockStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 64) solveWith(symbolDeclarator, name) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWith(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String)
+ Line 65) symbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 71) JavaParserFactory.getContext(getParentNode(stmt), typeSolver).solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 71) JavaParserFactory.getContext(getParentNode(stmt), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 71) getParentNode(stmt) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 75) getParentNode(stmt) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 78) getParentNode(stmt) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 80) blockStmt.getStatements().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 80) blockStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 81) blockStmt.getStatements().get(i).equals(stmt) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 81) blockStmt.getStatements().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 81) blockStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 89) JavaParserFactory.getSymbolDeclarator(blockStmt.getStatements().get(i), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 89) blockStmt.getStatements().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 89) blockStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 90) solveWith(symbolDeclarator, name) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWith(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String)
+ Line 91) symbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 92) Optional.of(Value.from(symbolReference.getCorrespondingDeclaration())) ==> java.util.Optional.of(T)
+ Line 92) Value.from(symbolReference.getCorrespondingDeclaration()) ==> com.github.javaparser.symbolsolver.model.resolution.Value.from(com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration)
+ Line 92) symbolReference.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 97) JavaParserFactory.getContext(getParentNode(stmt), typeSolver).solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 97) JavaParserFactory.getContext(getParentNode(stmt), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 97) getParentNode(stmt) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 104) JavaParserFactory.getSymbolDeclarator(wrappedNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 105) solveWithAsValue(symbolDeclarator, name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWithAsValue(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 106) symbolReference.isPresent() ==> java.util.Optional.isPresent()
+ Line 111) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 112) getParent().solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 112) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 114) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 115) getParent().solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 115) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 117) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 118) getParent().solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 118) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 120) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 121) getParent().solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 121) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 123) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 125) nodeWithStmt.getStatements().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 125) nodeWithStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 126) nodeWithStmt.getStatements().get(i).equals(wrappedNode) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 126) nodeWithStmt.getStatements().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 126) nodeWithStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 134) JavaParserFactory.getSymbolDeclarator(nodeWithStmt.getStatements().get(i), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 134) nodeWithStmt.getStatements().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 134) nodeWithStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 135) solveWithAsValue(symbolDeclarator, name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWithAsValue(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 136) symbolReference.isPresent() ==> java.util.Optional.isPresent()
+ Line 142) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 143) parentContext.solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 150) JavaParserFactory.getSymbolDeclarator(wrappedNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 151) solveWith(symbolDeclarator, name) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWith(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String)
+ Line 152) symbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 157) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 158) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 158) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 160) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 161) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 161) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 163) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 164) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 164) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 166) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 167) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 167) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 169) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 171) nodeWithStmt.getStatements().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 171) nodeWithStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 172) nodeWithStmt.getStatements().get(i).equals(wrappedNode) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 172) nodeWithStmt.getStatements().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 172) nodeWithStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 180) JavaParserFactory.getSymbolDeclarator(nodeWithStmt.getStatements().get(i), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 180) nodeWithStmt.getStatements().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 180) nodeWithStmt.getStatements() ==> com.github.javaparser.ast.nodeTypes.NodeWithStatements.getStatements()
+ Line 181) solveWith(symbolDeclarator, name) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWith(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String)
+ Line 182) symbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 188) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 188) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 193) getParent().solveMethod(name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 193) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 198) getParent().solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 198) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_SwitchEntryContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_SwitchEntryContext.txt
new file mode 100644
index 000000000..9552ce0a6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_SwitchEntryContext.txt
@@ -0,0 +1,23 @@
+ Line 47) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 48) JavaParserFacade.get(typeSolver).getType(switchStmt.getSelector()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 48) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 48) switchStmt.getSelector() ==> com.github.javaparser.ast.stmt.SwitchStmt.getSelector()
+ Line 49) type.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 49) type.asReferenceType().getTypeDeclaration().isEnum() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isEnum()
+ Line 49) type.asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 49) type.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 52) typeUsageOfTypeDeclaration.getTypeDeclaration().hasField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasField(java.lang.String)
+ Line 52) typeUsageOfTypeDeclaration.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 53) SymbolReference.solved(typeUsageOfTypeDeclaration.getTypeDeclaration().getField(name)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 53) typeUsageOfTypeDeclaration.getTypeDeclaration().getField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getField(java.lang.String)
+ Line 53) typeUsageOfTypeDeclaration.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 61) switchStmt.getEntries() ==> com.github.javaparser.ast.stmt.SwitchStmt.getEntries()
+ Line 62) seStmt.equals(wrappedNode) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 63) seStmt.getStatements() ==> com.github.javaparser.ast.stmt.SwitchEntryStmt.getStatements()
+ Line 64) JavaParserFactory.getSymbolDeclarator(stmt, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getSymbolDeclarator(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 65) solveWith(symbolDeclarator, name) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.solveWith(com.github.javaparser.symbolsolver.resolution.SymbolDeclarator, java.lang.String)
+ Line 66) symbolReference.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 73) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 73) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 78) getParent().solveMethod(name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 78) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_TryWithResourceContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_TryWithResourceContext.txt
new file mode 100644
index 000000000..ee4c0caf7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_contexts_TryWithResourceContext.txt
@@ -0,0 +1,25 @@
+ Line 45) wrappedNode.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 46) expr.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 47) v.getName().getIdentifier().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 47) v.getName().getIdentifier() ==> com.github.javaparser.ast.expr.SimpleName.getIdentifier()
+ Line 47) v.getName() ==> com.github.javaparser.ast.body.VariableDeclarator.getName()
+ Line 48) JavaParserSymbolDeclaration.localVar(v, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.localVar(com.github.javaparser.ast.body.VariableDeclarator, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 49) Optional.of(Value.from(decl)) ==> java.util.Optional.of(T)
+ Line 49) Value.from(decl) ==> com.github.javaparser.symbolsolver.model.resolution.Value.from(com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration)
+ Line 54) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 55) StatementContext.solveInBlockAsValue(name, typeSolver, wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.StatementContext.solveInBlockAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.ast.stmt.Statement)
+ Line 57) getParent().solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 57) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 63) wrappedNode.getResources() ==> com.github.javaparser.ast.stmt.TryStmt.getResources()
+ Line 64) expr.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 65) v.getName().getIdentifier().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 65) v.getName().getIdentifier() ==> com.github.javaparser.ast.expr.SimpleName.getIdentifier()
+ Line 65) v.getName() ==> com.github.javaparser.ast.body.VariableDeclarator.getName()
+ Line 66) SymbolReference.solved(JavaParserSymbolDeclaration.localVar(v, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 66) JavaParserSymbolDeclaration.localVar(v, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.localVar(com.github.javaparser.ast.body.VariableDeclarator, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 71) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 72) StatementContext.solveInBlock(name, typeSolver, wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.StatementContext.solveInBlock(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.ast.stmt.Statement)
+ Line 74) getParent().solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 74) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
+ Line 80) getParent().solveMethod(name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 80) getParent() ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext.getParent()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_DefaultConstructorDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_DefaultConstructorDeclaration.txt
new file mode 100644
index 000000000..8ead6fd20
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_DefaultConstructorDeclaration.txt
@@ -0,0 +1,2 @@
+ Line 52) classDeclaration.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 62) Collections.emptyList() ==> java.util.Collections.emptyList()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_Helper.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_Helper.txt
new file mode 100644
index 000000000..d54002738
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_Helper.txt
@@ -0,0 +1,26 @@
+ Line 36) modifiers.contains(Modifier.PRIVATE) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 38) modifiers.contains(Modifier.PROTECTED) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 40) modifiers.contains(Modifier.PUBLIC) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 48) getPackageName(container) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getPackageName(com.github.javaparser.ast.Node)
+ Line 49) getClassName("", container) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getClassName(java.lang.String, com.github.javaparser.ast.Node)
+ Line 51) packageName.isEmpty() ==> java.lang.String.isEmpty()
+ Line 51) className.isEmpty() ==> java.lang.String.isEmpty()
+ Line 57) ((CompilationUnit) container).getPackageDeclaration() ==> com.github.javaparser.ast.CompilationUnit.getPackageDeclaration()
+ Line 58) p.isPresent() ==> java.util.Optional.isPresent()
+ Line 59) p.get().getName().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 59) p.get().getName() ==> com.github.javaparser.ast.PackageDeclaration.getName()
+ Line 59) p.get() ==> java.util.Optional.get()
+ Line 62) getPackageName(getParentNode(container)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getPackageName(com.github.javaparser.ast.Node)
+ Line 62) getParentNode(container) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 69) getClassName(base, getParentNode(container)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getClassName(java.lang.String, com.github.javaparser.ast.Node)
+ Line 69) getParentNode(container) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 70) ((com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) container).getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 70) ((com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) container).getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 71) b.isEmpty() ==> java.lang.String.isEmpty()
+ Line 77) getClassName(base, getParentNode(container)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getClassName(java.lang.String, com.github.javaparser.ast.Node)
+ Line 77) getParentNode(container) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 78) ((com.github.javaparser.ast.body.EnumDeclaration) container).getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 78) ((com.github.javaparser.ast.body.EnumDeclaration) container).getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 79) b.isEmpty() ==> java.lang.String.isEmpty()
+ Line 85) getClassName(base, getParentNode(container)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getClassName(java.lang.String, com.github.javaparser.ast.Node)
+ Line 85) getParentNode(container) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserAnnotationDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserAnnotationDeclaration.txt
new file mode 100644
index 000000000..f63725bd8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserAnnotationDeclaration.txt
@@ -0,0 +1,12 @@
+ Line 60) Helper.getPackageName(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getPackageName(com.github.javaparser.ast.Node)
+ Line 65) Helper.getClassName("", wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getClassName(java.lang.String, com.github.javaparser.ast.Node)
+ Line 70) Helper.containerName(getParentNode(wrappedNode)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.containerName(com.github.javaparser.ast.Node)
+ Line 70) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 71) containerName.isEmpty() ==> java.lang.String.isEmpty()
+ Line 72) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 72) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 74) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 80) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 80) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 90) this.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 90) this.getClass() ==> java.lang.Object.getClass()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserAnonymousClassDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserAnonymousClassDeclaration.txt
new file mode 100644
index 000000000..a195f82d9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserAnonymousClassDeclaration.txt
@@ -0,0 +1,87 @@
+ Line 37) UUID.randomUUID() ==> java.util.UUID.randomUUID()
+ Line 44) JavaParserFactory.getContext(wrappedNode.getParentNode().get(), typeSolver).solveType(wrappedNode.getType().getName().getId(), typeSolver).getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 44) JavaParserFactory.getContext(wrappedNode.getParentNode().get(), typeSolver).solveType(wrappedNode.getType().getName().getId(), typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 44) JavaParserFactory.getContext(wrappedNode.getParentNode().get(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 44) wrappedNode.getParentNode().get() ==> java.util.Optional.get()
+ Line 44) wrappedNode.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 45) wrappedNode.getType().getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 45) wrappedNode.getType().getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 45) wrappedNode.getType() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getType()
+ Line 54) wrappedNode.getAnonymousClassBody().get().stream().filter(node -> memberClass.isAssignableFrom(node.getClass())).map(node -> (T) node).collect(Collectors.toList()) ==> ERROR
+ Line 54) wrappedNode.getAnonymousClassBody().get().stream().filter(node -> memberClass.isAssignableFrom(node.getClass())).map(node -> (T) node) ==> ERROR
+ Line 54) wrappedNode.getAnonymousClassBody().get().stream().filter(node -> memberClass.isAssignableFrom(node.getClass())) ==> ERROR
+ Line 54) wrappedNode.getAnonymousClassBody().get().stream() ==> java.util.Collection.stream()
+ Line 54) wrappedNode.getAnonymousClassBody().get() ==> java.util.Optional.get()
+ Line 54) wrappedNode.getAnonymousClassBody() ==> com.github.javaparser.ast.expr.ObjectCreationExpr.getAnonymousClassBody()
+ Line 58) memberClass.isAssignableFrom(node.getClass()) ==> ERROR
+ Line 58) node.getClass() ==> ERROR
+ Line 60) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 65) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 65) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 70) superTypeDeclaration.asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 76) superTypeDeclaration.asReferenceType().getAncestors().stream().filter(type -> type.getTypeDeclaration().isInterface()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 76) superTypeDeclaration.asReferenceType().getAncestors().stream().filter(type -> type.getTypeDeclaration().isInterface()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 76) superTypeDeclaration.asReferenceType().getAncestors().stream() ==> java.util.Collection.stream()
+ Line 76) superTypeDeclaration.asReferenceType().getAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAncestors()
+ Line 76) superTypeDeclaration.asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 79) type.getTypeDeclaration().isInterface() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isInterface()
+ Line 79) type.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 80) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 86) findMembersOfKind(com.github.javaparser.ast.body.ConstructorDeclaration.class).stream().map(ctor -> new JavaParserConstructorDeclaration(this, ctor, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 86) findMembersOfKind(com.github.javaparser.ast.body.ConstructorDeclaration.class).stream().map(ctor -> new JavaParserConstructorDeclaration(this, ctor, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 86) findMembersOfKind(com.github.javaparser.ast.body.ConstructorDeclaration.class).stream() ==> java.util.Collection.stream()
+ Line 86) findMembersOfKind(com.github.javaparser.ast.body.ConstructorDeclaration.class) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.findMembersOfKind(java.lang.Class<T>)
+ Line 89) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 100) ImmutableList.<ReferenceType>builder().add(getSuperClass()).addAll(superTypeDeclaration.asReferenceType().getAncestors()).build() ==> com.google.common.collect.ImmutableList.Builder.build()
+ Line 100) ImmutableList.<ReferenceType>builder().add(getSuperClass()).addAll(superTypeDeclaration.asReferenceType().getAncestors()) ==> com.google.common.collect.ImmutableList.Builder.addAll(java.lang.Iterable<? extends E>)
+ Line 100) ImmutableList.<ReferenceType>builder().add(getSuperClass()) ==> com.google.common.collect.ImmutableList.Builder.add(E...)
+ Line 100) ImmutableList.<ReferenceType>builder() ==> com.google.common.collect.ImmutableList.builder()
+ Line 102) getSuperClass() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.getSuperClass()
+ Line 103) superTypeDeclaration.asReferenceType().getAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAncestors()
+ Line 103) superTypeDeclaration.asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 111) findMembersOfKind(com.github.javaparser.ast.body.FieldDeclaration.class).stream().flatMap(field -> field.getVariables().stream().map(variable -> new JavaParserFieldDeclaration(variable, typeSolver))).collect(Collectors.toList()) ==> ERROR
+ Line 111) findMembersOfKind(com.github.javaparser.ast.body.FieldDeclaration.class).stream().flatMap(field -> field.getVariables().stream().map(variable -> new JavaParserFieldDeclaration(variable, typeSolver))) ==> java.util.stream.Stream.flatMap(java.util.function.Function<? super T, ? extends java.util.stream.Stream<? extends R>>)
+ Line 111) findMembersOfKind(com.github.javaparser.ast.body.FieldDeclaration.class).stream() ==> java.util.Collection.stream()
+ Line 111) findMembersOfKind(com.github.javaparser.ast.body.FieldDeclaration.class) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.findMembersOfKind(java.lang.Class<T>)
+ Line 114) field.getVariables().stream().map(variable -> new JavaParserFieldDeclaration(variable, typeSolver)) ==> ERROR
+ Line 114) field.getVariables().stream() ==> ERROR
+ Line 114) field.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 117) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 120) getSuperClass().getTypeDeclaration().getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 120) getSuperClass().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 120) getSuperClass() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.getSuperClass()
+ Line 123) getInterfaces().stream().flatMap(inteface -> inteface.getTypeDeclaration().getAllFields().stream()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 123) getInterfaces().stream().flatMap(inteface -> inteface.getTypeDeclaration().getAllFields().stream()) ==> java.util.stream.Stream.flatMap(java.util.function.Function<? super T, ? extends java.util.stream.Stream<? extends R>>)
+ Line 123) getInterfaces().stream() ==> java.util.Collection.stream()
+ Line 123) getInterfaces() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.getInterfaces()
+ Line 124) inteface.getTypeDeclaration().getAllFields().stream() ==> java.util.Collection.stream()
+ Line 124) inteface.getTypeDeclaration().getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 124) inteface.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 125) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 128) ImmutableList.<FieldDeclaration>builder().addAll(myFields).addAll(superClassFields).addAll(interfaceFields).build() ==> com.google.common.collect.ImmutableList.Builder.build()
+ Line 128) ImmutableList.<FieldDeclaration>builder().addAll(myFields).addAll(superClassFields).addAll(interfaceFields) ==> com.google.common.collect.ImmutableList.Builder.addAll(java.lang.Iterable<? extends E>)
+ Line 128) ImmutableList.<FieldDeclaration>builder().addAll(myFields).addAll(superClassFields) ==> com.google.common.collect.ImmutableList.Builder.addAll(java.lang.Iterable<? extends E>)
+ Line 128) ImmutableList.<FieldDeclaration>builder().addAll(myFields) ==> com.google.common.collect.ImmutableList.Builder.addAll(java.lang.Iterable<? extends E>)
+ Line 128) ImmutableList.<FieldDeclaration>builder() ==> com.google.common.collect.ImmutableList.builder()
+ Line 139) findMembersOfKind(com.github.javaparser.ast.body.MethodDeclaration.class).stream().map(method -> new JavaParserMethodDeclaration(method, typeSolver)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 139) findMembersOfKind(com.github.javaparser.ast.body.MethodDeclaration.class).stream().map(method -> new JavaParserMethodDeclaration(method, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 139) findMembersOfKind(com.github.javaparser.ast.body.MethodDeclaration.class).stream() ==> java.util.Collection.stream()
+ Line 139) findMembersOfKind(com.github.javaparser.ast.body.MethodDeclaration.class) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.findMembersOfKind(java.lang.Class<T>)
+ Line 142) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 162) Helper.getPackageName(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getPackageName(com.github.javaparser.ast.Node)
+ Line 167) Helper.getClassName("", wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getClassName(java.lang.String, com.github.javaparser.ast.Node)
+ Line 172) Helper.containerName(getParentNode(wrappedNode)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.containerName(com.github.javaparser.ast.Node)
+ Line 172) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 173) containerName.isEmpty() ==> java.lang.String.isEmpty()
+ Line 174) getName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.getName()
+ Line 176) getName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.getName()
+ Line 183) findMembersOfKind(com.github.javaparser.ast.body.TypeDeclaration.class).stream().map(typeMember -> JavaParserFacade.get(typeSolver).getTypeDeclaration(typeMember)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 183) findMembersOfKind(com.github.javaparser.ast.body.TypeDeclaration.class).stream().map(typeMember -> JavaParserFacade.get(typeSolver).getTypeDeclaration(typeMember)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 183) findMembersOfKind(com.github.javaparser.ast.body.TypeDeclaration.class).stream() ==> java.util.Collection.stream()
+ Line 183) findMembersOfKind(com.github.javaparser.ast.body.TypeDeclaration.class) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnonymousClassDeclaration.findMembersOfKind(java.lang.Class<T>)
+ Line 185) JavaParserFacade.get(typeSolver).getTypeDeclaration(typeMember) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 185) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 186) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 196) Lists.newArrayList() ==> com.google.common.collect.Lists.newArrayList()
+ Line 201) this.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 201) this.getClass() ==> java.lang.Object.getClass()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserClassDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserClassDeclaration.txt
new file mode 100644
index 000000000..af627c4e2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserClassDeclaration.txt
@@ -0,0 +1,139 @@
+ Line 64) wrappedNode.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 79) getClass() ==> java.lang.Object.getClass()
+ Line 79) o.getClass() ==> java.lang.Object.getClass()
+ Line 83) wrappedNode.equals(that.wrappedNode) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 90) wrappedNode.hashCode() ==> com.github.javaparser.ast.Node.hashCode()
+ Line 107) wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 110) field.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 111) fields.add(new JavaParserFieldDeclaration(vd, typeSolver)) ==> java.util.ArrayList.add(E)
+ Line 116) this.getSuperClass().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 116) this.getSuperClass() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getSuperClass()
+ Line 118) fields.addAll(superclass.getAllFields()) ==> java.util.ArrayList.addAll(java.util.Collection<? extends E>)
+ Line 118) superclass.getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 120) getInterfaces().forEach(interf -> interf.getTypeDeclaration().getAllFields().forEach(f -> {
+ fields.add(f);
+})) ==> java.lang.Iterable.forEach(java.util.function.Consumer<? super T>)
+ Line 120) getInterfaces() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getInterfaces()
+ Line 120) interf.getTypeDeclaration().getAllFields().forEach(f -> {
+ fields.add(f);
+}) ==> java.lang.Iterable.forEach(java.util.function.Consumer<? super T>)
+ Line 120) interf.getTypeDeclaration().getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 120) interf.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 121) fields.add(f) ==> java.util.ArrayList.add(E)
+ Line 132) getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getContext()
+ Line 133) ctx.solveMethod(name, parameterTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 138) JavaParserFactory.getContext(wrappedNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 147) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 147) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 152) wrappedNode.getExtendedTypes().isEmpty() ==> com.github.javaparser.ast.NodeList.isEmpty()
+ Line 152) wrappedNode.getExtendedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtendedTypes()
+ Line 153) object() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.object()
+ Line 155) toReferenceType(wrappedNode.getExtendedTypes().get(0)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.toReferenceType(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 155) wrappedNode.getExtendedTypes().get(0) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 155) wrappedNode.getExtendedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtendedTypes()
+ Line 162) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 163) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 164) interfaces.add(toReferenceType(t)) ==> java.util.List.add(E)
+ Line 164) toReferenceType(t) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.toReferenceType(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 173) wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 176) declared.add(new JavaParserConstructorDeclaration(this, constructorDeclaration, typeSolver)) ==> java.util.List.add(E)
+ Line 179) declared.isEmpty() ==> java.util.List.isEmpty()
+ Line 181) ImmutableList.of(new DefaultConstructorDeclaration(this)) ==> com.google.common.collect.ImmutableList.of(E)
+ Line 189) wrappedNode.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 190) solveType(annotationExpr.getName().getId(), typeSolver).getCorrespondingDeclaration().getQualifiedName().equals(canonicalName) ==> java.lang.String.equals(java.lang.Object)
+ Line 190) solveType(annotationExpr.getName().getId(), typeSolver).getCorrespondingDeclaration().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 190) solveType(annotationExpr.getName().getId(), typeSolver).getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 190) solveType(annotationExpr.getName().getId(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 190) annotationExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 190) annotationExpr.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 199) wrappedNode.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 204) javaParserTypeAdapter.getPackageName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getPackageName()
+ Line 209) javaParserTypeAdapter.getClassName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getClassName()
+ Line 214) javaParserTypeAdapter.getQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getQualifiedName()
+ Line 219) javaParserTypeAdapter.isAssignableBy(other) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 224) javaParserTypeAdapter.isAssignableBy(type) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 230) this.getQualifiedName().equals(other.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 230) this.getQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getQualifiedName()
+ Line 230) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 233) getSuperClass().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 233) getSuperClass() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getSuperClass()
+ Line 236) Object.class.getCanonicalName().equals(superclass.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 236) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 236) superclass.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 239) superclass.canBeAssignedTo(other) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 244) this.wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 245) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 246) new SymbolSolver(typeSolver).solveType(type) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveType(com.github.javaparser.ast.type.Type)
+ Line 247) ancestor.canBeAssignedTo(other) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 263) this.wrappedNode.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 263) this.wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 263) this.wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 264) SymbolReference.solved(this) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 266) javaParserTypeAdapter.solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 267) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 271) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 272) name.startsWith(prefix) ==> java.lang.String.startsWith(java.lang.String)
+ Line 272) name.length() ==> java.lang.String.length()
+ Line 272) prefix.length() ==> java.lang.String.length()
+ Line 273) new JavaParserClassDeclaration(this.wrappedNode, typeSolver).solveType(name.substring(prefix.length()), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 273) name.substring(prefix.length()) ==> java.lang.String.substring(int)
+ Line 273) prefix.length() ==> java.lang.String.length()
+ Line 276) getContext().getParent().solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 276) getContext().getParent() ==> com.github.javaparser.symbolsolver.core.resolution.Context.getParent()
+ Line 276) getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getContext()
+ Line 282) getSuperClass() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getSuperClass()
+ Line 284) ancestors.add(superclass) ==> java.util.List.add(E)
+ Line 286) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 287) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 288) toReferenceType(implemented) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.toReferenceType(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 289) ancestors.add(ancestor) ==> java.util.List.add(E)
+ Line 298) wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 300) methods.add(new JavaParserMethodDeclaration((com.github.javaparser.ast.body.MethodDeclaration) member, typeSolver)) ==> java.util.Set.add(E)
+ Line 308) this.wrappedNode.getTypeParameters().stream().map((tp) -> new JavaParserTypeParameter(tp, typeSolver)).collect(Collectors.toList()) ==> ERROR
+ Line 308) this.wrappedNode.getTypeParameters().stream().map((tp) -> new JavaParserTypeParameter(tp, typeSolver)) ==> ERROR
+ Line 308) this.wrappedNode.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 308) this.wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 310) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 324) Helper.toAccessLevel(wrappedNode.getModifiers()) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.toAccessLevel(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 324) wrappedNode.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 333) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 333) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 339) this.wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 341) res.add(JavaParserFacade.get(typeSolver).getTypeDeclaration((com.github.javaparser.ast.body.TypeDeclaration) member)) ==> java.util.Set.add(E)
+ Line 341) JavaParserFacade.get(typeSolver).getTypeDeclaration((com.github.javaparser.ast.body.TypeDeclaration) member) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 341) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 349) javaParserTypeAdapter.containerType() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.containerType()
+ Line 357) classOrInterfaceType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 357) classOrInterfaceType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 358) classOrInterfaceType.getScope().isPresent() ==> java.util.Optional.isPresent()
+ Line 358) classOrInterfaceType.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 360) classOrInterfaceType.getScope().get().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 360) classOrInterfaceType.getScope().get() ==> java.util.Optional.get()
+ Line 360) classOrInterfaceType.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 362) solveType(className, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 363) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 364) classOrInterfaceType.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 365) localScope.isPresent() ==> java.util.Optional.isPresent()
+ Line 366) localScope.get().getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 366) localScope.get().getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 366) localScope.get() ==> java.util.Optional.get()
+ Line 366) classOrInterfaceType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 366) classOrInterfaceType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 367) solveType(localName, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 370) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 371) classOrInterfaceType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 371) classOrInterfaceType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 373) classOrInterfaceType.getTypeArguments().isPresent() ==> java.util.Optional.isPresent()
+ Line 373) classOrInterfaceType.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 374) ref.getCorrespondingDeclaration().asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 374) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 376) classOrInterfaceType.getTypeArguments().get().stream().map(ta -> new LazyType(v -> JavaParserFacade.get(typeSolver).convert(ta, ta))).collect(Collectors.toList()) ==> ERROR
+ Line 376) classOrInterfaceType.getTypeArguments().get().stream().map(ta -> new LazyType(v -> JavaParserFacade.get(typeSolver).convert(ta, ta))) ==> ERROR
+ Line 376) classOrInterfaceType.getTypeArguments().get().stream() ==> java.util.Collection.stream()
+ Line 376) classOrInterfaceType.getTypeArguments().get() ==> java.util.Optional.get()
+ Line 376) classOrInterfaceType.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 377) JavaParserFacade.get(typeSolver).convert(ta, ta) ==> ERROR
+ Line 377) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 378) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 379) ref.getCorrespondingDeclaration().asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 379) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserClassDeclaration_J9.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserClassDeclaration_J9.txt
new file mode 100644
index 000000000..df92d78e8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserClassDeclaration_J9.txt
@@ -0,0 +1,139 @@
+ Line 64) wrappedNode.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 79) getClass() ==> java.lang.Object.getClass()
+ Line 79) o.getClass() ==> java.lang.Object.getClass()
+ Line 83) wrappedNode.equals(that.wrappedNode) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 90) wrappedNode.hashCode() ==> com.github.javaparser.ast.Node.hashCode()
+ Line 107) wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 110) field.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 111) fields.add(new JavaParserFieldDeclaration(vd, typeSolver)) ==> java.util.ArrayList.add(E)
+ Line 116) this.getSuperClass().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 116) this.getSuperClass() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getSuperClass()
+ Line 118) fields.addAll(superclass.getAllFields()) ==> java.util.ArrayList.addAll(java.util.Collection<? extends E>)
+ Line 118) superclass.getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 120) getInterfaces().forEach(interf -> interf.getTypeDeclaration().getAllFields().forEach(f -> {
+ fields.add(f);
+})) ==> java.lang.Iterable.forEach(java.util.function.Consumer<? super T>)
+ Line 120) getInterfaces() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getInterfaces()
+ Line 120) interf.getTypeDeclaration().getAllFields().forEach(f -> {
+ fields.add(f);
+}) ==> java.lang.Iterable.forEach(java.util.function.Consumer<? super T>)
+ Line 120) interf.getTypeDeclaration().getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 120) interf.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 121) fields.add(f) ==> java.util.ArrayList.add(E)
+ Line 132) getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getContext()
+ Line 133) ctx.solveMethod(name, parameterTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 138) JavaParserFactory.getContext(wrappedNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 147) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 147) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 152) wrappedNode.getExtendedTypes().isEmpty() ==> com.github.javaparser.ast.NodeList.isEmpty()
+ Line 152) wrappedNode.getExtendedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtendedTypes()
+ Line 153) object() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.object()
+ Line 155) toReferenceType(wrappedNode.getExtendedTypes().get(0)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.toReferenceType(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 155) wrappedNode.getExtendedTypes().get(0) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 155) wrappedNode.getExtendedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtendedTypes()
+ Line 162) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 163) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 164) interfaces.add(toReferenceType(t)) ==> java.util.List.add(E)
+ Line 164) toReferenceType(t) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.toReferenceType(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 173) wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 176) declared.add(new JavaParserConstructorDeclaration(this, constructorDeclaration, typeSolver)) ==> java.util.List.add(E)
+ Line 179) declared.isEmpty() ==> java.util.List.isEmpty()
+ Line 181) ImmutableList.of(new DefaultConstructorDeclaration(this)) ==> java.util.List.of(E...)
+ Line 189) wrappedNode.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 190) solveType(annotationExpr.getName().getId(), typeSolver).getCorrespondingDeclaration().getQualifiedName().equals(canonicalName) ==> java.lang.String.equals(java.lang.Object)
+ Line 190) solveType(annotationExpr.getName().getId(), typeSolver).getCorrespondingDeclaration().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 190) solveType(annotationExpr.getName().getId(), typeSolver).getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 190) solveType(annotationExpr.getName().getId(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 190) annotationExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 190) annotationExpr.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 199) wrappedNode.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 204) javaParserTypeAdapter.getPackageName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getPackageName()
+ Line 209) javaParserTypeAdapter.getClassName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getClassName()
+ Line 214) javaParserTypeAdapter.getQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getQualifiedName()
+ Line 219) javaParserTypeAdapter.isAssignableBy(other) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 224) javaParserTypeAdapter.isAssignableBy(type) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 230) this.getQualifiedName().equals(other.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 230) this.getQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getQualifiedName()
+ Line 230) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 233) getSuperClass().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 233) getSuperClass() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getSuperClass()
+ Line 236) Object.class.getCanonicalName().equals(superclass.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 236) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 236) superclass.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 239) superclass.canBeAssignedTo(other) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 244) this.wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 245) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 246) new SymbolSolver(typeSolver).solveType(type) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveType(com.github.javaparser.ast.type.Type)
+ Line 247) ancestor.canBeAssignedTo(other) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 263) this.wrappedNode.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 263) this.wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 263) this.wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 264) SymbolReference.solved(this) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 266) javaParserTypeAdapter.solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 267) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 271) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 272) name.startsWith(prefix) ==> java.lang.String.startsWith(java.lang.String)
+ Line 272) name.length() ==> java.lang.String.length()
+ Line 272) prefix.length() ==> java.lang.String.length()
+ Line 273) new JavaParserClassDeclaration(this.wrappedNode, typeSolver).solveType(name.substring(prefix.length()), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 273) name.substring(prefix.length()) ==> java.lang.String.substring(int)
+ Line 273) prefix.length() ==> java.lang.String.length()
+ Line 276) getContext().getParent().solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 276) getContext().getParent() ==> com.github.javaparser.symbolsolver.core.resolution.Context.getParent()
+ Line 276) getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getContext()
+ Line 282) getSuperClass() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getSuperClass()
+ Line 284) ancestors.add(superclass) ==> java.util.List.add(E)
+ Line 286) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 287) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 288) toReferenceType(implemented) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.toReferenceType(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 289) ancestors.add(ancestor) ==> java.util.List.add(E)
+ Line 298) wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 300) methods.add(new JavaParserMethodDeclaration((com.github.javaparser.ast.body.MethodDeclaration) member, typeSolver)) ==> java.util.Set.add(E)
+ Line 308) this.wrappedNode.getTypeParameters().stream().map((tp) -> new JavaParserTypeParameter(tp, typeSolver)).collect(Collectors.toList()) ==> ERROR
+ Line 308) this.wrappedNode.getTypeParameters().stream().map((tp) -> new JavaParserTypeParameter(tp, typeSolver)) ==> ERROR
+ Line 308) this.wrappedNode.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 308) this.wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 310) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 324) Helper.toAccessLevel(wrappedNode.getModifiers()) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.toAccessLevel(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 324) wrappedNode.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 333) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 333) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 339) this.wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 341) res.add(JavaParserFacade.get(typeSolver).getTypeDeclaration((com.github.javaparser.ast.body.TypeDeclaration) member)) ==> java.util.Set.add(E)
+ Line 341) JavaParserFacade.get(typeSolver).getTypeDeclaration((com.github.javaparser.ast.body.TypeDeclaration) member) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 341) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 349) javaParserTypeAdapter.containerType() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.containerType()
+ Line 357) classOrInterfaceType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 357) classOrInterfaceType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 358) classOrInterfaceType.getScope().isPresent() ==> java.util.Optional.isPresent()
+ Line 358) classOrInterfaceType.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 360) classOrInterfaceType.getScope().get().toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 360) classOrInterfaceType.getScope().get() ==> java.util.Optional.get()
+ Line 360) classOrInterfaceType.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 362) solveType(className, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 363) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 364) classOrInterfaceType.getScope() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getScope()
+ Line 365) localScope.isPresent() ==> java.util.Optional.isPresent()
+ Line 366) localScope.get().getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 366) localScope.get().getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 366) localScope.get() ==> java.util.Optional.get()
+ Line 366) classOrInterfaceType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 366) classOrInterfaceType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 367) solveType(localName, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 370) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 371) classOrInterfaceType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 371) classOrInterfaceType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 373) classOrInterfaceType.getTypeArguments().isPresent() ==> java.util.Optional.isPresent()
+ Line 373) classOrInterfaceType.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 374) ref.getCorrespondingDeclaration().asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 374) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 376) classOrInterfaceType.getTypeArguments().get().stream().map(ta -> new LazyType(v -> JavaParserFacade.get(typeSolver).convert(ta, ta))).collect(Collectors.toList()) ==> ERROR
+ Line 376) classOrInterfaceType.getTypeArguments().get().stream().map(ta -> new LazyType(v -> JavaParserFacade.get(typeSolver).convert(ta, ta))) ==> ERROR
+ Line 376) classOrInterfaceType.getTypeArguments().get().stream() ==> java.util.Collection.stream()
+ Line 376) classOrInterfaceType.getTypeArguments().get() ==> java.util.Optional.get()
+ Line 376) classOrInterfaceType.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 377) JavaParserFacade.get(typeSolver).convert(ta, ta) ==> ERROR
+ Line 377) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 378) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 379) ref.getCorrespondingDeclaration().asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 379) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserConstructorDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserConstructorDeclaration.txt
new file mode 100644
index 000000000..5bbbf3e4a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserConstructorDeclaration.txt
@@ -0,0 +1,15 @@
+ Line 48) this.wrappedNode.getParameters().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 48) this.wrappedNode.getParameters() ==> com.github.javaparser.ast.body.CallableDeclaration.getParameters()
+ Line 53) getNumberOfParams() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserConstructorDeclaration.getNumberOfParams()
+ Line 54) String.format("No param with index %d. Number of params: %d", i, getNumberOfParams()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 54) getNumberOfParams() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserConstructorDeclaration.getNumberOfParams()
+ Line 56) wrappedNode.getParameters().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 56) wrappedNode.getParameters() ==> com.github.javaparser.ast.body.CallableDeclaration.getParameters()
+ Line 61) this.classDeclaration.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 75) Helper.toAccessLevel(wrappedNode.getModifiers()) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.toAccessLevel(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 75) wrappedNode.getModifiers() ==> com.github.javaparser.ast.body.CallableDeclaration.getModifiers()
+ Line 80) this.wrappedNode.getTypeParameters().stream().map((astTp) -> new JavaParserTypeParameter(astTp, typeSolver)).collect(Collectors.toList()) ==> ERROR
+ Line 80) this.wrappedNode.getTypeParameters().stream().map((astTp) -> new JavaParserTypeParameter(astTp, typeSolver)) ==> ERROR
+ Line 80) this.wrappedNode.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 80) this.wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.body.CallableDeclaration.getTypeParameters()
+ Line 80) Collectors.toList() ==> java.util.stream.Collectors.toList()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserEnumConstantDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserEnumConstantDeclaration.txt
new file mode 100644
index 000000000..6cb91327d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserEnumConstantDeclaration.txt
@@ -0,0 +1,3 @@
+ Line 42) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 47) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 47) wrappedNode.getName() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserEnumDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserEnumDeclaration.txt
new file mode 100644
index 000000000..6abb39d65
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserEnumDeclaration.txt
@@ -0,0 +1,71 @@
+ Line 69) wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 71) methods.add(new JavaParserMethodDeclaration((com.github.javaparser.ast.body.MethodDeclaration) member, typeSolver)) ==> java.util.Set.add(E)
+ Line 78) JavaParserFactory.getContext(wrappedNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 83) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 83) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 109) other.getQualifiedName().equals(this.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 109) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 109) this.getQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration.getQualifiedName()
+ Line 112) other.getQualifiedName().equals(Enum.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 112) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 112) Enum.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 116) other.getQualifiedName().equals(Comparable.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 116) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 116) Comparable.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 119) other.getQualifiedName().equals(Serializable.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 119) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 119) Serializable.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 122) other.getQualifiedName().equals(Object.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 122) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 122) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 140) javaParserTypeAdapter.getPackageName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getPackageName()
+ Line 145) javaParserTypeAdapter.getClassName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getClassName()
+ Line 150) javaParserTypeAdapter.getQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getQualifiedName()
+ Line 155) javaParserTypeAdapter.isAssignableBy(other) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 160) javaParserTypeAdapter.isAssignableBy(type) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 171) getClass() ==> java.lang.Object.getClass()
+ Line 171) o.getClass() ==> java.lang.Object.getClass()
+ Line 175) wrappedNode.equals(that.wrappedNode) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 182) wrappedNode.hashCode() ==> com.github.javaparser.ast.Node.hashCode()
+ Line 187) name.equals("values") ==> java.lang.String.equals(java.lang.Object)
+ Line 187) parameterTypes.isEmpty() ==> java.util.List.isEmpty()
+ Line 188) Optional.of(new ValuesMethod(this, typeSolver).getUsage(null)) ==> java.util.Optional.of(T)
+ Line 188) new ValuesMethod(this, typeSolver).getUsage(null) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration.ValuesMethod.getUsage(com.github.javaparser.ast.Node)
+ Line 191) getContext().solveMethodAsUsage(name, parameterTypes, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 191) getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration.getContext()
+ Line 197) this.wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 198) this.wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 201) field.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 202) fields.add(new JavaParserFieldDeclaration(vd, typeSolver)) ==> java.util.ArrayList.add(E)
+ Line 208) this.wrappedNode.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 209) this.wrappedNode.getEntries() ==> com.github.javaparser.ast.body.EnumDeclaration.getEntries()
+ Line 210) fields.add(new JavaParserFieldDeclaration(member, typeSolver)) ==> java.util.ArrayList.add(E)
+ Line 220) ReflectionFactory.typeUsageFor(Enum.class, typeSolver).asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 220) ReflectionFactory.typeUsageFor(Enum.class, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 221) enumClass.getTypeDeclaration().getTypeParameters().get(0) ==> java.util.List.get(int)
+ Line 221) enumClass.getTypeDeclaration().getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 221) enumClass.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 222) enumClass.deriveTypeParameters(new TypeParametersMap.Builder().setValue(eTypeParameter, new ReferenceTypeImpl(this, typeSolver)).build()) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.deriveTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap)
+ Line 222) new TypeParametersMap.Builder().setValue(eTypeParameter, new ReferenceTypeImpl(this, typeSolver)).build() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.Builder.build()
+ Line 222) new TypeParametersMap.Builder().setValue(eTypeParameter, new ReferenceTypeImpl(this, typeSolver)) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.Builder.setValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 223) ancestors.add(enumClass) ==> java.util.List.add(E)
+ Line 224) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplementedTypes()
+ Line 225) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.EnumDeclaration.getImplementedTypes()
+ Line 226) new SymbolSolver(typeSolver).solveTypeInType(this, implementedType.getName().getId()) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveTypeInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String)
+ Line 226) implementedType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 226) implementedType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 227) implementedDeclRef.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 228) implementedType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 228) implementedType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 230) ancestors.add(new ReferenceTypeImpl((ReferenceTypeDeclaration) implementedDeclRef.getCorrespondingDeclaration(), typeSolver)) ==> java.util.List.add(E)
+ Line 230) implementedDeclRef.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 238) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 311) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 316) Helper.toAccessLevel(enumDeclaration.getWrappedNode().getModifiers()) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.toAccessLevel(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 316) enumDeclaration.getWrappedNode().getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 316) enumDeclaration.getWrappedNode() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration.getWrappedNode()
+ Line 328) this.wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 330) res.add(JavaParserFacade.get(typeSolver).getTypeDeclaration((com.github.javaparser.ast.body.TypeDeclaration) member)) ==> java.util.Set.add(E)
+ Line 330) JavaParserFacade.get(typeSolver).getTypeDeclaration((com.github.javaparser.ast.body.TypeDeclaration) member) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 330) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 338) javaParserTypeAdapter.containerType() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.containerType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserFieldDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserFieldDeclaration.txt
new file mode 100644
index 000000000..1c2fe0c9a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserFieldDeclaration.txt
@@ -0,0 +1,23 @@
+ Line 51) getParentNode(variableDeclarator) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 52) getParentNode(variableDeclarator).getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 52) getParentNode(variableDeclarator).getClass() ==> java.lang.Object.getClass()
+ Line 52) getParentNode(variableDeclarator) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 54) getParentNode(variableDeclarator) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 68) getParentNode(enumConstantDeclaration) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 71) JavaParserFacade.get(typeSolver).convert(variableDeclarator.getType(), wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 71) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 71) variableDeclarator.getType() ==> com.github.javaparser.ast.body.VariableDeclarator.getType()
+ Line 79) enumConstantDeclaration.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 79) enumConstantDeclaration.getName() ==> com.github.javaparser.ast.body.EnumConstantDeclaration.getName()
+ Line 81) variableDeclarator.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 81) variableDeclarator.getName() ==> com.github.javaparser.ast.body.VariableDeclarator.getName()
+ Line 87) wrappedNode.getModifiers().contains(Modifier.STATIC) ==> java.util.AbstractCollection.contains(java.lang.Object)
+ Line 87) wrappedNode.getModifiers() ==> com.github.javaparser.ast.body.FieldDeclaration.getModifiers()
+ Line 106) getName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserFieldDeclaration.getName()
+ Line 111) Helper.toAccessLevel(wrappedNode.getModifiers()) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.toAccessLevel(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 111) wrappedNode.getModifiers() ==> com.github.javaparser.ast.body.FieldDeclaration.getModifiers()
+ Line 116) Navigator.findAncestor(wrappedNode, com.github.javaparser.ast.body.TypeDeclaration.class) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findAncestor(com.github.javaparser.ast.Node, java.lang.Class<N>)
+ Line 117) typeDeclaration.isPresent() ==> java.util.Optional.isPresent()
+ Line 118) JavaParserFacade.get(typeSolver).getTypeDeclaration(typeDeclaration.get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 118) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 118) typeDeclaration.get() ==> java.util.Optional.get()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserInterfaceDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserInterfaceDeclaration.txt
new file mode 100644
index 000000000..02a16077c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserInterfaceDeclaration.txt
@@ -0,0 +1,120 @@
+ Line 52) wrappedNode.isInterface() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.isInterface()
+ Line 63) wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 65) methods.add(new JavaParserMethodDeclaration((com.github.javaparser.ast.body.MethodDeclaration) member, typeSolver)) ==> java.util.Set.add(E)
+ Line 72) JavaParserFactory.getContext(wrappedNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 82) getClass() ==> java.lang.Object.getClass()
+ Line 82) o.getClass() ==> java.lang.Object.getClass()
+ Line 86) wrappedNode.equals(that.wrappedNode) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 93) wrappedNode.hashCode() ==> com.github.javaparser.ast.Node.hashCode()
+ Line 98) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 98) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 108) wrappedNode.getAnnotations() ==> com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()
+ Line 109) solveType(annotationExpr.getName().getId(), typeSolver).getCorrespondingDeclaration().getQualifiedName().equals(canonicalName) ==> java.lang.String.equals(java.lang.Object)
+ Line 109) solveType(annotationExpr.getName().getId(), typeSolver).getCorrespondingDeclaration().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 109) solveType(annotationExpr.getName().getId(), typeSolver).getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 109) solveType(annotationExpr.getName().getId(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 109) annotationExpr.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 109) annotationExpr.getName() ==> com.github.javaparser.ast.expr.AnnotationExpr.getName()
+ Line 124) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 125) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 126) interfaces.add(new ReferenceTypeImpl(solveType(t.getName().getId(), typeSolver).getCorrespondingDeclaration().asInterface(), typeSolver)) ==> java.util.List.add(E)
+ Line 126) solveType(t.getName().getId(), typeSolver).getCorrespondingDeclaration().asInterface() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asInterface()
+ Line 126) solveType(t.getName().getId(), typeSolver).getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 126) solveType(t.getName().getId(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 126) t.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 126) t.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 134) javaParserTypeAdapter.getPackageName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getPackageName()
+ Line 139) javaParserTypeAdapter.getClassName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getClassName()
+ Line 144) javaParserTypeAdapter.getQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getQualifiedName()
+ Line 149) javaParserTypeAdapter.isAssignableBy(other) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 154) javaParserTypeAdapter.isAssignableBy(type) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 160) this.getQualifiedName().equals(other.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 160) this.getQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.getQualifiedName()
+ Line 160) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 163) this.wrappedNode.getExtendedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtendedTypes()
+ Line 164) wrappedNode.getExtendedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtendedTypes()
+ Line 165) new SymbolSolver(typeSolver).solveType(type) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveType(com.github.javaparser.ast.type.Type)
+ Line 166) ancestor.canBeAssignedTo(other) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 172) this.wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 173) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 174) new SymbolSolver(typeSolver).solveType(type) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveType(com.github.javaparser.ast.type.Type)
+ Line 175) ancestor.canBeAssignedTo(other) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 192) wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 195) field.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 196) fields.add(new JavaParserFieldDeclaration(vd, typeSolver)) ==> java.util.ArrayList.add(E)
+ Line 201) getAncestors().forEach(a -> {
+ if (a.getTypeDeclaration() != this) {
+ fields.addAll(a.getTypeDeclaration().getAllFields());
+ }
+}) ==> java.lang.Iterable.forEach(java.util.function.Consumer<? super T>)
+ Line 201) getAncestors() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.getAncestors()
+ Line 202) a.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 203) fields.addAll(a.getTypeDeclaration().getAllFields()) ==> java.util.ArrayList.addAll(java.util.Collection<? extends E>)
+ Line 203) a.getTypeDeclaration().getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 203) a.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 220) this.wrappedNode.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 220) this.wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 220) this.wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 221) SymbolReference.solved(this) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 223) javaParserTypeAdapter.solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 224) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 228) wrappedNode.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 229) name.startsWith(prefix) ==> java.lang.String.startsWith(java.lang.String)
+ Line 229) name.length() ==> java.lang.String.length()
+ Line 229) prefix.length() ==> java.lang.String.length()
+ Line 230) new JavaParserInterfaceDeclaration(this.wrappedNode, typeSolver).solveType(name.substring(prefix.length()), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 230) name.substring(prefix.length()) ==> java.lang.String.substring(int)
+ Line 230) prefix.length() ==> java.lang.String.length()
+ Line 233) getContext().getParent().solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 233) getContext().getParent() ==> com.github.javaparser.symbolsolver.core.resolution.Context.getParent()
+ Line 233) getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.getContext()
+ Line 239) wrappedNode.getExtendedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtendedTypes()
+ Line 240) wrappedNode.getExtendedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getExtendedTypes()
+ Line 241) ancestors.add(toReferenceType(extended)) ==> java.util.List.add(E)
+ Line 241) toReferenceType(extended) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.toReferenceType(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 244) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 245) wrappedNode.getImplementedTypes() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getImplementedTypes()
+ Line 246) ancestors.add(toReferenceType(implemented)) ==> java.util.List.add(E)
+ Line 246) toReferenceType(implemented) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.toReferenceType(com.github.javaparser.ast.type.ClassOrInterfaceType)
+ Line 254) this.wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 255) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 257) this.wrappedNode.getTypeParameters().stream().map((tp) -> new JavaParserTypeParameter(tp, typeSolver)).collect(Collectors.toList()) ==> ERROR
+ Line 257) this.wrappedNode.getTypeParameters().stream().map((tp) -> new JavaParserTypeParameter(tp, typeSolver)) ==> ERROR
+ Line 257) this.wrappedNode.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 257) this.wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.getTypeParameters()
+ Line 259) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 274) Helper.toAccessLevel(wrappedNode.getModifiers()) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.toAccessLevel(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 274) wrappedNode.getModifiers() ==> com.github.javaparser.ast.body.TypeDeclaration.getModifiers()
+ Line 280) this.wrappedNode.getMembers() ==> com.github.javaparser.ast.body.TypeDeclaration.getMembers()
+ Line 282) res.add(JavaParserFacade.get(typeSolver).getTypeDeclaration((com.github.javaparser.ast.body.TypeDeclaration) member)) ==> java.util.Set.add(E)
+ Line 282) JavaParserFacade.get(typeSolver).getTypeDeclaration((com.github.javaparser.ast.body.TypeDeclaration) member) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 282) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 290) javaParserTypeAdapter.containerType() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.containerType()
+ Line 299) classOrInterfaceType.toString().indexOf('.') ==> java.lang.String.indexOf(int)
+ Line 299) classOrInterfaceType.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 300) typeSolver.tryToSolveType(classOrInterfaceType.toString()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 300) classOrInterfaceType.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 302) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 303) solveType(classOrInterfaceType.toString(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 303) classOrInterfaceType.toString() ==> com.github.javaparser.ast.Node.toString()
+ Line 305) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 306) solveType(classOrInterfaceType.getName().getId(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 306) classOrInterfaceType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 306) classOrInterfaceType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 308) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 309) classOrInterfaceType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 309) classOrInterfaceType.getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 311) classOrInterfaceType.getTypeArguments().isPresent() ==> java.util.Optional.isPresent()
+ Line 311) classOrInterfaceType.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 312) ref.getCorrespondingDeclaration().asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 312) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 314) classOrInterfaceType.getTypeArguments().get().stream().map(ta -> new LazyType(v -> JavaParserFacade.get(typeSolver).convert(ta, ta))).collect(Collectors.toList()) ==> ERROR
+ Line 314) classOrInterfaceType.getTypeArguments().get().stream().map(ta -> new LazyType(v -> JavaParserFacade.get(typeSolver).convert(ta, ta))) ==> ERROR
+ Line 314) classOrInterfaceType.getTypeArguments().get().stream() ==> java.util.Collection.stream()
+ Line 314) classOrInterfaceType.getTypeArguments().get() ==> java.util.Optional.get()
+ Line 314) classOrInterfaceType.getTypeArguments() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getTypeArguments()
+ Line 315) JavaParserFacade.get(typeSolver).convert(ta, ta) ==> ERROR
+ Line 315) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 316) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 317) ref.getCorrespondingDeclaration().asReferenceType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asReferenceType()
+ Line 317) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserMethodDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserMethodDeclaration.txt
new file mode 100644
index 000000000..7efa56d23
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserMethodDeclaration.txt
@@ -0,0 +1,30 @@
+ Line 58) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 59) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 62) JavaParserFactory.toTypeDeclaration(getParentNode(wrappedNode), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.toTypeDeclaration(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 62) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 68) JavaParserFacade.get(typeSolver).convert(wrappedNode.getType(), getContext()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 68) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 68) wrappedNode.getType() ==> com.github.javaparser.ast.body.MethodDeclaration.getType()
+ Line 68) getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserMethodDeclaration.getContext()
+ Line 73) wrappedNode.getParameters().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 73) wrappedNode.getParameters() ==> com.github.javaparser.ast.body.CallableDeclaration.getParameters()
+ Line 78) getNumberOfParams() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserMethodDeclaration.getNumberOfParams()
+ Line 79) String.format("No param with index %d. Number of params: %d", i, getNumberOfParams()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 79) getNumberOfParams() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserMethodDeclaration.getNumberOfParams()
+ Line 81) wrappedNode.getParameters().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 81) wrappedNode.getParameters() ==> com.github.javaparser.ast.body.CallableDeclaration.getParameters()
+ Line 89) new MethodDeclarationCommonLogic(this, typeSolver).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.declarations.common.MethodDeclarationCommonLogic.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 93) JavaParserFactory.getContext(wrappedNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 98) wrappedNode.getBody().isPresent() ==> java.util.Optional.isPresent()
+ Line 98) wrappedNode.getBody() ==> com.github.javaparser.ast.body.MethodDeclaration.getBody()
+ Line 103) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 103) wrappedNode.getName() ==> com.github.javaparser.ast.body.CallableDeclaration.getName()
+ Line 123) this.wrappedNode.getTypeParameters().stream().map((astTp) -> new JavaParserTypeParameter(astTp, typeSolver)).collect(Collectors.toList()) ==> ERROR
+ Line 123) this.wrappedNode.getTypeParameters().stream().map((astTp) -> new JavaParserTypeParameter(astTp, typeSolver)) ==> ERROR
+ Line 123) this.wrappedNode.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 123) this.wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.body.CallableDeclaration.getTypeParameters()
+ Line 123) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 128) wrappedNode.isDefault() ==> com.github.javaparser.ast.body.MethodDeclaration.isDefault()
+ Line 133) wrappedNode.isStatic() ==> com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier.isStatic()
+ Line 147) Helper.toAccessLevel(wrappedNode.getModifiers()) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.toAccessLevel(java.util.EnumSet<com.github.javaparser.ast.Modifier>)
+ Line 147) wrappedNode.getModifiers() ==> com.github.javaparser.ast.body.CallableDeclaration.getModifiers()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserParameterDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserParameterDeclaration.txt
new file mode 100644
index 000000000..73d6dc4dc
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserParameterDeclaration.txt
@@ -0,0 +1,7 @@
+ Line 41) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 41) wrappedNode.getName() ==> com.github.javaparser.ast.body.Parameter.getName()
+ Line 56) wrappedNode.isVarArgs() ==> com.github.javaparser.ast.body.Parameter.isVarArgs()
+ Line 66) JavaParserFacade.get(typeSolver).convert(wrappedNode.getType(), wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 66) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 66) wrappedNode.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 67) isVariadic() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserParameterDeclaration.isVariadic()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserSymbolDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserSymbolDeclaration.txt
new file mode 100644
index 000000000..29350eec4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserSymbolDeclaration.txt
@@ -0,0 +1,46 @@
+ Line 67) variableDeclarator.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 67) variableDeclarator.getName() ==> com.github.javaparser.ast.body.VariableDeclarator.getName()
+ Line 72) getParentNode(parameter).getChildNodes() ==> com.github.javaparser.ast.Node.getChildNodes()
+ Line 72) getParentNode(parameter) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 83) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 84) getParentNode(node) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 85) call.getArguments().size() ==> com.github.javaparser.ast.NodeList.size()
+ Line 85) call.getArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArguments()
+ Line 86) call.getArguments().get(i) ==> com.github.javaparser.ast.NodeList.get(int)
+ Line 86) call.getArguments() ==> com.github.javaparser.ast.expr.MethodCallExpr.getArguments()
+ Line 126) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 127) getParamPos(parameter) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.getParamPos(com.github.javaparser.ast.body.Parameter)
+ Line 128) JavaParserFacade.get(typeSolver).getType(getParentNode(wrappedNode)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType(com.github.javaparser.ast.Node)
+ Line 128) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 128) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 133) wrappedNode.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 133) wrappedNode.getClass() ==> java.lang.Object.getClass()
+ Line 136) parameter.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 137) PrimitiveType.byName(((com.github.javaparser.ast.type.PrimitiveType) parameter.getType()).getType().name()) ==> com.github.javaparser.symbolsolver.model.typesystem.PrimitiveType.byName(java.lang.String)
+ Line 137) ((com.github.javaparser.ast.type.PrimitiveType) parameter.getType()).getType().name() ==> java.lang.Enum.name()
+ Line 137) ((com.github.javaparser.ast.type.PrimitiveType) parameter.getType()).getType() ==> com.github.javaparser.ast.type.PrimitiveType.getType()
+ Line 137) parameter.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 139) JavaParserFacade.get(typeSolver).convertToUsage(parameter.getType(), wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 139) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 139) parameter.getType() ==> com.github.javaparser.ast.body.Parameter.getType()
+ Line 141) parameter.isVarArgs() ==> com.github.javaparser.ast.body.Parameter.isVarArgs()
+ Line 149) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 150) JavaParserFacade.get(typeSolver).convert(variableDeclarator.getType(), JavaParserFactory.getContext(wrappedNode, typeSolver)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 150) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 150) variableDeclarator.getType() ==> com.github.javaparser.ast.body.VariableDeclarator.getType()
+ Line 150) JavaParserFactory.getContext(wrappedNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 152) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 153) JavaParserFacade.get(typeSolver).convert(variableDeclarator.getType(), JavaParserFactory.getContext(wrappedNode, typeSolver)) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert(com.github.javaparser.ast.type.Type, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 153) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 153) variableDeclarator.getType() ==> com.github.javaparser.ast.body.VariableDeclarator.getType()
+ Line 153) JavaParserFactory.getContext(wrappedNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 155) getParentNode(wrappedNode).getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 155) getParentNode(wrappedNode).getClass() ==> java.lang.Object.getClass()
+ Line 155) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 158) wrappedNode.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 158) wrappedNode.getClass() ==> java.lang.Object.getClass()
+ Line 164) this.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 164) this.getClass() ==> java.lang.Object.getClass()
+ Line 164) this.getWrappedNode().getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 164) this.getWrappedNode().getClass() ==> java.lang.Object.getClass()
+ Line 164) this.getWrappedNode() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.getWrappedNode()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeAdapter.txt
new file mode 100644
index 000000000..b9da1dcd7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeAdapter.txt
@@ -0,0 +1,48 @@
+ Line 39) Helper.getPackageName(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getPackageName(com.github.javaparser.ast.Node)
+ Line 43) Helper.getClassName("", wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getClassName(java.lang.String, com.github.javaparser.ast.Node)
+ Line 47) Helper.containerName(getParentNode(wrappedNode)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.containerName(com.github.javaparser.ast.Node)
+ Line 47) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 48) containerName.isEmpty() ==> java.lang.String.isEmpty()
+ Line 49) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 49) wrappedNode.getName() ==> com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.getName()
+ Line 51) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 51) wrappedNode.getName() ==> com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.getName()
+ Line 56) other.getAllAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllAncestors()
+ Line 57) ancestorsOfOther.add(new ReferenceTypeImpl(other, typeSolver)) ==> java.util.List.add(E)
+ Line 59) ancestorOfOther.getQualifiedName().equals(this.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 59) ancestorOfOther.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 59) this.getQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.getQualifiedName()
+ Line 67) type.isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 70) type.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 71) typeSolver.solveType(type.describe()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 71) type.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 72) isAssignableBy(other) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 79) this.wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.getTypeParameters()
+ Line 80) this.wrappedNode.getTypeParameters() ==> com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.getTypeParameters()
+ Line 81) typeParameter.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 81) typeParameter.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 81) typeParameter.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 82) SymbolReference.solved(new JavaParserTypeVariableDeclaration(typeParameter, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 88) this.wrappedNode.getMembers() ==> com.github.javaparser.ast.nodeTypes.NodeWithMembers.getMembers()
+ Line 91) internalType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 92) internalType.getName().getId().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 92) internalType.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 92) internalType.getName() ==> com.github.javaparser.ast.body.TypeDeclaration.getName()
+ Line 94) SymbolReference.solved(new JavaParserClassDeclaration((com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) internalType, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 96) SymbolReference.solved(new JavaParserEnumDeclaration((com.github.javaparser.ast.body.EnumDeclaration) internalType, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 100) name.startsWith(prefix) ==> java.lang.String.startsWith(java.lang.String)
+ Line 100) name.length() ==> java.lang.String.length()
+ Line 100) prefix.length() ==> java.lang.String.length()
+ Line 102) new JavaParserClassDeclaration((com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) internalType, typeSolver).solveType(name.substring(prefix.length()), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 102) name.substring(prefix.length()) ==> java.lang.String.substring(int)
+ Line 102) prefix.length() ==> java.lang.String.length()
+ Line 104) new SymbolSolver(typeSolver).solveTypeInType(new JavaParserEnumDeclaration((com.github.javaparser.ast.body.EnumDeclaration) internalType, typeSolver), name.substring(prefix.length())) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveTypeInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String)
+ Line 104) name.substring(prefix.length()) ==> java.lang.String.substring(int)
+ Line 104) prefix.length() ==> java.lang.String.length()
+ Line 111) SymbolReference.unsolved(TypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 115) wrappedNode.getParentNode() ==> com.github.javaparser.ast.Node.getParentNode()
+ Line 116) parent.isPresent() ==> java.util.Optional.isPresent()
+ Line 117) Optional.of(JavaParserFactory.toTypeDeclaration(parent.get(), typeSolver)) ==> java.util.Optional.of(T)
+ Line 117) JavaParserFactory.toTypeDeclaration(parent.get(), typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.toTypeDeclaration(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 117) parent.get() ==> java.util.Optional.get()
+ Line 118) Optional.empty() ==> java.util.Optional.empty()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeParameter.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeParameter.txt
new file mode 100644
index 000000000..da6454b7f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeParameter.txt
@@ -0,0 +1,45 @@
+ Line 56) Collections.emptySet() ==> java.util.Collections.emptySet()
+ Line 60) getContext().solveMethod(name, parameterTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 60) getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeParameter.getContext()
+ Line 70) wrappedNode.equals(that.wrappedNode) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 77) wrappedNode.hashCode() ==> com.github.javaparser.ast.Node.hashCode()
+ Line 78) typeSolver.hashCode() ==> java.lang.Object.hashCode()
+ Line 84) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 84) wrappedNode.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 89) isAssignableBy(new ReferenceTypeImpl(other, typeSolver)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeParameter.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 94) getContainer() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeParameter.getContainer()
+ Line 96) ((ReferenceTypeDeclaration) container).getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 98) ((JavaParserConstructorDeclaration) container).getQualifiedSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getQualifiedSignature()
+ Line 100) ((JavaParserMethodDeclaration) container).getQualifiedSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getQualifiedSignature()
+ Line 106) getContainer() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeParameter.getContainer()
+ Line 108) ((ReferenceTypeDeclaration) container).getId() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getId()
+ Line 110) ((JavaParserConstructorDeclaration) container).getQualifiedSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getQualifiedSignature()
+ Line 112) ((JavaParserMethodDeclaration) container).getQualifiedSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getQualifiedSignature()
+ Line 118) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 121) JavaParserFacade.get(typeSolver).getTypeDeclaration(jpTypeDeclaration) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)
+ Line 121) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 124) jpConstructorDeclaration.getAncestorOfType(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.class) ==> com.github.javaparser.HasParentNode.getAncestorOfType(java.lang.Class<N>)
+ Line 125) jpTypeDeclaration.isPresent() ==> java.util.Optional.isPresent()
+ Line 126) JavaParserFacade.get(typeSolver).getTypeDeclaration(jpTypeDeclaration.get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)
+ Line 126) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 126) jpTypeDeclaration.get() ==> java.util.Optional.get()
+ Line 127) typeDeclaration.isClass() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isClass()
+ Line 128) typeDeclaration.asClass() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.asClass()
+ Line 140) String.format("%s.%s", getContainerQualifiedName(), getName()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 140) getContainerQualifiedName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeParameter.getContainerQualifiedName()
+ Line 140) getName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeParameter.getName()
+ Line 145) wrappedNode.getTypeBound().stream().map((astB) -> toBound(astB, typeSolver)).collect(Collectors.toList()) ==> ERROR
+ Line 145) wrappedNode.getTypeBound().stream().map((astB) -> toBound(astB, typeSolver)) ==> ERROR
+ Line 145) wrappedNode.getTypeBound().stream() ==> java.util.Collection.stream()
+ Line 145) wrappedNode.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 145) toBound(astB, typeSolver) ==> ERROR
+ Line 145) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 149) JavaParserFacade.get(typeSolver).convertToUsage(classOrInterfaceType, classOrInterfaceType) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(com.github.javaparser.ast.type.Type, com.github.javaparser.ast.Node)
+ Line 149) JavaParserFacade.get(typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 150) Bound.extendsBound(type) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 199) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 213) wrappedNode.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 213) wrappedNode.getTypeBound() ==> com.github.javaparser.ast.type.TypeParameter.getTypeBound()
+ Line 218) getContainer() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeParameter.getContainer()
+ Line 220) Optional.of((ReferenceTypeDeclaration) container) ==> java.util.Optional.of(T)
+ Line 222) Optional.empty() ==> java.util.Optional.empty()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeVariableDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeVariableDeclaration.txt
new file mode 100644
index 000000000..c02ccbcf8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarations_JavaParserTypeVariableDeclaration.txt
@@ -0,0 +1,13 @@
+ Line 54) isAssignableBy(new ReferenceTypeImpl(other, typeSolver)) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeVariableDeclaration.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 59) Helper.getPackageName(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getPackageName(com.github.javaparser.ast.Node)
+ Line 64) Helper.getClassName("", wrappedNode) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.Helper.getClassName(java.lang.String, com.github.javaparser.ast.Node)
+ Line 69) getName() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeVariableDeclaration.getName()
+ Line 79) wrappedNode.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 93) type.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 94) type.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 127) Collections.emptySet() ==> java.util.Collections.emptySet()
+ Line 132) wrappedNode.getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 132) wrappedNode.getName() ==> com.github.javaparser.ast.type.TypeParameter.getName()
+ Line 167) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 185) asTypeParameter().containerType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.containerType()
+ Line 185) asTypeParameter() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeVariableDeclaration.asTypeParameter()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_AbstractSymbolDeclarator.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_AbstractSymbolDeclarator.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_AbstractSymbolDeclarator.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_FieldSymbolDeclarator.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_FieldSymbolDeclarator.txt
new file mode 100644
index 000000000..4d0f131e2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_FieldSymbolDeclarator.txt
@@ -0,0 +1,3 @@
+ Line 40) wrappedNode.getVariables() ==> com.github.javaparser.ast.body.FieldDeclaration.getVariables()
+ Line 41) symbols.add(JavaParserSymbolDeclaration.field(v, typeSolver)) ==> java.util.List.add(E)
+ Line 41) JavaParserSymbolDeclaration.field(v, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.field(com.github.javaparser.ast.body.VariableDeclarator, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_NoSymbolDeclarator.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_NoSymbolDeclarator.txt
new file mode 100644
index 000000000..f9460d3d6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_NoSymbolDeclarator.txt
@@ -0,0 +1 @@
+ Line 37) Collections.emptyList() ==> java.util.Collections.emptyList()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_ParameterSymbolDeclarator.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_ParameterSymbolDeclarator.txt
new file mode 100644
index 000000000..dfdfce9bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_ParameterSymbolDeclarator.txt
@@ -0,0 +1,2 @@
+ Line 39) symbols.add(JavaParserSymbolDeclaration.parameter(wrappedNode, typeSolver)) ==> java.util.List.add(E)
+ Line 39) JavaParserSymbolDeclaration.parameter(wrappedNode, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration.parameter(com.github.javaparser.ast.body.Parameter, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_VariableSymbolDeclarator.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_VariableSymbolDeclarator.txt
new file mode 100644
index 000000000..e0d28d3f5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javaparsermodel_declarators_VariableSymbolDeclarator.txt
@@ -0,0 +1,7 @@
+ Line 38) getParentNode(wrappedNode) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode(com.github.javaparser.ast.Node)
+ Line 45) wrappedNode.getVariables().stream().map(v -> JavaParserSymbolDeclaration.localVar(v, typeSolver)).collect(Collectors.toCollection(() -> new LinkedList<>())) ==> ERROR
+ Line 45) wrappedNode.getVariables().stream().map(v -> JavaParserSymbolDeclaration.localVar(v, typeSolver)) ==> ERROR
+ Line 45) wrappedNode.getVariables().stream() ==> java.util.Collection.stream()
+ Line 45) wrappedNode.getVariables() ==> com.github.javaparser.ast.expr.VariableDeclarationExpr.getVariables()
+ Line 46) JavaParserSymbolDeclaration.localVar(v, typeSolver) ==> ERROR
+ Line 48) Collectors.toCollection(() -> new LinkedList<>()) ==> java.util.stream.Collectors.toCollection(java.util.function.Supplier<C>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistClassDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistClassDeclaration.txt
new file mode 100644
index 000000000..ebeec81de
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistClassDeclaration.txt
@@ -0,0 +1,128 @@
+ Line 59) ctClass.isInterface() ==> javassist.CtClass.isInterface()
+ Line 59) ctClass.isAnnotation() ==> javassist.CtClass.isAnnotation()
+ Line 59) ctClass.isPrimitive() ==> javassist.CtClass.isPrimitive()
+ Line 59) ctClass.isEnum() ==> javassist.CtClass.isEnum()
+ Line 60) ctClass.toString() ==> javassist.CtClass.toString()
+ Line 69) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 69) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 79) javassistTypeDeclarationAdapter.getDeclaredMethods() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getDeclaredMethods()
+ Line 84) isAssignableBy(new ReferenceTypeImpl(other, typeSolver)) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 90) getClass() ==> java.lang.Object.getClass()
+ Line 90) o.getClass() ==> java.lang.Object.getClass()
+ Line 94) ctClass.equals(that.ctClass) ==> java.lang.Object.equals(java.lang.Object)
+ Line 101) ctClass.hashCode() ==> java.lang.Object.hashCode()
+ Line 106) ctClass.getPackageName() ==> javassist.CtClass.getPackageName()
+ Line 111) ctClass.getName().replace('$', '.') ==> java.lang.String.replace(char, char)
+ Line 111) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 112) getPackageName() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.getPackageName()
+ Line 113) className.substring(getPackageName().length() + 1, className.length()) ==> java.lang.String.substring(int, int)
+ Line 113) getPackageName().length() ==> java.lang.String.length()
+ Line 113) getPackageName() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.getPackageName()
+ Line 113) className.length() ==> java.lang.String.length()
+ Line 120) ctClass.getName().replace('$', '.') ==> java.lang.String.replace(char, char)
+ Line 120) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 125) JavassistUtils.getMethodUsage(ctClass, name, argumentsTypes, typeSolver, invokationContext) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.getMethodUsage(javassist.CtClass, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 130) ctClass.getDeclaredFields() ==> javassist.CtClass.getDeclaredFields()
+ Line 131) field.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 131) field.getName() ==> javassist.CtField.getName()
+ Line 132) SymbolReference.solved(new JavassistFieldDeclaration(field, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 137) ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 139) new JavassistClassDeclaration(superClass, typeSolver).solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 140) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 149) ctClass.getInterfaces() ==> javassist.CtClass.getInterfaces()
+ Line 150) new JavassistInterfaceDeclaration(interfaze, typeSolver).solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 151) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 159) SymbolReference.unsolved(ValueDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 165) getSuperClass() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.getSuperClass()
+ Line 166) ancestors.add(getSuperClass()) ==> java.util.List.add(E)
+ Line 166) getSuperClass() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.getSuperClass()
+ Line 168) ancestors.addAll(getInterfaces()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 168) getInterfaces() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.getInterfaces()
+ Line 175) Modifier.isStatic(m.getModifiers()) ==> java.lang.reflect.Modifier.isStatic(int)
+ Line 175) m.getModifiers() ==> javassist.CtBehavior.getModifiers()
+ Line 176) ctClass.getDeclaredMethods() ==> javassist.CtClass.getDeclaredMethods()
+ Line 177) method.getMethodInfo().getAttribute(SyntheticAttribute.tag) ==> javassist.bytecode.MethodInfo.getAttribute(java.lang.String)
+ Line 177) method.getMethodInfo() ==> javassist.CtBehavior.getMethodInfo()
+ Line 178) method.getMethodInfo().getAccessFlags() ==> javassist.bytecode.MethodInfo.getAccessFlags()
+ Line 178) method.getMethodInfo() ==> javassist.CtBehavior.getMethodInfo()
+ Line 179) method.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 179) method.getName() ==> javassist.CtMethod.getName()
+ Line 179) staticOnlyCheck.test(method) ==> java.util.function.Predicate.test(T)
+ Line 180) candidates.add(new JavassistMethodDeclaration(method, typeSolver)) ==> java.util.List.add(E)
+ Line 185) ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 187) new JavassistClassDeclaration(superClass, typeSolver).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 188) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 189) candidates.add(ref.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 189) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 197) ctClass.getInterfaces() ==> javassist.CtClass.getInterfaces()
+ Line 198) new JavassistInterfaceDeclaration(interfaze, typeSolver).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 199) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 200) candidates.add(ref.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 200) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 207) MethodResolutionLogic.findMostApplicable(candidates, name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 216) type.isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 221) isFunctionalInterface() ==> com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration.isFunctionalInterface()
+ Line 225) type.describe().equals(this.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 225) type.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 225) this.getQualifiedName() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.getQualifiedName()
+ Line 229) this.ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 230) new JavassistClassDeclaration(this.ctClass.getSuperclass(), typeSolver).isAssignableBy(type) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 230) this.ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 233) ctClass.getInterfaces() ==> javassist.CtClass.getInterfaces()
+ Line 234) new JavassistInterfaceDeclaration(interfaze, typeSolver).isAssignableBy(type) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 251) javassistTypeDeclarationAdapter.getDeclaredFields() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getDeclaredFields()
+ Line 256) ctClass.getSimpleName().replace('$', '.').split("\\.") ==> java.lang.String.split(java.lang.String)
+ Line 256) ctClass.getSimpleName().replace('$', '.') ==> java.lang.String.replace(char, char)
+ Line 256) ctClass.getSimpleName() ==> javassist.CtClass.getSimpleName()
+ Line 277) ctClass.isInterface() ==> javassist.CtClass.isInterface()
+ Line 283) ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 284) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 284) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 286) ctClass.getGenericSignature() ==> javassist.CtClass.getGenericSignature()
+ Line 287) ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 290) SignatureAttribute.toClassSignature(ctClass.getGenericSignature()) ==> javassist.bytecode.SignatureAttribute.toClassSignature(java.lang.String)
+ Line 290) ctClass.getGenericSignature() ==> javassist.CtClass.getGenericSignature()
+ Line 291) JavassistUtils.signatureTypeToType(classSignature.getSuperClass(), typeSolver, this).asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 291) JavassistUtils.signatureTypeToType(classSignature.getSuperClass(), typeSolver, this) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.signatureTypeToType(javassist.bytecode.SignatureAttribute.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable)
+ Line 291) classSignature.getSuperClass() ==> javassist.bytecode.SignatureAttribute.ClassSignature.getSuperClass()
+ Line 302) ctClass.getGenericSignature() ==> javassist.CtClass.getGenericSignature()
+ Line 303) Arrays.stream(ctClass.getInterfaces()).map(i -> new JavassistInterfaceDeclaration(i, typeSolver)).map(i -> new ReferenceTypeImpl(i, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 303) Arrays.stream(ctClass.getInterfaces()).map(i -> new JavassistInterfaceDeclaration(i, typeSolver)).map(i -> new ReferenceTypeImpl(i, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 303) Arrays.stream(ctClass.getInterfaces()).map(i -> new JavassistInterfaceDeclaration(i, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 303) Arrays.stream(ctClass.getInterfaces()) ==> java.util.Arrays.stream(T[])
+ Line 303) ctClass.getInterfaces() ==> javassist.CtClass.getInterfaces()
+ Line 306) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 308) SignatureAttribute.toClassSignature(ctClass.getGenericSignature()) ==> javassist.bytecode.SignatureAttribute.toClassSignature(java.lang.String)
+ Line 308) ctClass.getGenericSignature() ==> javassist.CtClass.getGenericSignature()
+ Line 309) Arrays.stream(classSignature.getInterfaces()).map(i -> JavassistUtils.signatureTypeToType(i, typeSolver, this).asReferenceType()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 309) Arrays.stream(classSignature.getInterfaces()).map(i -> JavassistUtils.signatureTypeToType(i, typeSolver, this).asReferenceType()) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 309) Arrays.stream(classSignature.getInterfaces()) ==> java.util.Arrays.stream(T[])
+ Line 309) classSignature.getInterfaces() ==> javassist.bytecode.SignatureAttribute.ClassSignature.getInterfaces()
+ Line 310) JavassistUtils.signatureTypeToType(i, typeSolver, this).asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 310) JavassistUtils.signatureTypeToType(i, typeSolver, this) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.signatureTypeToType(javassist.bytecode.SignatureAttribute.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable)
+ Line 311) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 322) ctClass.isInterface() ==> javassist.CtClass.isInterface()
+ Line 327) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 332) javassistTypeDeclarationAdapter.getTypeParameters() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getTypeParameters()
+ Line 337) JavassistFactory.modifiersToAccessLevel(ctClass.getModifiers()) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.modifiersToAccessLevel(int)
+ Line 337) ctClass.getModifiers() ==> javassist.CtClass.getModifiers()
+ Line 342) javassistTypeDeclarationAdapter.getConstructors() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getConstructors()
+ Line 347) javassistTypeDeclarationAdapter.containerType() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.containerType()
+ Line 357) Arrays.stream(ctClass.getDeclaredClasses()).map(itype -> JavassistFactory.toTypeDeclaration(itype, typeSolver)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 357) Arrays.stream(ctClass.getDeclaredClasses()).map(itype -> JavassistFactory.toTypeDeclaration(itype, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 357) Arrays.stream(ctClass.getDeclaredClasses()) ==> java.util.Arrays.stream(T[])
+ Line 357) ctClass.getDeclaredClasses() ==> javassist.CtClass.getDeclaredClasses()
+ Line 357) JavassistFactory.toTypeDeclaration(itype, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.toTypeDeclaration(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 357) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 370) this.internalTypes().stream().filter(f -> f.getName().endsWith(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 370) this.internalTypes().stream().filter(f -> f.getName().endsWith(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 370) this.internalTypes().stream() ==> java.util.Collection.stream()
+ Line 370) this.internalTypes() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.internalTypes()
+ Line 370) f.getName().endsWith(name) ==> java.lang.String.endsWith(java.lang.String)
+ Line 370) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 371) type.orElseThrow(() -> new UnsolvedSymbolException("Internal type not found: " + name)) ==> java.util.Optional.orElseThrow(java.util.function.Supplier<? extends X>)
+ Line 381) this.internalTypes().stream().anyMatch(f -> f.getName().endsWith(name)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 381) this.internalTypes().stream() ==> java.util.Collection.stream()
+ Line 381) this.internalTypes() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.internalTypes()
+ Line 381) f.getName().endsWith(name) ==> java.lang.String.endsWith(java.lang.String)
+ Line 381) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistConstructorDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistConstructorDeclaration.txt
new file mode 100644
index 000000000..8cb354790
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistConstructorDeclaration.txt
@@ -0,0 +1,22 @@
+ Line 52) ctConstructor.getName() ==> javassist.CtConstructor.getName()
+ Line 72) ctConstructor.getDeclaringClass() ==> javassist.CtMember.getDeclaringClass()
+ Line 78) ctConstructor.getParameterTypes() ==> javassist.CtBehavior.getParameterTypes()
+ Line 88) ctConstructor.getModifiers() ==> javassist.CtBehavior.getModifiers()
+ Line 89) ctConstructor.getParameterTypes() ==> javassist.CtBehavior.getParameterTypes()
+ Line 91) ctConstructor.getGenericSignature() ==> javassist.CtBehavior.getGenericSignature()
+ Line 92) SignatureAttribute.toMethodSignature(ctConstructor.getGenericSignature()) ==> javassist.bytecode.SignatureAttribute.toMethodSignature(java.lang.String)
+ Line 92) ctConstructor.getGenericSignature() ==> javassist.CtBehavior.getGenericSignature()
+ Line 93) methodSignature.getParameterTypes() ==> javassist.bytecode.SignatureAttribute.MethodSignature.getParameterTypes()
+ Line 94) JavassistUtils.signatureTypeToType(signatureType, typeSolver, this) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.signatureTypeToType(javassist.bytecode.SignatureAttribute.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable)
+ Line 96) ctConstructor.getParameterTypes() ==> javassist.CtBehavior.getParameterTypes()
+ Line 108) ctConstructor.getGenericSignature() ==> javassist.CtBehavior.getGenericSignature()
+ Line 109) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 111) SignatureAttribute.toMethodSignature(ctConstructor.getGenericSignature()) ==> javassist.bytecode.SignatureAttribute.toMethodSignature(java.lang.String)
+ Line 111) ctConstructor.getGenericSignature() ==> javassist.CtBehavior.getGenericSignature()
+ Line 112) Arrays.stream(methodSignature.getTypeParameters()).map((jasTp) -> new JavassistTypeParameter(jasTp, this, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 112) Arrays.stream(methodSignature.getTypeParameters()).map((jasTp) -> new JavassistTypeParameter(jasTp, this, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 112) Arrays.stream(methodSignature.getTypeParameters()) ==> java.util.Arrays.stream(T[])
+ Line 112) methodSignature.getTypeParameters() ==> javassist.bytecode.SignatureAttribute.MethodSignature.getTypeParameters()
+ Line 112) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 120) JavassistFactory.modifiersToAccessLevel(ctConstructor.getModifiers()) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.modifiersToAccessLevel(int)
+ Line 120) ctConstructor.getModifiers() ==> javassist.CtBehavior.getModifiers()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistEnumDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistEnumDeclaration.txt
new file mode 100644
index 000000000..f8c8b221a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistEnumDeclaration.txt
@@ -0,0 +1,81 @@
+ Line 53) ctClass.isEnum() ==> javassist.CtClass.isEnum()
+ Line 54) ctClass.toString() ==> javassist.CtClass.toString()
+ Line 63) JavassistFactory.modifiersToAccessLevel(ctClass.getModifiers()) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.modifiersToAccessLevel(int)
+ Line 63) ctClass.getModifiers() ==> javassist.CtClass.getModifiers()
+ Line 68) ctClass.getPackageName() ==> javassist.CtClass.getPackageName()
+ Line 73) ctClass.getName().replace('$', '.') ==> java.lang.String.replace(char, char)
+ Line 73) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 74) getPackageName() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistEnumDeclaration.getPackageName()
+ Line 75) name.substring(getPackageName().length() + 1, name.length()) ==> java.lang.String.substring(int, int)
+ Line 75) getPackageName().length() ==> java.lang.String.length()
+ Line 75) getPackageName() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistEnumDeclaration.getPackageName()
+ Line 75) name.length() ==> java.lang.String.length()
+ Line 82) ctClass.getName().replace('$', '.') ==> java.lang.String.replace(char, char)
+ Line 82) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 91) ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 94) JavassistFactory.typeUsageFor(superClass, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.typeUsageFor(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 96) superClassTypeUsage.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 97) ancestors.add(superClassTypeUsage.asReferenceType()) ==> java.util.List.add(E)
+ Line 97) superClassTypeUsage.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 101) ctClass.getInterfaces() ==> javassist.CtClass.getInterfaces()
+ Line 102) JavassistFactory.typeUsageFor(interfaze, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.typeUsageFor(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 104) interfazeTypeUsage.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 105) ancestors.add(interfazeTypeUsage.asReferenceType()) ==> java.util.List.add(E)
+ Line 105) interfazeTypeUsage.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 109) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 117) javassistTypeDeclarationAdapter.getDeclaredFields().stream().filter(f -> f.getName().equals(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 117) javassistTypeDeclarationAdapter.getDeclaredFields().stream().filter(f -> f.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 117) javassistTypeDeclarationAdapter.getDeclaredFields().stream() ==> java.util.Collection.stream()
+ Line 117) javassistTypeDeclarationAdapter.getDeclaredFields() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getDeclaredFields()
+ Line 117) f.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 117) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 119) field.orElseThrow(() -> new RuntimeException("Field " + name + " does not exist in " + ctClass.getName() + ".")) ==> java.util.Optional.orElseThrow(java.util.function.Supplier<? extends X>)
+ Line 119) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 124) javassistTypeDeclarationAdapter.getDeclaredFields().stream().anyMatch(f -> f.getName().equals(name)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 124) javassistTypeDeclarationAdapter.getDeclaredFields().stream() ==> java.util.Collection.stream()
+ Line 124) javassistTypeDeclarationAdapter.getDeclaredFields() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getDeclaredFields()
+ Line 124) f.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 124) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 129) javassistTypeDeclarationAdapter.getDeclaredFields() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getDeclaredFields()
+ Line 134) javassistTypeDeclarationAdapter.getDeclaredMethods() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getDeclaredMethods()
+ Line 154) ctClass.getSimpleName().replace('$', '.').split("\\.") ==> java.lang.String.split(java.lang.String)
+ Line 154) ctClass.getSimpleName().replace('$', '.') ==> java.lang.String.replace(char, char)
+ Line 154) ctClass.getSimpleName() ==> javassist.CtClass.getSimpleName()
+ Line 160) javassistTypeDeclarationAdapter.getTypeParameters() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getTypeParameters()
+ Line 165) javassistTypeDeclarationAdapter.containerType() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.containerType()
+ Line 170) Modifier.isStatic(m.getModifiers()) ==> java.lang.reflect.Modifier.isStatic(int)
+ Line 170) m.getModifiers() ==> javassist.CtBehavior.getModifiers()
+ Line 171) ctClass.getDeclaredMethods() ==> javassist.CtClass.getDeclaredMethods()
+ Line 172) method.getMethodInfo().getAttribute(SyntheticAttribute.tag) ==> javassist.bytecode.MethodInfo.getAttribute(java.lang.String)
+ Line 172) method.getMethodInfo() ==> javassist.CtBehavior.getMethodInfo()
+ Line 173) method.getMethodInfo().getAccessFlags() ==> javassist.bytecode.MethodInfo.getAccessFlags()
+ Line 173) method.getMethodInfo() ==> javassist.CtBehavior.getMethodInfo()
+ Line 174) method.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 174) method.getName() ==> javassist.CtMethod.getName()
+ Line 174) staticOnlyCheck.test(method) ==> java.util.function.Predicate.test(T)
+ Line 175) candidates.add(new JavassistMethodDeclaration(method, typeSolver)) ==> java.util.List.add(E)
+ Line 180) ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 182) new JavassistClassDeclaration(superClass, typeSolver).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 183) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 184) candidates.add(ref.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 184) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 191) MethodResolutionLogic.findMostApplicable(candidates, name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 195) JavassistUtils.getMethodUsage(ctClass, name, argumentsTypes, typeSolver, invokationContext) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.getMethodUsage(javassist.CtClass, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 205) Arrays.stream(ctClass.getDeclaredClasses()).map(itype -> JavassistFactory.toTypeDeclaration(itype, typeSolver)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 205) Arrays.stream(ctClass.getDeclaredClasses()).map(itype -> JavassistFactory.toTypeDeclaration(itype, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 205) Arrays.stream(ctClass.getDeclaredClasses()) ==> java.util.Arrays.stream(T[])
+ Line 205) ctClass.getDeclaredClasses() ==> javassist.CtClass.getDeclaredClasses()
+ Line 205) JavassistFactory.toTypeDeclaration(itype, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.toTypeDeclaration(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 205) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 218) this.internalTypes().stream().filter(f -> f.getName().endsWith(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 218) this.internalTypes().stream().filter(f -> f.getName().endsWith(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 218) this.internalTypes().stream() ==> java.util.Collection.stream()
+ Line 218) this.internalTypes() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistEnumDeclaration.internalTypes()
+ Line 218) f.getName().endsWith(name) ==> java.lang.String.endsWith(java.lang.String)
+ Line 218) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 219) type.orElseThrow(() -> new UnsolvedSymbolException("Internal type not found: " + name)) ==> java.util.Optional.orElseThrow(java.util.function.Supplier<? extends X>)
+ Line 229) this.internalTypes().stream().anyMatch(f -> f.getName().endsWith(name)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 229) this.internalTypes().stream() ==> java.util.Collection.stream()
+ Line 229) this.internalTypes() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistEnumDeclaration.internalTypes()
+ Line 229) f.getName().endsWith(name) ==> java.lang.String.endsWith(java.lang.String)
+ Line 229) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistFactory.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistFactory.txt
new file mode 100644
index 000000000..ad09e9dbc
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistFactory.txt
@@ -0,0 +1,17 @@
+ Line 33) ctClazz.isArray() ==> javassist.CtClass.isArray()
+ Line 34) typeUsageFor(ctClazz.getComponentType(), typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.typeUsageFor(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 34) ctClazz.getComponentType() ==> javassist.CtClass.getComponentType()
+ Line 35) ctClazz.isPrimitive() ==> javassist.CtClass.isPrimitive()
+ Line 36) ctClazz.getName().equals("void") ==> java.lang.String.equals(java.lang.Object)
+ Line 36) ctClazz.getName() ==> javassist.CtClass.getName()
+ Line 39) PrimitiveType.byName(ctClazz.getName()) ==> com.github.javaparser.symbolsolver.model.typesystem.PrimitiveType.byName(java.lang.String)
+ Line 39) ctClazz.getName() ==> javassist.CtClass.getName()
+ Line 42) ctClazz.isInterface() ==> javassist.CtClass.isInterface()
+ Line 45) ctClazz.isEnum() ==> javassist.CtClass.isEnum()
+ Line 59) ctClazz.isInterface() ==> javassist.CtClass.isInterface()
+ Line 61) ctClazz.isEnum() ==> javassist.CtClass.isEnum()
+ Line 63) ctClazz.isAnnotation() ==> javassist.CtClass.isAnnotation()
+ Line 65) ctClazz.isArray() ==> javassist.CtClass.isArray()
+ Line 73) Modifier.isPublic(modifiers) ==> java.lang.reflect.Modifier.isPublic(int)
+ Line 75) Modifier.isProtected(modifiers) ==> java.lang.reflect.Modifier.isProtected(int)
+ Line 77) Modifier.isPrivate(modifiers) ==> java.lang.reflect.Modifier.isPrivate(int)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistFieldDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistFieldDeclaration.txt
new file mode 100644
index 000000000..ae533bafd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistFieldDeclaration.txt
@@ -0,0 +1,9 @@
+ Line 44) JavassistFactory.typeUsageFor(ctField.getType(), typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.typeUsageFor(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 44) ctField.getType() ==> javassist.CtField.getType()
+ Line 52) Modifier.isStatic(ctField.getModifiers()) ==> java.lang.reflect.Modifier.isStatic(int)
+ Line 52) ctField.getModifiers() ==> javassist.CtField.getModifiers()
+ Line 57) ctField.getName() ==> javassist.CtField.getName()
+ Line 77) JavassistFactory.modifiersToAccessLevel(ctField.getModifiers()) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.modifiersToAccessLevel(int)
+ Line 77) ctField.getModifiers() ==> javassist.CtField.getModifiers()
+ Line 82) JavassistFactory.toTypeDeclaration(ctField.getDeclaringClass(), typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.toTypeDeclaration(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 82) ctField.getDeclaringClass() ==> javassist.CtField.getDeclaringClass()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistInterfaceDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistInterfaceDeclaration.txt
new file mode 100644
index 000000000..d1dd2cdb0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistInterfaceDeclaration.txt
@@ -0,0 +1,104 @@
+ Line 54) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 60) ctClass.isInterface() ==> javassist.CtClass.isInterface()
+ Line 61) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 71) Arrays.stream(ctClass.getInterfaces()).map(i -> new JavassistInterfaceDeclaration(i, typeSolver)).map(i -> new ReferenceTypeImpl(i, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 71) Arrays.stream(ctClass.getInterfaces()).map(i -> new JavassistInterfaceDeclaration(i, typeSolver)).map(i -> new ReferenceTypeImpl(i, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 71) Arrays.stream(ctClass.getInterfaces()).map(i -> new JavassistInterfaceDeclaration(i, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 71) Arrays.stream(ctClass.getInterfaces()) ==> java.util.Arrays.stream(T[])
+ Line 71) ctClass.getInterfaces() ==> javassist.CtClass.getInterfaces()
+ Line 72) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 80) ctClass.getPackageName() ==> javassist.CtClass.getPackageName()
+ Line 85) ctClass.getName().replace('$', '.') ==> java.lang.String.replace(char, char)
+ Line 85) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 86) getPackageName() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.getPackageName()
+ Line 87) className.substring(getPackageName().length() + 1, className.length()) ==> java.lang.String.substring(int, int)
+ Line 87) getPackageName().length() ==> java.lang.String.length()
+ Line 87) getPackageName() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.getPackageName()
+ Line 87) className.length() ==> java.lang.String.length()
+ Line 94) ctClass.getName().replace('$', '.') ==> java.lang.String.replace(char, char)
+ Line 94) ctClass.getName() ==> javassist.CtClass.getName()
+ Line 101) JavassistUtils.getMethodUsage(ctClass, name, argumentsTypes, typeSolver, invokationContext) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.getMethodUsage(javassist.CtClass, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 107) Modifier.isStatic(m.getModifiers()) ==> java.lang.reflect.Modifier.isStatic(int)
+ Line 107) m.getModifiers() ==> javassist.CtBehavior.getModifiers()
+ Line 108) ctClass.getDeclaredMethods() ==> javassist.CtClass.getDeclaredMethods()
+ Line 109) method.getMethodInfo().getAttribute(SyntheticAttribute.tag) ==> javassist.bytecode.MethodInfo.getAttribute(java.lang.String)
+ Line 109) method.getMethodInfo() ==> javassist.CtBehavior.getMethodInfo()
+ Line 110) method.getMethodInfo().getAccessFlags() ==> javassist.bytecode.MethodInfo.getAccessFlags()
+ Line 110) method.getMethodInfo() ==> javassist.CtBehavior.getMethodInfo()
+ Line 111) method.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 111) method.getName() ==> javassist.CtMethod.getName()
+ Line 111) staticOnlyCheck.test(method) ==> java.util.function.Predicate.test(T)
+ Line 112) candidates.add(new JavassistMethodDeclaration(method, typeSolver)) ==> java.util.List.add(E)
+ Line 117) ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 119) new JavassistClassDeclaration(superClass, typeSolver).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 120) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 121) candidates.add(ref.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 121) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 129) ctClass.getInterfaces() ==> javassist.CtClass.getInterfaces()
+ Line 130) new JavassistInterfaceDeclaration(interfaze, typeSolver).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 131) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 132) candidates.add(ref.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 132) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 139) MethodResolutionLogic.findMostApplicable(candidates, name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 149) javassistTypeDeclarationAdapter.getDeclaredFields() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getDeclaredFields()
+ Line 161) ctClass.getInterfaces() ==> javassist.CtClass.getInterfaces()
+ Line 162) JavassistFactory.typeUsageFor(interfaze, typeSolver).asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 162) JavassistFactory.typeUsageFor(interfaze, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.typeUsageFor(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 163) ancestors.add(superInterfaze) ==> java.util.List.add(E)
+ Line 168) ancestors.stream().filter(a -> a.getQualifiedName() != Object.class.getCanonicalName()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 168) ancestors.stream().filter(a -> a.getQualifiedName() != Object.class.getCanonicalName()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 168) ancestors.stream() ==> java.util.Collection.stream()
+ Line 168) a.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 168) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 169) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 170) ancestors.add(new ReferenceTypeImpl(typeSolver.solveType(Object.class.getCanonicalName()), typeSolver)) ==> java.util.List.add(E)
+ Line 170) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 170) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 176) Arrays.stream(ctClass.getDeclaredMethods()).map(m -> new JavassistMethodDeclaration(m, typeSolver)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 176) Arrays.stream(ctClass.getDeclaredMethods()).map(m -> new JavassistMethodDeclaration(m, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 176) Arrays.stream(ctClass.getDeclaredMethods()) ==> java.util.Arrays.stream(T[])
+ Line 176) ctClass.getDeclaredMethods() ==> javassist.CtClass.getDeclaredMethods()
+ Line 178) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 184) ctClass.getAnnotations() ==> javassist.CtClass.getAnnotations()
+ Line 185) annotationRaw.getClass().getCanonicalName().equals(canonicalName) ==> java.lang.String.equals(java.lang.Object)
+ Line 185) annotationRaw.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 185) annotationRaw.getClass() ==> java.lang.Object.getClass()
+ Line 188) Arrays.stream(annotationRaw.getClass().getInterfaces()).anyMatch(it -> it.getCanonicalName().equals(canonicalName)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 188) Arrays.stream(annotationRaw.getClass().getInterfaces()) ==> java.util.Arrays.stream(T[])
+ Line 188) annotationRaw.getClass().getInterfaces() ==> java.lang.Class.getInterfaces()
+ Line 188) annotationRaw.getClass() ==> java.lang.Object.getClass()
+ Line 188) it.getCanonicalName().equals(canonicalName) ==> java.lang.String.equals(java.lang.Object)
+ Line 188) it.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 200) ctClass.getSimpleName().replace('$', '.').split("\\.") ==> java.lang.String.split(java.lang.String)
+ Line 200) ctClass.getSimpleName().replace('$', '.') ==> java.lang.String.replace(char, char)
+ Line 200) ctClass.getSimpleName() ==> javassist.CtClass.getSimpleName()
+ Line 206) javassistTypeDeclarationAdapter.getTypeParameters() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.getTypeParameters()
+ Line 211) JavassistFactory.modifiersToAccessLevel(ctClass.getModifiers()) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.modifiersToAccessLevel(int)
+ Line 211) ctClass.getModifiers() ==> javassist.CtClass.getModifiers()
+ Line 222) ctClass.getDeclaredFields() ==> javassist.CtClass.getDeclaredFields()
+ Line 223) field.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 223) field.getName() ==> javassist.CtField.getName()
+ Line 224) SymbolReference.solved(new JavassistFieldDeclaration(field, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 229) ctClass.getInterfaces() ==> javassist.CtClass.getInterfaces()
+ Line 230) new JavassistInterfaceDeclaration(interfaze, typeSolver).solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 231) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 239) SymbolReference.unsolved(ValueDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 244) javassistTypeDeclarationAdapter.containerType() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.containerType()
+ Line 254) Arrays.stream(ctClass.getDeclaredClasses()).map(itype -> JavassistFactory.toTypeDeclaration(itype, typeSolver)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 254) Arrays.stream(ctClass.getDeclaredClasses()).map(itype -> JavassistFactory.toTypeDeclaration(itype, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 254) Arrays.stream(ctClass.getDeclaredClasses()) ==> java.util.Arrays.stream(T[])
+ Line 254) ctClass.getDeclaredClasses() ==> javassist.CtClass.getDeclaredClasses()
+ Line 254) JavassistFactory.toTypeDeclaration(itype, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.toTypeDeclaration(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 254) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 267) this.internalTypes().stream().filter(f -> f.getName().endsWith(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 267) this.internalTypes().stream().filter(f -> f.getName().endsWith(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 267) this.internalTypes().stream() ==> java.util.Collection.stream()
+ Line 267) this.internalTypes() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.internalTypes()
+ Line 267) f.getName().endsWith(name) ==> java.lang.String.endsWith(java.lang.String)
+ Line 267) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 268) type.orElseThrow(() -> new UnsolvedSymbolException("Internal type not found: " + name)) ==> java.util.Optional.orElseThrow(java.util.function.Supplier<? extends X>)
+ Line 278) this.internalTypes().stream().anyMatch(f -> f.getName().endsWith(name)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 278) this.internalTypes().stream() ==> java.util.Collection.stream()
+ Line 278) this.internalTypes() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.internalTypes()
+ Line 278) f.getName().endsWith(name) ==> java.lang.String.endsWith(java.lang.String)
+ Line 278) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistMethodDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistMethodDeclaration.txt
new file mode 100644
index 000000000..20100011d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistMethodDeclaration.txt
@@ -0,0 +1,33 @@
+ Line 51) ctMethod.getDeclaringClass().isInterface() ==> javassist.CtClass.isInterface()
+ Line 51) ctMethod.getDeclaringClass() ==> javassist.CtMember.getDeclaringClass()
+ Line 51) isAbstract() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistMethodDeclaration.isAbstract()
+ Line 56) Modifier.isStatic(ctMethod.getModifiers()) ==> java.lang.reflect.Modifier.isStatic(int)
+ Line 56) ctMethod.getModifiers() ==> javassist.CtBehavior.getModifiers()
+ Line 68) ctMethod.getName() ==> javassist.CtMethod.getName()
+ Line 88) ctMethod.getDeclaringClass().isInterface() ==> javassist.CtClass.isInterface()
+ Line 88) ctMethod.getDeclaringClass() ==> javassist.CtMember.getDeclaringClass()
+ Line 89) ctMethod.getDeclaringClass() ==> javassist.CtMember.getDeclaringClass()
+ Line 91) ctMethod.getDeclaringClass() ==> javassist.CtMember.getDeclaringClass()
+ Line 98) JavassistFactory.typeUsageFor(ctMethod.getReturnType(), typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.typeUsageFor(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 98) ctMethod.getReturnType() ==> javassist.CtMethod.getReturnType()
+ Line 108) ctMethod.getParameterTypes() ==> javassist.CtBehavior.getParameterTypes()
+ Line 118) ctMethod.getModifiers() ==> javassist.CtBehavior.getModifiers()
+ Line 119) ctMethod.getParameterTypes() ==> javassist.CtBehavior.getParameterTypes()
+ Line 121) ctMethod.getGenericSignature() ==> javassist.CtBehavior.getGenericSignature()
+ Line 122) SignatureAttribute.toMethodSignature(ctMethod.getGenericSignature()) ==> javassist.bytecode.SignatureAttribute.toMethodSignature(java.lang.String)
+ Line 122) ctMethod.getGenericSignature() ==> javassist.CtBehavior.getGenericSignature()
+ Line 123) methodSignature.getParameterTypes() ==> javassist.bytecode.SignatureAttribute.MethodSignature.getParameterTypes()
+ Line 124) JavassistUtils.signatureTypeToType(signatureType, typeSolver, this) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.signatureTypeToType(javassist.bytecode.SignatureAttribute.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable)
+ Line 126) ctMethod.getParameterTypes() ==> javassist.CtBehavior.getParameterTypes()
+ Line 140) new MethodDeclarationCommonLogic(this, typeSolver).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.declarations.common.MethodDeclarationCommonLogic.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 145) Modifier.isAbstract(ctMethod.getModifiers()) ==> java.lang.reflect.Modifier.isAbstract(int)
+ Line 145) ctMethod.getModifiers() ==> javassist.CtBehavior.getModifiers()
+ Line 151) ctMethod.getGenericSignature() ==> javassist.CtBehavior.getGenericSignature()
+ Line 152) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 154) SignatureAttribute.toMethodSignature(ctMethod.getGenericSignature()) ==> javassist.bytecode.SignatureAttribute.toMethodSignature(java.lang.String)
+ Line 154) ctMethod.getGenericSignature() ==> javassist.CtBehavior.getGenericSignature()
+ Line 155) Arrays.stream(methodSignature.getTypeParameters()).map((jasTp) -> new JavassistTypeParameter(jasTp, this, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 155) Arrays.stream(methodSignature.getTypeParameters()).map((jasTp) -> new JavassistTypeParameter(jasTp, this, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 155) Arrays.stream(methodSignature.getTypeParameters()) ==> java.util.Arrays.stream(T[])
+ Line 155) methodSignature.getTypeParameters() ==> javassist.bytecode.SignatureAttribute.MethodSignature.getTypeParameters()
+ Line 155) Collectors.toList() ==> java.util.stream.Collectors.toList()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistParameterDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistParameterDeclaration.txt
new file mode 100644
index 000000000..4a6626f10
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistParameterDeclaration.txt
@@ -0,0 +1 @@
+ Line 33) JavassistFactory.typeUsageFor(type, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.typeUsageFor(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistTypeDeclarationAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistTypeDeclarationAdapter.txt
new file mode 100644
index 000000000..a269a4424
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistTypeDeclarationAdapter.txt
@@ -0,0 +1,32 @@
+ Line 41) Arrays.stream(ctClass.getDeclaredMethods()).map(m -> new JavassistMethodDeclaration(m, typeSolver)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 41) Arrays.stream(ctClass.getDeclaredMethods()).map(m -> new JavassistMethodDeclaration(m, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 41) Arrays.stream(ctClass.getDeclaredMethods()) ==> java.util.Arrays.stream(T[])
+ Line 41) ctClass.getDeclaredMethods() ==> javassist.CtClass.getDeclaredMethods()
+ Line 42) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 46) Arrays.stream(ctClass.getConstructors()).map(m -> new JavassistConstructorDeclaration(m, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 46) Arrays.stream(ctClass.getConstructors()).map(m -> new JavassistConstructorDeclaration(m, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 46) Arrays.stream(ctClass.getConstructors()) ==> java.util.Arrays.stream(T[])
+ Line 46) ctClass.getConstructors() ==> javassist.CtClass.getConstructors()
+ Line 47) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 52) collectDeclaredFields(ctClass, fieldDecls) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.collectDeclaredFields(javassist.CtClass, java.util.List<com.github.javaparser.symbolsolver.model.declarations.FieldDeclaration>)
+ Line 58) Arrays.stream(ctClass.getDeclaredFields()).forEach(f -> fieldDecls.add(new JavassistFieldDeclaration(f, typeSolver))) ==> java.util.stream.Stream.forEach(java.util.function.Consumer<? super T>)
+ Line 58) Arrays.stream(ctClass.getDeclaredFields()) ==> java.util.Arrays.stream(T[])
+ Line 58) ctClass.getDeclaredFields() ==> javassist.CtClass.getDeclaredFields()
+ Line 59) fieldDecls.add(new JavassistFieldDeclaration(f, typeSolver)) ==> java.util.List.add(E)
+ Line 61) collectDeclaredFields(ctClass.getSuperclass(), fieldDecls) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeDeclarationAdapter.collectDeclaredFields(javassist.CtClass, java.util.List<com.github.javaparser.symbolsolver.model.declarations.FieldDeclaration>)
+ Line 61) ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 69) ctClass.getGenericSignature() ==> javassist.CtClass.getGenericSignature()
+ Line 70) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 74) SignatureAttribute.toClassSignature(ctClass.getGenericSignature()) ==> javassist.bytecode.SignatureAttribute.toClassSignature(java.lang.String)
+ Line 74) ctClass.getGenericSignature() ==> javassist.CtClass.getGenericSignature()
+ Line 75) Arrays.<SignatureAttribute.TypeParameter>stream(classSignature.getParameters()).map((tp) -> new JavassistTypeParameter(tp, JavassistFactory.toTypeDeclaration(ctClass, typeSolver), typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 75) Arrays.<SignatureAttribute.TypeParameter>stream(classSignature.getParameters()).map((tp) -> new JavassistTypeParameter(tp, JavassistFactory.toTypeDeclaration(ctClass, typeSolver), typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 75) Arrays.<SignatureAttribute.TypeParameter>stream(classSignature.getParameters()) ==> java.util.Arrays.stream(T[])
+ Line 75) classSignature.getParameters() ==> javassist.bytecode.SignatureAttribute.ClassSignature.getParameters()
+ Line 76) JavassistFactory.toTypeDeclaration(ctClass, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.toTypeDeclaration(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 77) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 86) ctClass.getDeclaringClass() ==> javassist.CtClass.getDeclaringClass()
+ Line 87) Optional.empty() ==> java.util.Optional.empty()
+ Line 88) Optional.of(JavassistFactory.toTypeDeclaration(ctClass.getDeclaringClass(), typeSolver)) ==> java.util.Optional.of(T)
+ Line 88) JavassistFactory.toTypeDeclaration(ctClass.getDeclaringClass(), typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.toTypeDeclaration(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 88) ctClass.getDeclaringClass() ==> javassist.CtClass.getDeclaringClass()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistTypeParameter.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistTypeParameter.txt
new file mode 100644
index 000000000..16c313741
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistTypeParameter.txt
@@ -0,0 +1,23 @@
+ Line 53) getQualifiedName().equals(that.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 53) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getQualifiedName()
+ Line 53) that.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getQualifiedName()
+ Line 56) declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 56) that.declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 59) declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
+ Line 59) that.declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
+ Line 69) wrapped.getName() ==> javassist.bytecode.SignatureAttribute.TypeParameter.getName()
+ Line 75) wrapped.getName() ==> javassist.bytecode.SignatureAttribute.TypeParameter.getName()
+ Line 81) ((ReferenceTypeDeclaration) this.container).getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 83) ((MethodLikeDeclaration) this.container).getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getQualifiedName()
+ Line 90) getContainerQualifiedName() ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistTypeParameter.getContainerQualifiedName()
+ Line 101) wrapped.getClassBound() ==> javassist.bytecode.SignatureAttribute.TypeParameter.getClassBound()
+ Line 101) wrapped.getClassBound().toString().equals(Object.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 101) wrapped.getClassBound().toString() ==> java.lang.Object.toString()
+ Line 101) wrapped.getClassBound() ==> javassist.bytecode.SignatureAttribute.TypeParameter.getClassBound()
+ Line 101) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 102) wrapped.getClassBound().toString() ==> java.lang.Object.toString()
+ Line 102) wrapped.getClassBound() ==> javassist.bytecode.SignatureAttribute.TypeParameter.getClassBound()
+ Line 104) wrapped.getInterfaceBound() ==> javassist.bytecode.SignatureAttribute.TypeParameter.getInterfaceBound()
+ Line 105) ot.toString() ==> java.lang.Object.toString()
+ Line 113) Optional.of((ReferenceTypeDeclaration) container) ==> java.util.Optional.of(T)
+ Line 115) Optional.empty() ==> java.util.Optional.empty()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistUtils.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistUtils.txt
new file mode 100644
index 000000000..07a599052
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_javassistmodel_JavassistUtils.txt
@@ -0,0 +1,77 @@
+ Line 44) ctClass.getDeclaredMethods() ==> javassist.CtClass.getDeclaredMethods()
+ Line 45) method.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 45) method.getName() ==> javassist.CtMethod.getName()
+ Line 48) argumentsTypes.size() ==> java.util.List.size()
+ Line 48) methodUsage.getNoParams() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getNoParams()
+ Line 53) method.getGenericSignature() ==> javassist.CtBehavior.getGenericSignature()
+ Line 54) SignatureAttribute.toMethodSignature(method.getGenericSignature()) ==> javassist.bytecode.SignatureAttribute.toMethodSignature(java.lang.String)
+ Line 54) method.getGenericSignature() ==> javassist.CtBehavior.getGenericSignature()
+ Line 55) parseTypeParameters(classSignature.getReturnType().toString(), typeSolver, invokationContext) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.parseTypeParameters(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 55) classSignature.getReturnType().toString() ==> java.lang.Object.toString()
+ Line 55) classSignature.getReturnType() ==> javassist.bytecode.SignatureAttribute.MethodSignature.getReturnType()
+ Line 56) methodUsage.returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 59) newReturnType.asReferenceType().transformTypeParameters(tp -> parametersOfReturnType.remove(0)) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.transformTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.TypeTransformer)
+ Line 59) newReturnType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 59) parametersOfReturnType.remove(0) ==> java.util.List.remove(int)
+ Line 61) methodUsage.replaceReturnType(newReturnType) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceReturnType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 63) Optional.of(methodUsage) ==> java.util.Optional.of(T)
+ Line 71) ctClass.getSuperclass() ==> javassist.CtClass.getSuperclass()
+ Line 73) new JavassistClassDeclaration(superClass, typeSolver).solveMethodAsUsage(name, argumentsTypes, typeSolver, invokationContext, null) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 74) ref.isPresent() ==> java.util.Optional.isPresent()
+ Line 83) ctClass.getInterfaces() ==> javassist.CtClass.getInterfaces()
+ Line 84) new JavassistInterfaceDeclaration(interfaze, typeSolver).solveMethodAsUsage(name, argumentsTypes, typeSolver, invokationContext, null) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 85) ref.isPresent() ==> java.util.Optional.isPresent()
+ Line 93) Optional.empty() ==> java.util.Optional.empty()
+ Line 98) signature.contains("<") ==> java.lang.String.contains(java.lang.CharSequence)
+ Line 99) signature.substring(signature.indexOf('<') + 1) ==> java.lang.String.substring(int)
+ Line 99) signature.indexOf('<') ==> java.lang.String.indexOf(int)
+ Line 100) signature.endsWith(">") ==> java.lang.String.endsWith(java.lang.String)
+ Line 103) signature.substring(0, signature.length() - 1) ==> java.lang.String.substring(int, int)
+ Line 103) signature.length() ==> java.lang.String.length()
+ Line 104) signature.contains(",") ==> java.lang.String.contains(java.lang.CharSequence)
+ Line 107) signature.contains("<") ==> java.lang.String.contains(java.lang.CharSequence)
+ Line 110) signature.contains(">") ==> java.lang.String.contains(java.lang.CharSequence)
+ Line 114) types.add(new SymbolSolver(typeSolver).solveTypeUsage(signature, invokationContext)) ==> java.util.List.add(E)
+ Line 114) new SymbolSolver(typeSolver).solveTypeUsage(signature, invokationContext) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveTypeUsage(java.lang.String, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 117) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 124) classType.getTypeArguments() ==> javassist.bytecode.SignatureAttribute.ClassType.getTypeArguments()
+ Line 124) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 124) Arrays.stream(classType.getTypeArguments()).map(ta -> typeArgumentToType(ta, typeSolver, typeParametrizable)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 124) Arrays.stream(classType.getTypeArguments()).map(ta -> typeArgumentToType(ta, typeSolver, typeParametrizable)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 124) Arrays.stream(classType.getTypeArguments()) ==> java.util.Arrays.stream(T[])
+ Line 124) classType.getTypeArguments() ==> javassist.bytecode.SignatureAttribute.ClassType.getTypeArguments()
+ Line 124) typeArgumentToType(ta, typeSolver, typeParametrizable) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.typeArgumentToType(javassist.bytecode.SignatureAttribute.TypeArgument, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable)
+ Line 124) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 126) classType.getDeclaringClass() ==> javassist.bytecode.SignatureAttribute.ClassType.getDeclaringClass()
+ Line 127) classType.getDeclaringClass().getName() ==> javassist.bytecode.SignatureAttribute.ClassType.getName()
+ Line 127) classType.getDeclaringClass() ==> javassist.bytecode.SignatureAttribute.ClassType.getDeclaringClass()
+ Line 127) classType.getName() ==> javassist.bytecode.SignatureAttribute.ClassType.getName()
+ Line 128) classType.getName() ==> javassist.bytecode.SignatureAttribute.ClassType.getName()
+ Line 129) typeSolver.solveType(internalNameToCanonicalName(typeName)) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 130) internalNameToCanonicalName(typeName) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.internalNameToCanonicalName(java.lang.String)
+ Line 134) typeParametrizable.findTypeParameter(typeVariableSignature.getName()) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.findTypeParameter(java.lang.String)
+ Line 134) typeVariableSignature.getName() ==> javassist.bytecode.SignatureAttribute.TypeVariable.getName()
+ Line 135) typeParameterDeclarationOpt.isPresent() ==> java.util.Optional.isPresent()
+ Line 138) typeParameterDeclarationOpt.get() ==> java.util.Optional.get()
+ Line 141) signatureType.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 141) signatureType.getClass() ==> java.lang.Object.getClass()
+ Line 146) typeName.replaceAll("\\$", ".") ==> java.lang.String.replaceAll(java.lang.String, java.lang.String)
+ Line 150) typeArgument.jvmTypeName() ==> javassist.bytecode.SignatureAttribute.Type.jvmTypeName()
+ Line 151) getGenericParameterByName(typeName, typeParametrizable) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.getGenericParameterByName(java.lang.String, com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable)
+ Line 152) type.orElseGet(() -> new ReferenceTypeImpl(typeSolver.solveType(internalNameToCanonicalName(typeName)), typeSolver)) ==> java.util.Optional.orElseGet(java.util.function.Supplier<? extends T>)
+ Line 153) typeSolver.solveType(internalNameToCanonicalName(typeName)) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 153) internalNameToCanonicalName(typeName) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.internalNameToCanonicalName(java.lang.String)
+ Line 158) typeParametrizable.findTypeParameter(typeName) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.findTypeParameter(java.lang.String)
+ Line 159) tp.map(TypeVariable::new) ==> java.util.Optional.map(java.util.function.Function<? super T, ? extends U>)
+ Line 163) typeArgument.isWildcard() ==> javassist.bytecode.SignatureAttribute.TypeArgument.isWildcard()
+ Line 164) typeArgument.getType() ==> javassist.bytecode.SignatureAttribute.TypeArgument.getType()
+ Line 166) typeArgument.getKind() ==> javassist.bytecode.SignatureAttribute.TypeArgument.getKind()
+ Line 167) Wildcard.extendsBound(objectTypeArgumentToType(typeArgument.getType(), typeSolver, typeParametrizable)) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 167) objectTypeArgumentToType(typeArgument.getType(), typeSolver, typeParametrizable) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.objectTypeArgumentToType(javassist.bytecode.SignatureAttribute.ObjectType, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable)
+ Line 167) typeArgument.getType() ==> javassist.bytecode.SignatureAttribute.TypeArgument.getType()
+ Line 168) typeArgument.getKind() ==> javassist.bytecode.SignatureAttribute.TypeArgument.getKind()
+ Line 169) Wildcard.superBound(objectTypeArgumentToType(typeArgument.getType(), typeSolver, typeParametrizable)) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.superBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 169) objectTypeArgumentToType(typeArgument.getType(), typeSolver, typeParametrizable) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.objectTypeArgumentToType(javassist.bytecode.SignatureAttribute.ObjectType, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable)
+ Line 169) typeArgument.getType() ==> javassist.bytecode.SignatureAttribute.TypeArgument.getType()
+ Line 174) objectTypeArgumentToType(typeArgument.getType(), typeSolver, typeParametrizable) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.objectTypeArgumentToType(javassist.bytecode.SignatureAttribute.ObjectType, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable)
+ Line 174) typeArgument.getType() ==> javassist.bytecode.SignatureAttribute.TypeArgument.getType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_model_typesystem_LazyType.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_model_typesystem_LazyType.txt
new file mode 100644
index 000000000..24aacab88
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_model_typesystem_LazyType.txt
@@ -0,0 +1,39 @@
+ Line 18) provider.apply(null) ==> java.util.function.Function.apply(T)
+ Line 25) getType().isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 25) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 30) getType().arrayLevel() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.arrayLevel()
+ Line 30) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 35) getType().isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 35) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 40) getType().isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 40) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 45) getType().isReference() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReference()
+ Line 45) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 50) getType().isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 50) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 55) getType().isVoid() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isVoid()
+ Line 55) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 60) getType().isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 60) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 65) getType().isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 65) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 70) getType().asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 70) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 75) getType().asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 75) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 80) getType().asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 80) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 85) getType().asTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeVariable()
+ Line 85) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 90) getType().asPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asPrimitive()
+ Line 90) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 95) getType().asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 95) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 100) getType().describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 100) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 105) getType().replaceTypeVariables(tp, replaced, inferredTypes) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 105) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 110) getType().replaceTypeVariables(tp, replaced) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 110) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
+ Line 115) getType().isAssignableBy(other) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 115) getType() ==> com.github.javaparser.symbolsolver.model.typesystem.LazyType.getType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_model_typesystem_ReferenceTypeImpl.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_model_typesystem_ReferenceTypeImpl.txt
new file mode 100644
index 000000000..fb9574318
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_model_typesystem_ReferenceTypeImpl.txt
@@ -0,0 +1,53 @@
+ Line 42) typeDeclaration.getTypeParameters().stream().map(tp -> new TypeVariable(tp)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 42) typeDeclaration.getTypeParameters().stream().map(tp -> new TypeVariable(tp)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 42) typeDeclaration.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 42) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 44) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 69) javaParserTypeVariableDeclaration.asTypeParameter() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeVariableDeclaration.asTypeParameter()
+ Line 71) this.typeDeclaration.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 71) this.typeDeclaration.getClass() ==> java.lang.Object.getClass()
+ Line 80) this.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 83) other.isVoid() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isVoid()
+ Line 83) this.getQualifiedName().equals(Object.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 83) this.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 83) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 87) other.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 88) this.getQualifiedName().equals(Object.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 88) this.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 88) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 92) isCorrespondingBoxingType(other.describe()) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.isCorrespondingBoxingType(java.lang.String)
+ Line 92) other.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 95) typeSolver.tryToSolveType(other.asPrimitive().getBoxTypeQName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 95) other.asPrimitive().getBoxTypeQName() ==> com.github.javaparser.symbolsolver.model.typesystem.PrimitiveType.getBoxTypeQName()
+ Line 95) other.asPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asPrimitive()
+ Line 96) type.getCorrespondingDeclaration().canBeAssignedTo(super.typeDeclaration) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 96) type.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 100) this.getTypeDeclaration().hasAnnotation(FunctionalInterface.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasAnnotation(java.lang.String)
+ Line 100) this.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 100) FunctionalInterface.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 103) compareConsideringTypeParameters(otherRef) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.compareConsideringTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.ReferenceType)
+ Line 106) otherRef.getAllAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllAncestors()
+ Line 107) compareConsideringTypeParameters(otherAncestor) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.compareConsideringTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.ReferenceType)
+ Line 112) other.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 113) other.asTypeVariable().asTypeParameter().getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 113) other.asTypeVariable().asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.TypeVariable.asTypeParameter()
+ Line 113) other.asTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeVariable()
+ Line 114) bound.isExtends() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.isExtends()
+ Line 115) this.isAssignableBy(bound.getType()) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 115) bound.getType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.getType()
+ Line 121) other.isConstraint() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isConstraint()
+ Line 122) isAssignableBy(other.asConstraintType().getBound()) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 122) other.asConstraintType().getBound() ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.getBound()
+ Line 122) other.asConstraintType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asConstraintType()
+ Line 123) other.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 124) this.getQualifiedName().equals(Object.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 124) this.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 124) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 126) other.asWildcard().isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 126) other.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 127) isAssignableBy(other.asWildcard().getBoundedType()) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 127) other.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 127) other.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 140) getTypeDeclaration().getDeclaredMethods() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getDeclaredMethods()
+ Line 140) getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 142) methods.add(methodUsage) ==> java.util.Set.add(E)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_MyObjectProvider.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_MyObjectProvider.txt
new file mode 100644
index 000000000..e0e306c95
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_MyObjectProvider.txt
@@ -0,0 +1,3 @@
+ Line 29) typeSolver.solveType(qualifiedName) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 30) typeDeclaration.getTypeParameters().isEmpty() ==> java.util.List.isEmpty()
+ Line 30) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionClassAdapter.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionClassAdapter.txt
new file mode 100644
index 000000000..f77342a45
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionClassAdapter.txt
@@ -0,0 +1,89 @@
+ Line 36) clazz.getGenericSuperclass() ==> java.lang.Class.getGenericSuperclass()
+ Line 39) clazz.getGenericSuperclass() ==> java.lang.Class.getGenericSuperclass()
+ Line 42) Arrays.stream(parameterizedType.getActualTypeArguments()).map((t) -> ReflectionFactory.typeUsageFor(t, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 42) Arrays.stream(parameterizedType.getActualTypeArguments()).map((t) -> ReflectionFactory.typeUsageFor(t, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 42) Arrays.stream(parameterizedType.getActualTypeArguments()) ==> java.util.Arrays.stream(T[])
+ Line 42) parameterizedType.getActualTypeArguments() ==> java.lang.reflect.ParameterizedType.getActualTypeArguments()
+ Line 43) ReflectionFactory.typeUsageFor(t, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 44) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 45) clazz.getSuperclass() ==> java.lang.Class.getSuperclass()
+ Line 47) clazz.getSuperclass() ==> java.lang.Class.getSuperclass()
+ Line 52) clazz.getGenericInterfaces() ==> java.lang.Class.getGenericInterfaces()
+ Line 55) Arrays.stream(parameterizedType.getActualTypeArguments()).map((t) -> ReflectionFactory.typeUsageFor(t, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 55) Arrays.stream(parameterizedType.getActualTypeArguments()).map((t) -> ReflectionFactory.typeUsageFor(t, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 55) Arrays.stream(parameterizedType.getActualTypeArguments()) ==> java.util.Arrays.stream(T[])
+ Line 55) parameterizedType.getActualTypeArguments() ==> java.lang.reflect.ParameterizedType.getActualTypeArguments()
+ Line 56) ReflectionFactory.typeUsageFor(t, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 57) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 58) interfaces.add(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration((Class<?>) ((ParameterizedType) superInterface).getRawType(), typeSolver), typeParameters, typeSolver)) ==> java.util.List.add(E)
+ Line 58) ((ParameterizedType) superInterface).getRawType() ==> java.lang.reflect.ParameterizedType.getRawType()
+ Line 60) interfaces.add(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration((Class<?>) superInterface, typeSolver), typeSolver)) ==> java.util.List.add(E)
+ Line 68) getSuperClass() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getSuperClass()
+ Line 69) getSuperClass() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getSuperClass()
+ Line 70) ancestors.add(superClass) ==> java.util.List.add(E)
+ Line 73) ancestors.add(object) ==> java.util.List.add(E)
+ Line 75) ancestors.addAll(getInterfaces()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 75) getInterfaces() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getInterfaces()
+ Line 76) ancestors.size() ==> java.util.List.size()
+ Line 77) ancestors.get(i) ==> java.util.List.get(int)
+ Line 78) ancestor.hasName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.hasName()
+ Line 78) ancestor.getQualifiedName().equals(Object.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 78) ancestor.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 78) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 79) ancestors.remove(i) ==> java.util.List.remove(int)
+ Line 87) clazz.getDeclaredFields() ==> java.lang.Class.getDeclaredFields()
+ Line 88) field.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 88) field.getName() ==> java.lang.reflect.Field.getName()
+ Line 92) typeDeclaration.getAllAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllAncestors()
+ Line 93) ancestor.getTypeDeclaration().hasField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasField(java.lang.String)
+ Line 93) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 94) ancestor.getTypeDeclaration().getField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getField(java.lang.String)
+ Line 94) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 95) reflectionFieldDeclaration.replaceType(ancestor.getFieldType(name).get()) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFieldDeclaration.replaceType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 95) ancestor.getFieldType(name).get() ==> java.util.Optional.get()
+ Line 95) ancestor.getFieldType(name) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getFieldType(java.lang.String)
+ Line 102) clazz.getDeclaredFields() ==> java.lang.Class.getDeclaredFields()
+ Line 103) field.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 103) field.getName() ==> java.lang.reflect.Field.getName()
+ Line 107) getSuperClass() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getSuperClass()
+ Line 111) superclass.getTypeDeclaration().hasField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasField(java.lang.String)
+ Line 111) superclass.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 117) clazz.getDeclaredFields() ==> java.lang.Class.getDeclaredFields()
+ Line 118) fields.add(new ReflectionFieldDeclaration(field, typeSolver)) ==> java.util.ArrayList.add(E)
+ Line 120) typeDeclaration.getAllAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllAncestors()
+ Line 121) fields.addAll(ancestor.getTypeDeclaration().getAllFields()) ==> java.util.ArrayList.addAll(java.util.Collection<? extends E>)
+ Line 121) ancestor.getTypeDeclaration().getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 121) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 127) Arrays.stream(clazz.getDeclaredMethods()).filter(m -> !m.isSynthetic() && !m.isBridge()).map(m -> new ReflectionMethodDeclaration(m, typeSolver)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 127) Arrays.stream(clazz.getDeclaredMethods()).filter(m -> !m.isSynthetic() && !m.isBridge()).map(m -> new ReflectionMethodDeclaration(m, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 127) Arrays.stream(clazz.getDeclaredMethods()).filter(m -> !m.isSynthetic() && !m.isBridge()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 127) Arrays.stream(clazz.getDeclaredMethods()) ==> java.util.Arrays.stream(T[])
+ Line 127) clazz.getDeclaredMethods() ==> java.lang.Class.getDeclaredMethods()
+ Line 128) m.isSynthetic() ==> java.lang.reflect.Method.isSynthetic()
+ Line 128) m.isBridge() ==> java.lang.reflect.Method.isBridge()
+ Line 130) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 135) this.clazz.getTypeParameters() ==> java.lang.Class.getTypeParameters()
+ Line 136) params.add(new ReflectionTypeParameter(tv, true, typeSolver)) ==> java.util.List.add(E)
+ Line 146) isFunctionalInterface() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.isFunctionalInterface()
+ Line 148) type.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 151) type.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 154) type.describe().equals(typeDeclaration.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 154) type.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 154) typeDeclaration.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 159) otherTypeDeclaration.getTypeDeclaration().canBeAssignedTo(typeDeclaration) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 159) otherTypeDeclaration.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 166) clazz.getDeclaredAnnotations() ==> java.lang.Class.getDeclaredAnnotations()
+ Line 167) a.annotationType().getCanonicalName().equals(canonicalName) ==> java.lang.String.equals(java.lang.Object)
+ Line 167) a.annotationType().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 167) a.annotationType() ==> java.lang.annotation.Annotation.annotationType()
+ Line 175) FunctionalInterfaceLogic.getFunctionalMethod(typeDeclaration).isPresent() ==> java.util.Optional.isPresent()
+ Line 175) FunctionalInterfaceLogic.getFunctionalMethod(typeDeclaration) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.getFunctionalMethod(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 179) Arrays.stream(clazz.getConstructors()).map(m -> new ReflectionConstructorDeclaration(m, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 179) Arrays.stream(clazz.getConstructors()).map(m -> new ReflectionConstructorDeclaration(m, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 179) Arrays.stream(clazz.getConstructors()) ==> java.util.Arrays.stream(T[])
+ Line 179) clazz.getConstructors() ==> java.lang.Class.getConstructors()
+ Line 181) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 185) clazz.getDeclaringClass() ==> java.lang.Class.getDeclaringClass()
+ Line 187) Optional.empty() ==> java.util.Optional.empty()
+ Line 188) Optional.of(ReflectionFactory.typeDeclarationFor(declaringClass, typeSolver)) ==> java.util.Optional.of(T)
+ Line 188) ReflectionFactory.typeDeclarationFor(declaringClass, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeDeclarationFor(java.lang.Class<?>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionClassDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionClassDeclaration.txt
new file mode 100644
index 000000000..6b7eb560a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionClassDeclaration.txt
@@ -0,0 +1,121 @@
+ Line 62) clazz.isInterface() ==> java.lang.Class.isInterface()
+ Line 65) clazz.isPrimitive() ==> java.lang.Class.isPrimitive()
+ Line 68) clazz.isArray() ==> java.lang.Class.isArray()
+ Line 71) clazz.isEnum() ==> java.lang.Class.isEnum()
+ Line 85) reflectionClassAdapter.getDeclaredMethods() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getDeclaredMethods()
+ Line 90) reflectionClassAdapter.getAncestors() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getAncestors()
+ Line 96) getClass() ==> java.lang.Object.getClass()
+ Line 96) o.getClass() ==> java.lang.Object.getClass()
+ Line 100) clazz.getCanonicalName().equals(that.clazz.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 100) clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 100) that.clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 107) clazz.hashCode() ==> java.lang.Object.hashCode()
+ Line 113) clazz.getPackage() ==> java.lang.Class.getPackage()
+ Line 114) clazz.getPackage().getName() ==> java.lang.Package.getName()
+ Line 114) clazz.getPackage() ==> java.lang.Class.getPackage()
+ Line 121) clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 122) getPackageName() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getPackageName()
+ Line 123) canonicalName.substring(getPackageName().length() + 1, canonicalName.length()) ==> java.lang.String.substring(int, int)
+ Line 123) getPackageName().length() ==> java.lang.String.length()
+ Line 123) getPackageName() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getPackageName()
+ Line 123) canonicalName.length() ==> java.lang.String.length()
+ Line 130) clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 136) Modifier.isStatic(m.getModifiers()) ==> java.lang.reflect.Modifier.isStatic(int)
+ Line 136) m.getModifiers() ==> java.lang.reflect.Method.getModifiers()
+ Line 137) Arrays.stream(clazz.getDeclaredMethods()).filter((m) -> m.getName().equals(name)).filter(staticFilter).sorted(new MethodComparator()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 137) Arrays.stream(clazz.getDeclaredMethods()).filter((m) -> m.getName().equals(name)).filter(staticFilter).sorted(new MethodComparator()) ==> java.util.stream.Stream.sorted(java.util.Comparator<? super T>)
+ Line 137) Arrays.stream(clazz.getDeclaredMethods()).filter((m) -> m.getName().equals(name)).filter(staticFilter) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 137) Arrays.stream(clazz.getDeclaredMethods()).filter((m) -> m.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 137) Arrays.stream(clazz.getDeclaredMethods()) ==> java.util.Arrays.stream(T[])
+ Line 137) clazz.getDeclaredMethods() ==> java.lang.Class.getDeclaredMethods()
+ Line 137) m.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 137) m.getName() ==> java.lang.reflect.Method.getName()
+ Line 138) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 139) method.isBridge() ==> java.lang.reflect.Method.isBridge()
+ Line 139) method.isSynthetic() ==> java.lang.reflect.Method.isSynthetic()
+ Line 141) methods.add(methodDeclaration) ==> java.util.List.add(E)
+ Line 143) getSuperClass() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getSuperClass()
+ Line 144) getSuperClass().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 144) getSuperClass() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getSuperClass()
+ Line 145) MethodResolutionLogic.solveMethodInType(superClass, name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 146) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 147) methods.add(ref.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 147) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 150) getInterfaces() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getInterfaces()
+ Line 151) MethodResolutionLogic.solveMethodInType(interfaceDeclaration.getTypeDeclaration(), name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 151) interfaceDeclaration.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 152) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 153) methods.add(ref.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 153) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 156) MethodResolutionLogic.findMostApplicable(methods, name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 162) getId() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getId()
+ Line 173) Arrays.stream(clazz.getDeclaredMethods()).filter((m) -> m.getName().equals(name)).sorted(new MethodComparator()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 173) Arrays.stream(clazz.getDeclaredMethods()).filter((m) -> m.getName().equals(name)).sorted(new MethodComparator()) ==> java.util.stream.Stream.sorted(java.util.Comparator<? super T>)
+ Line 173) Arrays.stream(clazz.getDeclaredMethods()).filter((m) -> m.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 173) Arrays.stream(clazz.getDeclaredMethods()) ==> java.util.Arrays.stream(T[])
+ Line 173) clazz.getDeclaredMethods() ==> java.lang.Class.getDeclaredMethods()
+ Line 173) m.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 173) m.getName() ==> java.lang.reflect.Method.getName()
+ Line 173) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 174) method.isBridge() ==> java.lang.reflect.Method.isBridge()
+ Line 174) method.isSynthetic() ==> java.lang.reflect.Method.isSynthetic()
+ Line 177) getTypeParameters().size() ==> java.util.List.size()
+ Line 177) getTypeParameters() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getTypeParameters()
+ Line 177) typeParameterValues.size() ==> java.util.List.size()
+ Line 178) getTypeParameters().get(i) ==> java.util.List.get(int)
+ Line 178) getTypeParameters() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getTypeParameters()
+ Line 179) typeParameterValues.get(i) ==> java.util.List.get(int)
+ Line 180) methodUsage.replaceTypeParameter(tpToReplace, newValue) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceTypeParameter(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 182) methods.add(methodUsage) ==> java.util.List.add(E)
+ Line 184) getSuperClass() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getSuperClass()
+ Line 185) getSuperClass().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 185) getSuperClass() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getSuperClass()
+ Line 186) ContextHelper.solveMethodAsUsage(superClass, name, argumentsTypes, typeSolver, invokationContext, typeParameterValues) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.ContextHelper.solveMethodAsUsage(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 187) ref.isPresent() ==> java.util.Optional.isPresent()
+ Line 188) methods.add(ref.get()) ==> java.util.List.add(E)
+ Line 188) ref.get() ==> java.util.Optional.get()
+ Line 191) getInterfaces() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getInterfaces()
+ Line 192) ContextHelper.solveMethodAsUsage(interfaceDeclaration.getTypeDeclaration(), name, argumentsTypes, typeSolver, invokationContext, typeParameterValues) ==> com.github.javaparser.symbolsolver.javaparsermodel.contexts.ContextHelper.solveMethodAsUsage(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 192) interfaceDeclaration.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 193) ref.isPresent() ==> java.util.Optional.isPresent()
+ Line 194) methods.add(ref.get()) ==> java.util.List.add(E)
+ Line 194) ref.get() ==> java.util.Optional.get()
+ Line 197) MethodResolutionLogic.findMostApplicableUsage(methods, name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicableUsage(java.util.List<com.github.javaparser.symbolsolver.model.methods.MethodUsage>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 204) isFunctionalInterface() ==> com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration.isFunctionalInterface()
+ Line 206) other.getQualifiedName().equals(getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 206) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 206) getQualifiedName() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.getQualifiedName()
+ Line 209) this.clazz.getSuperclass() ==> java.lang.Class.getSuperclass()
+ Line 210) new ReflectionClassDeclaration(clazz.getSuperclass(), typeSolver).canBeAssignedTo(other) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 210) clazz.getSuperclass() ==> java.lang.Class.getSuperclass()
+ Line 213) clazz.getInterfaces() ==> java.lang.Class.getInterfaces()
+ Line 214) new ReflectionInterfaceDeclaration(interfaze, typeSolver).canBeAssignedTo(other) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 224) reflectionClassAdapter.isAssignableBy(type) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 234) reflectionClassAdapter.getField(name) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getField(java.lang.String)
+ Line 239) reflectionClassAdapter.getAllFields() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getAllFields()
+ Line 244) clazz.getFields() ==> java.lang.Class.getFields()
+ Line 245) field.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 245) field.getName() ==> java.lang.reflect.Field.getName()
+ Line 246) SymbolReference.solved(new ReflectionFieldDeclaration(field, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 249) SymbolReference.unsolved(ValueDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 254) reflectionClassAdapter.hasDirectlyAnnotation(canonicalName) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.hasDirectlyAnnotation(java.lang.String)
+ Line 259) reflectionClassAdapter.hasField(name) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.hasField(java.lang.String)
+ Line 264) isAssignableBy(new ReferenceTypeImpl(other, typeSolver)) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 269) clazz.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 289) clazz.isInterface() ==> java.lang.Class.isInterface()
+ Line 294) reflectionClassAdapter.getSuperClass() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getSuperClass()
+ Line 299) reflectionClassAdapter.getInterfaces() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getInterfaces()
+ Line 304) clazz.isInterface() ==> java.lang.Class.isInterface()
+ Line 309) reflectionClassAdapter.getTypeParameters() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getTypeParameters()
+ Line 314) ReflectionFactory.modifiersToAccessLevel(this.clazz.getModifiers()) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.modifiersToAccessLevel(int)
+ Line 314) this.clazz.getModifiers() ==> java.lang.Class.getModifiers()
+ Line 319) reflectionClassAdapter.getConstructors() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getConstructors()
+ Line 324) reflectionClassAdapter.containerType() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.containerType()
+ Line 329) Arrays.stream(this.clazz.getDeclaredClasses()).map(ic -> ReflectionFactory.typeDeclarationFor(ic, typeSolver)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 329) Arrays.stream(this.clazz.getDeclaredClasses()).map(ic -> ReflectionFactory.typeDeclarationFor(ic, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 329) Arrays.stream(this.clazz.getDeclaredClasses()) ==> java.util.Arrays.stream(T[])
+ Line 329) this.clazz.getDeclaredClasses() ==> java.lang.Class.getDeclaredClasses()
+ Line 330) ReflectionFactory.typeDeclarationFor(ic, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeDeclarationFor(java.lang.Class<?>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 331) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 340) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 340) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionConstructorDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionConstructorDeclaration.txt
new file mode 100644
index 000000000..8a179d635
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionConstructorDeclaration.txt
@@ -0,0 +1,17 @@
+ Line 43) constructor.getDeclaringClass() ==> java.lang.reflect.Constructor.getDeclaringClass()
+ Line 48) constructor.getParameterCount() ==> java.lang.reflect.Constructor.getParameterCount()
+ Line 53) getNumberOfParams() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionConstructorDeclaration.getNumberOfParams()
+ Line 54) String.format("No param with index %d. Number of params: %d", i, getNumberOfParams()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 54) getNumberOfParams() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionConstructorDeclaration.getNumberOfParams()
+ Line 57) constructor.isVarArgs() ==> java.lang.reflect.Constructor.isVarArgs()
+ Line 58) constructor.getParameterCount() ==> java.lang.reflect.Constructor.getParameterCount()
+ Line 60) constructor.getParameterTypes() ==> java.lang.reflect.Constructor.getParameterTypes()
+ Line 60) constructor.getGenericParameterTypes() ==> java.lang.reflect.Constructor.getGenericParameterTypes()
+ Line 65) constructor.getName() ==> java.lang.reflect.Constructor.getName()
+ Line 70) ReflectionFactory.modifiersToAccessLevel(constructor.getModifiers()) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.modifiersToAccessLevel(int)
+ Line 70) constructor.getModifiers() ==> java.lang.reflect.Constructor.getModifiers()
+ Line 75) Arrays.stream(constructor.getTypeParameters()).map((refTp) -> new ReflectionTypeParameter(refTp, false, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 75) Arrays.stream(constructor.getTypeParameters()).map((refTp) -> new ReflectionTypeParameter(refTp, false, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 75) Arrays.stream(constructor.getTypeParameters()) ==> java.util.Arrays.stream(T[])
+ Line 75) constructor.getTypeParameters() ==> java.lang.reflect.Constructor.getTypeParameters()
+ Line 75) Collectors.toList() ==> java.util.stream.Collectors.toList()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionEnumDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionEnumDeclaration.txt
new file mode 100644
index 000000000..13a8fc9be
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionEnumDeclaration.txt
@@ -0,0 +1,44 @@
+ Line 52) clazz.isInterface() ==> java.lang.Class.isInterface()
+ Line 55) clazz.isPrimitive() ==> java.lang.Class.isPrimitive()
+ Line 58) clazz.isArray() ==> java.lang.Class.isArray()
+ Line 61) clazz.isEnum() ==> java.lang.Class.isEnum()
+ Line 75) ReflectionFactory.modifiersToAccessLevel(this.clazz.getModifiers()) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.modifiersToAccessLevel(int)
+ Line 75) this.clazz.getModifiers() ==> java.lang.Class.getModifiers()
+ Line 80) reflectionClassAdapter.containerType() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.containerType()
+ Line 85) clazz.getPackage() ==> java.lang.Class.getPackage()
+ Line 86) clazz.getPackage().getName() ==> java.lang.Package.getName()
+ Line 86) clazz.getPackage() ==> java.lang.Class.getPackage()
+ Line 93) clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 94) getPackageName() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionEnumDeclaration.getPackageName()
+ Line 95) canonicalName.substring(getPackageName().length() + 1, canonicalName.length()) ==> java.lang.String.substring(int, int)
+ Line 95) getPackageName().length() ==> java.lang.String.length()
+ Line 95) getPackageName() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionEnumDeclaration.getPackageName()
+ Line 95) canonicalName.length() ==> java.lang.String.length()
+ Line 102) clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 107) reflectionClassAdapter.getAncestors() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getAncestors()
+ Line 112) reflectionClassAdapter.getField(name) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getField(java.lang.String)
+ Line 117) reflectionClassAdapter.hasField(name) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.hasField(java.lang.String)
+ Line 122) reflectionClassAdapter.getAllFields() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getAllFields()
+ Line 127) reflectionClassAdapter.getDeclaredMethods() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getDeclaredMethods()
+ Line 132) reflectionClassAdapter.isAssignableBy(type) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 137) isAssignableBy(new ReferenceTypeImpl(other, typeSolver)) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionEnumDeclaration.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 142) reflectionClassAdapter.hasDirectlyAnnotation(qualifiedName) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.hasDirectlyAnnotation(java.lang.String)
+ Line 147) clazz.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 152) reflectionClassAdapter.getTypeParameters() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getTypeParameters()
+ Line 156) ReflectionMethodResolutionLogic.solveMethod(name, parameterTypes, staticOnly, typeSolver, this, clazz) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionMethodResolutionLogic.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, java.lang.Class)
+ Line 161) ReflectionMethodResolutionLogic.solveMethodAsUsage(name, parameterTypes, typeSolver, invokationContext, typeParameterValues, this, clazz) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionMethodResolutionLogic.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, java.lang.Class)
+ Line 163) res.isPresent() ==> java.util.Optional.isPresent()
+ Line 166) res.get() ==> java.util.Optional.get()
+ Line 170) methodUsage.getParamType(i) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 173) parameters.add(inferenceContext.addPair(formalType, actualType)) ==> java.util.List.add(E)
+ Line 173) inferenceContext.addPair(formalType, actualType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 177) inferenceContext.addSingle(methodUsage.returnType()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addSingle(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 177) methodUsage.returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 178) parameters.size() ==> java.util.List.size()
+ Line 179) methodUsage.replaceParamType(j, inferenceContext.resolve(parameters.get(j))) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceParamType(int, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 179) inferenceContext.resolve(parameters.get(j)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 179) parameters.get(j) ==> java.util.List.get(int)
+ Line 181) methodUsage.replaceReturnType(inferenceContext.resolve(returnType)) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceReturnType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 181) inferenceContext.resolve(returnType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 182) Optional.of(methodUsage) ==> java.util.Optional.of(T)
+ Line 184) Optional.empty() ==> java.util.Optional.empty()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionFactory.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionFactory.txt
new file mode 100644
index 000000000..71f67feeb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionFactory.txt
@@ -0,0 +1,48 @@
+ Line 39) clazz.isArray() ==> java.lang.Class.isArray()
+ Line 41) clazz.isPrimitive() ==> java.lang.Class.isPrimitive()
+ Line 43) clazz.isInterface() ==> java.lang.Class.isInterface()
+ Line 45) clazz.isEnum() ==> java.lang.Class.isEnum()
+ Line 55) tv.getGenericDeclaration() ==> java.lang.reflect.TypeVariable.getGenericDeclaration()
+ Line 60) typeUsageFor(pt.getRawType(), typeSolver).asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 60) typeUsageFor(pt.getRawType(), typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 60) pt.getRawType() ==> java.lang.reflect.ParameterizedType.getRawType()
+ Line 62) actualTypes.addAll(Arrays.asList(pt.getActualTypeArguments())) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 62) Arrays.asList(pt.getActualTypeArguments()) ==> java.util.Arrays.asList(T...)
+ Line 62) pt.getActualTypeArguments() ==> java.lang.reflect.ParameterizedType.getActualTypeArguments()
+ Line 64) rawType.transformTypeParameters(tp -> typeUsageFor(actualTypes.remove(0), typeSolver)).asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 64) rawType.transformTypeParameters(tp -> typeUsageFor(actualTypes.remove(0), typeSolver)) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.transformTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.TypeTransformer)
+ Line 64) typeUsageFor(actualTypes.remove(0), typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 64) actualTypes.remove(0) ==> java.util.List.remove(int)
+ Line 68) c.isPrimitive() ==> java.lang.Class.isPrimitive()
+ Line 69) c.getName().equals(Void.TYPE.getName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 69) c.getName() ==> java.lang.Class.getName()
+ Line 69) Void.TYPE.getName() ==> java.lang.Class.getName()
+ Line 72) PrimitiveType.byName(c.getName()) ==> com.github.javaparser.symbolsolver.model.typesystem.PrimitiveType.byName(java.lang.String)
+ Line 72) c.getName() ==> java.lang.Class.getName()
+ Line 74) c.isArray() ==> java.lang.Class.isArray()
+ Line 75) typeUsageFor(c.getComponentType(), typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 75) c.getComponentType() ==> java.lang.Class.getComponentType()
+ Line 77) typeDeclarationFor(c, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeDeclarationFor(java.lang.Class<?>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 81) typeUsageFor(genericArrayType.getGenericComponentType(), typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 81) genericArrayType.getGenericComponentType() ==> java.lang.reflect.GenericArrayType.getGenericComponentType()
+ Line 84) wildcardType.getLowerBounds() ==> java.lang.reflect.WildcardType.getLowerBounds()
+ Line 84) wildcardType.getUpperBounds() ==> java.lang.reflect.WildcardType.getUpperBounds()
+ Line 85) wildcardType.getUpperBounds() ==> java.lang.reflect.WildcardType.getUpperBounds()
+ Line 85) wildcardType.getUpperBounds()[0].getTypeName().equals("java.lang.Object") ==> java.lang.String.equals(java.lang.Object)
+ Line 85) wildcardType.getUpperBounds()[0].getTypeName() ==> java.lang.reflect.Type.getTypeName()
+ Line 85) wildcardType.getUpperBounds() ==> java.lang.reflect.WildcardType.getUpperBounds()
+ Line 89) wildcardType.getLowerBounds() ==> java.lang.reflect.WildcardType.getLowerBounds()
+ Line 90) wildcardType.getLowerBounds() ==> java.lang.reflect.WildcardType.getLowerBounds()
+ Line 93) Wildcard.superBound(typeUsageFor(wildcardType.getLowerBounds()[0], typeSolver)) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.superBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 93) typeUsageFor(wildcardType.getLowerBounds()[0], typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 93) wildcardType.getLowerBounds() ==> java.lang.reflect.WildcardType.getLowerBounds()
+ Line 95) wildcardType.getUpperBounds() ==> java.lang.reflect.WildcardType.getUpperBounds()
+ Line 96) wildcardType.getUpperBounds() ==> java.lang.reflect.WildcardType.getUpperBounds()
+ Line 99) Wildcard.extendsBound(typeUsageFor(wildcardType.getUpperBounds()[0], typeSolver)) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 99) typeUsageFor(wildcardType.getUpperBounds()[0], typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 99) wildcardType.getUpperBounds() ==> java.lang.reflect.WildcardType.getUpperBounds()
+ Line 103) type.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 103) type.getClass() ==> java.lang.Object.getClass()
+ Line 108) Modifier.isPublic(modifiers) ==> java.lang.reflect.Modifier.isPublic(int)
+ Line 110) Modifier.isProtected(modifiers) ==> java.lang.reflect.Modifier.isProtected(int)
+ Line 112) Modifier.isPrivate(modifiers) ==> java.lang.reflect.Modifier.isPrivate(int)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionFieldDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionFieldDeclaration.txt
new file mode 100644
index 000000000..9c929b289
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionFieldDeclaration.txt
@@ -0,0 +1,10 @@
+ Line 40) calcType() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFieldDeclaration.calcType()
+ Line 56) ReflectionFactory.typeUsageFor(field.getGenericType(), typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 56) field.getGenericType() ==> java.lang.reflect.Field.getGenericType()
+ Line 61) field.getName() ==> java.lang.reflect.Field.getName()
+ Line 66) Modifier.isStatic(field.getModifiers()) ==> java.lang.reflect.Modifier.isStatic(int)
+ Line 66) field.getModifiers() ==> java.lang.reflect.Field.getModifiers()
+ Line 76) ReflectionFactory.typeDeclarationFor(field.getDeclaringClass(), typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeDeclarationFor(java.lang.Class<?>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 76) field.getDeclaringClass() ==> java.lang.reflect.Field.getDeclaringClass()
+ Line 95) ReflectionFactory.modifiersToAccessLevel(field.getModifiers()) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.modifiersToAccessLevel(int)
+ Line 95) field.getModifiers() ==> java.lang.reflect.Field.getModifiers()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionInterfaceDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionInterfaceDeclaration.txt
new file mode 100644
index 000000000..6ee2485ec
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionInterfaceDeclaration.txt
@@ -0,0 +1,81 @@
+ Line 56) clazz.isInterface() ==> java.lang.Class.isInterface()
+ Line 71) isAssignableBy(new ReferenceTypeImpl(other, typeSolver)) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 76) clazz.getPackage() ==> java.lang.Class.getPackage()
+ Line 77) clazz.getPackage().getName() ==> java.lang.Package.getName()
+ Line 77) clazz.getPackage() ==> java.lang.Class.getPackage()
+ Line 84) clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 85) getPackageName() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.getPackageName()
+ Line 86) canonicalName.substring(getPackageName().length() + 1, canonicalName.length()) ==> java.lang.String.substring(int, int)
+ Line 86) getPackageName().length() ==> java.lang.String.length()
+ Line 86) getPackageName() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.getPackageName()
+ Line 86) canonicalName.length() ==> java.lang.String.length()
+ Line 93) clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 98) ReflectionMethodResolutionLogic.solveMethod(name, parameterTypes, staticOnly, typeSolver, this, clazz) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionMethodResolutionLogic.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, java.lang.Class)
+ Line 105) clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 120) clazz.getCanonicalName().equals(that.clazz.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 120) clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 120) that.clazz.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 122) getTypeParameters().equals(that.getTypeParameters()) ==> java.util.List.equals(java.lang.Object)
+ Line 122) getTypeParameters() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.getTypeParameters()
+ Line 122) that.getTypeParameters() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.getTypeParameters()
+ Line 131) clazz.hashCode() ==> java.lang.Object.hashCode()
+ Line 135) ReflectionMethodResolutionLogic.solveMethodAsUsage(name, parameterTypes, typeSolver, invokationContext, typeParameterValues, this, clazz) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionMethodResolutionLogic.solveMethodAsUsage(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, java.lang.Class)
+ Line 137) res.isPresent() ==> java.util.Optional.isPresent()
+ Line 140) res.get() ==> java.util.Optional.get()
+ Line 144) methodUsage.getParamType(i) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 147) parameters.add(inferenceContext.addPair(formalType, actualType)) ==> java.util.List.add(E)
+ Line 147) inferenceContext.addPair(formalType, actualType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addPair(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 151) inferenceContext.addSingle(methodUsage.returnType()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.addSingle(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 151) methodUsage.returnType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.returnType()
+ Line 152) parameters.size() ==> java.util.List.size()
+ Line 153) methodUsage.replaceParamType(j, inferenceContext.resolve(parameters.get(j))) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceParamType(int, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 153) inferenceContext.resolve(parameters.get(j)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 153) parameters.get(j) ==> java.util.List.get(int)
+ Line 155) methodUsage.replaceReturnType(inferenceContext.resolve(returnType)) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceReturnType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 155) inferenceContext.resolve(returnType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 156) Optional.of(methodUsage) ==> java.util.Optional.of(T)
+ Line 158) Optional.empty() ==> java.util.Optional.empty()
+ Line 168) isFunctionalInterface() ==> com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration.isFunctionalInterface()
+ Line 170) other.getQualifiedName().equals(getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 170) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 170) getQualifiedName() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.getQualifiedName()
+ Line 173) this.clazz.getSuperclass() ==> java.lang.Class.getSuperclass()
+ Line 174) new ReflectionInterfaceDeclaration(clazz.getSuperclass(), typeSolver).canBeAssignedTo(other) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 174) clazz.getSuperclass() ==> java.lang.Class.getSuperclass()
+ Line 177) clazz.getInterfaces() ==> java.lang.Class.getInterfaces()
+ Line 178) new ReflectionInterfaceDeclaration(interfaze, typeSolver).canBeAssignedTo(other) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 183) other.getQualifiedName().equals(Object.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 183) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 183) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 196) isFunctionalInterface() ==> com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration.isFunctionalInterface()
+ Line 198) type.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 201) type.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 204) type.describe().equals(getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 204) type.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 204) getQualifiedName() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.getQualifiedName()
+ Line 209) otherTypeDeclaration.getTypeDeclaration().canBeAssignedTo(this) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.canBeAssignedTo(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 209) otherTypeDeclaration.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 222) reflectionClassAdapter.getField(name) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getField(java.lang.String)
+ Line 227) reflectionClassAdapter.getAllFields() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getAllFields()
+ Line 232) clazz.getFields() ==> java.lang.Class.getFields()
+ Line 233) field.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 233) field.getName() ==> java.lang.reflect.Field.getName()
+ Line 234) SymbolReference.solved(new ReflectionFieldDeclaration(field, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 237) SymbolReference.unsolved(ValueDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 242) reflectionClassAdapter.getAncestors() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getAncestors()
+ Line 247) reflectionClassAdapter.getDeclaredMethods() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getDeclaredMethods()
+ Line 252) reflectionClassAdapter.hasField(name) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.hasField(java.lang.String)
+ Line 257) clazz.getSimpleName() ==> java.lang.Class.getSimpleName()
+ Line 268) clazz.getInterfaces() ==> java.lang.Class.getInterfaces()
+ Line 269) res.add(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(i, typeSolver), typeSolver)) ==> java.util.List.add(E)
+ Line 276) reflectionClassAdapter.containerType() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.containerType()
+ Line 281) Arrays.stream(this.clazz.getDeclaredClasses()).map(ic -> ReflectionFactory.typeDeclarationFor(ic, typeSolver)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 281) Arrays.stream(this.clazz.getDeclaredClasses()).map(ic -> ReflectionFactory.typeDeclarationFor(ic, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 281) Arrays.stream(this.clazz.getDeclaredClasses()) ==> java.util.Arrays.stream(T[])
+ Line 281) this.clazz.getDeclaredClasses() ==> java.lang.Class.getDeclaredClasses()
+ Line 282) ReflectionFactory.typeDeclarationFor(ic, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeDeclarationFor(java.lang.Class<?>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 283) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 293) reflectionClassAdapter.hasDirectlyAnnotation(canonicalName) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.hasDirectlyAnnotation(java.lang.String)
+ Line 298) reflectionClassAdapter.getTypeParameters() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassAdapter.getTypeParameters()
+ Line 303) ReflectionFactory.modifiersToAccessLevel(this.clazz.getModifiers()) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.modifiersToAccessLevel(int)
+ Line 303) this.clazz.getModifiers() ==> java.lang.Class.getModifiers()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionMethodDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionMethodDeclaration.txt
new file mode 100644
index 000000000..f8a3230b2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionMethodDeclaration.txt
@@ -0,0 +1,30 @@
+ Line 42) method.isSynthetic() ==> java.lang.reflect.Method.isSynthetic()
+ Line 42) method.isBridge() ==> java.lang.reflect.Method.isBridge()
+ Line 50) method.getName() ==> java.lang.reflect.Method.getName()
+ Line 77) method.getDeclaringClass().isInterface() ==> java.lang.Class.isInterface()
+ Line 77) method.getDeclaringClass() ==> java.lang.reflect.Method.getDeclaringClass()
+ Line 78) method.getDeclaringClass() ==> java.lang.reflect.Method.getDeclaringClass()
+ Line 80) method.getDeclaringClass().isEnum() ==> java.lang.Class.isEnum()
+ Line 80) method.getDeclaringClass() ==> java.lang.reflect.Method.getDeclaringClass()
+ Line 81) method.getDeclaringClass() ==> java.lang.reflect.Method.getDeclaringClass()
+ Line 83) method.getDeclaringClass() ==> java.lang.reflect.Method.getDeclaringClass()
+ Line 89) ReflectionFactory.typeUsageFor(method.getGenericReturnType(), typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 89) method.getGenericReturnType() ==> java.lang.reflect.Method.getGenericReturnType()
+ Line 94) method.getParameterTypes() ==> java.lang.reflect.Method.getParameterTypes()
+ Line 100) method.isVarArgs() ==> java.lang.reflect.Method.isVarArgs()
+ Line 101) method.getParameterCount() ==> java.lang.reflect.Method.getParameterCount()
+ Line 103) method.getParameterTypes() ==> java.lang.reflect.Method.getParameterTypes()
+ Line 103) method.getGenericParameterTypes() ==> java.lang.reflect.Method.getGenericParameterTypes()
+ Line 108) Arrays.stream(method.getTypeParameters()).map((refTp) -> new ReflectionTypeParameter(refTp, false, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 108) Arrays.stream(method.getTypeParameters()).map((refTp) -> new ReflectionTypeParameter(refTp, false, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 108) Arrays.stream(method.getTypeParameters()) ==> java.util.Arrays.stream(T[])
+ Line 108) method.getTypeParameters() ==> java.lang.reflect.Method.getTypeParameters()
+ Line 108) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 112) new MethodDeclarationCommonLogic(this, typeSolver).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.declarations.common.MethodDeclarationCommonLogic.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 117) Modifier.isAbstract(method.getModifiers()) ==> java.lang.reflect.Modifier.isAbstract(int)
+ Line 117) method.getModifiers() ==> java.lang.reflect.Method.getModifiers()
+ Line 122) method.isDefault() ==> java.lang.reflect.Method.isDefault()
+ Line 127) Modifier.isStatic(method.getModifiers()) ==> java.lang.reflect.Modifier.isStatic(int)
+ Line 127) method.getModifiers() ==> java.lang.reflect.Method.getModifiers()
+ Line 132) ReflectionFactory.modifiersToAccessLevel(this.method.getModifiers()) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.modifiersToAccessLevel(int)
+ Line 132) this.method.getModifiers() ==> java.lang.reflect.Method.getModifiers()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionMethodResolutionLogic.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionMethodResolutionLogic.txt
new file mode 100644
index 000000000..e7a497536
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionMethodResolutionLogic.txt
@@ -0,0 +1,85 @@
+ Line 49) Modifier.isStatic(m.getModifiers()) ==> java.lang.reflect.Modifier.isStatic(int)
+ Line 49) m.getModifiers() ==> java.lang.reflect.Method.getModifiers()
+ Line 50) clazz.getMethods() ==> java.lang.Class.getMethods()
+ Line 51) method.isBridge() ==> java.lang.reflect.Method.isBridge()
+ Line 51) method.isSynthetic() ==> java.lang.reflect.Method.isSynthetic()
+ Line 51) method.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 51) method.getName() ==> java.lang.reflect.Method.getName()
+ Line 51) staticOnlyCheck.test(method) ==> java.util.function.Predicate.test(T)
+ Line 53) methods.add(methodDeclaration) ==> java.util.List.add(E)
+ Line 56) scopeType.getAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAncestors()
+ Line 57) MethodResolutionLogic.solveMethodInType(ancestor.getTypeDeclaration(), name, parameterTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 57) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 58) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 59) methods.add(ref.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 59) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 63) scopeType.getAncestors().isEmpty() ==> java.util.List.isEmpty()
+ Line 63) scopeType.getAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAncestors()
+ Line 65) MethodResolutionLogic.solveMethodInType(objectClass.getTypeDeclaration(), name, parameterTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 65) objectClass.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 66) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 67) methods.add(ref.getCorrespondingDeclaration()) ==> java.util.List.add(E)
+ Line 67) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 70) MethodResolutionLogic.findMostApplicable(methods, name, parameterTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 76) typeParameterValues.size() ==> java.util.List.size()
+ Line 76) scopeType.getTypeParameters().size() ==> java.util.List.size()
+ Line 76) scopeType.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 78) scopeType.getTypeParameters().isEmpty() ==> java.util.List.isEmpty()
+ Line 78) scopeType.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 81) scopeType.getTypeParameters().size() ==> java.util.List.size()
+ Line 81) scopeType.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 82) typeParameterValues.add(new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver)) ==> java.util.List.add(E)
+ Line 87) clazz.getMethods() ==> java.lang.Class.getMethods()
+ Line 88) method.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 88) method.getName() ==> java.lang.reflect.Method.getName()
+ Line 88) method.isBridge() ==> java.lang.reflect.Method.isBridge()
+ Line 88) method.isSynthetic() ==> java.lang.reflect.Method.isSynthetic()
+ Line 90) replaceParams(typeParameterValues, scopeType, methodDeclaration) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionMethodResolutionLogic.replaceParams(java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration)
+ Line 91) methods.add(methodUsage) ==> java.util.List.add(E)
+ Line 96) scopeType.getAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAncestors()
+ Line 97) MethodResolutionLogic.solveMethodInType(ancestor.getTypeDeclaration(), name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 97) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 98) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 99) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 100) replaceParams(typeParameterValues, ancestor.getTypeDeclaration(), correspondingDeclaration) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionMethodResolutionLogic.replaceParams(java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration)
+ Line 100) ancestor.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 101) methods.add(methodUsage) ==> java.util.List.add(E)
+ Line 105) scopeType.getAncestors().isEmpty() ==> java.util.List.isEmpty()
+ Line 105) scopeType.getAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAncestors()
+ Line 107) MethodResolutionLogic.solveMethodInType(objectClass.getTypeDeclaration(), name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 107) objectClass.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 108) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 109) replaceParams(typeParameterValues, objectClass.getTypeDeclaration(), ref.getCorrespondingDeclaration()) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionMethodResolutionLogic.replaceParams(java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration)
+ Line 109) objectClass.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 109) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 110) methods.add(usage) ==> java.util.List.add(E)
+ Line 115) argumentsTypes.stream().map((pt) -> {
+ int i = 0;
+ for (TypeParameterDeclaration tp : scopeType.getTypeParameters()) {
+ pt = pt.replaceTypeVariables(tp, finalTypeParameterValues.get(i));
+ i++;
+ }
+ return pt;
+}).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 115) argumentsTypes.stream().map((pt) -> {
+ int i = 0;
+ for (TypeParameterDeclaration tp : scopeType.getTypeParameters()) {
+ pt = pt.replaceTypeVariables(tp, finalTypeParameterValues.get(i));
+ i++;
+ }
+ return pt;
+}) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 115) argumentsTypes.stream() ==> java.util.Collection.stream()
+ Line 117) scopeType.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 118) pt.replaceTypeVariables(tp, finalTypeParameterValues.get(i)) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 118) finalTypeParameterValues.get(i) ==> java.util.List.get(int)
+ Line 122) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 123) MethodResolutionLogic.findMostApplicableUsage(methods, name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicableUsage(java.util.List<com.github.javaparser.symbolsolver.model.methods.MethodUsage>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 131) typeParameterValues.size() ==> java.util.List.size()
+ Line 131) typeParametrizable.getTypeParameters().size() ==> java.util.List.size()
+ Line 131) typeParametrizable.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 132) typeParametrizable.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 133) methodUsage.replaceTypeParameter(tp, typeParameterValues.get(i)) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceTypeParameter(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 133) typeParameterValues.get(i) ==> java.util.List.get(int)
+ Line 138) methodDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 139) methodUsage.replaceTypeParameter(methodTypeParameter, new TypeVariable(methodTypeParameter)) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceTypeParameter(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionParameterDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionParameterDeclaration.txt
new file mode 100644
index 000000000..5e1a33b52
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionParameterDeclaration.txt
@@ -0,0 +1 @@
+ Line 73) ReflectionFactory.typeUsageFor(genericType, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionTypeParameter.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionTypeParameter.txt
new file mode 100644
index 000000000..39aa15147
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_ReflectionTypeParameter.txt
@@ -0,0 +1,25 @@
+ Line 44) typeVariable.getGenericDeclaration() ==> java.lang.reflect.TypeVariable.getGenericDeclaration()
+ Line 46) ReflectionFactory.typeDeclarationFor((Class) genericDeclaration, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeDeclarationFor(java.lang.Class<?>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 63) getQualifiedName().equals(that.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 63) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getQualifiedName()
+ Line 63) that.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getQualifiedName()
+ Line 66) declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 66) that.declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 69) declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
+ Line 69) that.declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
+ Line 78) typeVariable.hashCode() ==> java.lang.Object.hashCode()
+ Line 79) container.hashCode() ==> java.lang.Object.hashCode()
+ Line 85) typeVariable.getName() ==> java.lang.reflect.TypeVariable.getName()
+ Line 91) ((ReferenceTypeDeclaration) container).getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 93) ((MethodLikeDeclaration) container).getQualifiedSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getQualifiedSignature()
+ Line 100) ((ReferenceTypeDeclaration) container).getId() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getId()
+ Line 102) ((MethodLikeDeclaration) container).getQualifiedSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getQualifiedSignature()
+ Line 113) Arrays.stream(typeVariable.getBounds()).map((refB) -> Bound.extendsBound(ReflectionFactory.typeUsageFor(refB, typeSolver))).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 113) Arrays.stream(typeVariable.getBounds()).map((refB) -> Bound.extendsBound(ReflectionFactory.typeUsageFor(refB, typeSolver))) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 113) Arrays.stream(typeVariable.getBounds()) ==> java.util.Arrays.stream(T[])
+ Line 113) typeVariable.getBounds() ==> java.lang.reflect.TypeVariable.getBounds()
+ Line 113) Bound.extendsBound(ReflectionFactory.typeUsageFor(refB, typeSolver)) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 113) ReflectionFactory.typeUsageFor(refB, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeUsageFor(java.lang.reflect.Type, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 113) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 126) Optional.of((ReferenceTypeDeclaration) container) ==> java.util.Optional.of(T)
+ Line 128) Optional.empty() ==> java.util.Optional.empty()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_ClassComparator.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_ClassComparator.txt
new file mode 100644
index 000000000..fdb9ae985
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_ClassComparator.txt
@@ -0,0 +1,15 @@
+ Line 13) o1.getCanonicalName().compareTo(o2.getCanonicalName()) ==> java.lang.String.compareTo(java.lang.String)
+ Line 13) o1.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 13) o2.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 15) Boolean.compare(o1.isAnnotation(), o2.isAnnotation()) ==> java.lang.Boolean.compare(boolean, boolean)
+ Line 15) o1.isAnnotation() ==> java.lang.Class.isAnnotation()
+ Line 15) o2.isAnnotation() ==> java.lang.Class.isAnnotation()
+ Line 17) Boolean.compare(o1.isArray(), o2.isArray()) ==> java.lang.Boolean.compare(boolean, boolean)
+ Line 17) o1.isArray() ==> java.lang.Class.isArray()
+ Line 17) o2.isArray() ==> java.lang.Class.isArray()
+ Line 19) Boolean.compare(o1.isEnum(), o2.isEnum()) ==> java.lang.Boolean.compare(boolean, boolean)
+ Line 19) o1.isEnum() ==> java.lang.Class.isEnum()
+ Line 19) o2.isEnum() ==> java.lang.Class.isEnum()
+ Line 21) Boolean.compare(o1.isInterface(), o2.isInterface()) ==> java.lang.Boolean.compare(boolean, boolean)
+ Line 21) o1.isInterface() ==> java.lang.Class.isInterface()
+ Line 21) o2.isInterface() ==> java.lang.Class.isInterface()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_MethodComparator.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_MethodComparator.txt
new file mode 100644
index 000000000..c900b94c6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_MethodComparator.txt
@@ -0,0 +1,12 @@
+ Line 13) o1.getName().compareTo(o2.getName()) ==> java.lang.String.compareTo(java.lang.String)
+ Line 13) o1.getName() ==> java.lang.reflect.Method.getName()
+ Line 13) o2.getName() ==> java.lang.reflect.Method.getName()
+ Line 15) o1.getParameterCount() ==> java.lang.reflect.Method.getParameterCount()
+ Line 15) o2.getParameterCount() ==> java.lang.reflect.Method.getParameterCount()
+ Line 17) o1.getParameterCount() ==> java.lang.reflect.Method.getParameterCount()
+ Line 18) new ParameterComparator().compare(o1.getParameters()[i], o2.getParameters()[i]) ==> com.github.javaparser.symbolsolver.reflectionmodel.comparators.ParameterComparator.compare(java.lang.reflect.Parameter, java.lang.reflect.Parameter)
+ Line 18) o1.getParameters() ==> java.lang.reflect.Executable.getParameters()
+ Line 18) o2.getParameters() ==> java.lang.reflect.Executable.getParameters()
+ Line 21) new ClassComparator().compare(o1.getReturnType(), o2.getReturnType()) ==> com.github.javaparser.symbolsolver.reflectionmodel.comparators.ClassComparator.compare(java.lang.Class<?>, java.lang.Class<?>)
+ Line 21) o1.getReturnType() ==> java.lang.reflect.Method.getReturnType()
+ Line 21) o2.getReturnType() ==> java.lang.reflect.Method.getReturnType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_ParameterComparator.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_ParameterComparator.txt
new file mode 100644
index 000000000..e4ab6296d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_reflectionmodel_comparators_ParameterComparator.txt
@@ -0,0 +1,6 @@
+ Line 13) o1.getName().compareTo(o2.getName()) ==> java.lang.String.compareTo(java.lang.String)
+ Line 13) o1.getName() ==> java.lang.reflect.Parameter.getName()
+ Line 13) o2.getName() ==> java.lang.reflect.Parameter.getName()
+ Line 15) new ClassComparator().compare(o1.getType(), o2.getType()) ==> com.github.javaparser.symbolsolver.reflectionmodel.comparators.ClassComparator.compare(java.lang.Class<?>, java.lang.Class<?>)
+ Line 15) o1.getType() ==> java.lang.reflect.Parameter.getType()
+ Line 15) o2.getType() ==> java.lang.reflect.Parameter.getType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_ConstructorResolutionLogic.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_ConstructorResolutionLogic.txt
new file mode 100644
index 000000000..e45c8b87b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_ConstructorResolutionLogic.txt
@@ -0,0 +1,110 @@
+ Line 38) argumentsTypes.subList(0, startVariadic) ==> java.util.List.subList(int, int)
+ Line 39) argumentsTypes.subList(startVariadic, argumentsTypes.size()) ==> java.util.List.subList(int, int)
+ Line 39) argumentsTypes.size() ==> java.util.List.size()
+ Line 40) variadicValues.isEmpty() ==> java.util.List.isEmpty()
+ Line 42) res.add(variadicType) ==> java.util.List.add(E)
+ Line 44) findCommonType(variadicValues) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.findCommonType(java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 45) res.add(new ArrayType(componentType)) ==> java.util.List.add(E)
+ Line 51) variadicValues.isEmpty() ==> java.util.List.isEmpty()
+ Line 55) variadicValues.get(0) ==> java.util.List.get(int)
+ Line 60) isApplicable(constructor, argumentsTypes, typeSolver, false) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.isApplicable(com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, boolean)
+ Line 65) constructor.hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 66) constructor.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 67) constructor.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 67) argumentsTypes.size() ==> java.util.List.size()
+ Line 69) constructor.getLastParam().getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 69) constructor.getLastParam() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getLastParam()
+ Line 70) argumentsTypes.get(pos) ==> java.util.List.get(int)
+ Line 71) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 72) constructor.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 73) MethodResolutionLogic.replaceTypeParam(expectedType, tp, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.replaceTypeParam(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 75) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 76) actualType.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 77) expectedType.isAssignableBy(actualType.asArrayType().getComponentType()) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 77) actualType.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 77) actualType.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 78) argumentsTypes.set(pos, actualType.asArrayType().getComponentType()) ==> java.util.List.set(int, E)
+ Line 78) actualType.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 78) actualType.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 80) groupVariadicParamValues(argumentsTypes, pos, constructor.getLastParam().getType()) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.groupVariadicParamValues(java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, int, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 81) constructor.getLastParam().getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 81) constructor.getLastParam() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getLastParam()
+ Line 86) argumentsTypes.size() ==> java.util.List.size()
+ Line 90) groupVariadicParamValues(argumentsTypes, pos, constructor.getLastParam().getType()) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.groupVariadicParamValues(java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, int, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 90) constructor.getLastParam().getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 90) constructor.getLastParam() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getLastParam()
+ Line 94) constructor.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 94) argumentsTypes.size() ==> java.util.List.size()
+ Line 99) constructor.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 100) constructor.getParam(i).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 100) constructor.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 101) argumentsTypes.get(i) ==> java.util.List.get(int)
+ Line 102) expectedType.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 102) expectedType.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 103) expectedType.asTypeParameter().declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
+ Line 103) expectedType.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 104) matchedParameters.put(expectedType.asTypeParameter().getName(), actualType) ==> java.util.Map.put(K, V)
+ Line 104) expectedType.asTypeParameter().getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 104) expectedType.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 108) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 108) constructor.getParam(i).isVariadic() ==> com.github.javaparser.symbolsolver.model.declarations.ParameterDeclaration.isVariadic()
+ Line 108) constructor.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 109) new ArrayType(expectedType).isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 110) expectedType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 111) actualType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 112) MethodResolutionLogic.isAssignableMatchTypeParameters(expectedType.asReferenceType(), actualType.asReferenceType(), matchedParameters) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isAssignableMatchTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, java.util.Map<java.lang.String, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 113) expectedType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 113) actualType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 116) constructor.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 117) typeParameters.addAll(constructor.declaringType().getTypeParameters()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 117) constructor.declaringType().getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 117) constructor.declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration.declaringType()
+ Line 119) MethodResolutionLogic.replaceTypeParam(expectedType, tp, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.replaceTypeParam(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 122) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 123) actualType.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 123) expectedType.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 127) constructor.hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 127) constructor.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 128) new ArrayType(expectedType).isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 149) findMostApplicable(constructors, argumentsTypes, typeSolver, false) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration>, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, boolean)
+ Line 150) res.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 153) findMostApplicable(constructors, argumentsTypes, typeSolver, true) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration>, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, boolean)
+ Line 157) constructors.stream().filter((m) -> isApplicable(m, argumentsTypes, typeSolver, wildcardTolerance)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 157) constructors.stream().filter((m) -> isApplicable(m, argumentsTypes, typeSolver, wildcardTolerance)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 157) constructors.stream() ==> java.util.Collection.stream()
+ Line 157) isApplicable(m, argumentsTypes, typeSolver, wildcardTolerance) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.isApplicable(com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, boolean)
+ Line 157) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 158) applicableConstructors.isEmpty() ==> java.util.List.isEmpty()
+ Line 159) SymbolReference.unsolved(ConstructorDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 161) applicableConstructors.size() ==> java.util.List.size()
+ Line 162) SymbolReference.solved(applicableConstructors.get(0)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 162) applicableConstructors.get(0) ==> java.util.List.get(int)
+ Line 164) applicableConstructors.get(0) ==> java.util.List.get(int)
+ Line 167) applicableConstructors.size() ==> java.util.List.size()
+ Line 168) applicableConstructors.get(i) ==> java.util.List.get(int)
+ Line 169) isMoreSpecific(winningCandidate, other, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.isMoreSpecific(com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration, com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 171) isMoreSpecific(other, winningCandidate, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.ConstructorResolutionLogic.isMoreSpecific(com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration, com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 175) winningCandidate.declaringType().getQualifiedName().equals(other.declaringType().getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 175) winningCandidate.declaringType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 175) winningCandidate.declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration.declaringType()
+ Line 176) other.declaringType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 176) other.declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration.declaringType()
+ Line 185) MethodResolutionLogic.isExactMatch(winningCandidate, argumentsTypes) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isExactMatch(com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 186) MethodResolutionLogic.isExactMatch(other, argumentsTypes) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isExactMatch(com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 193) SymbolReference.solved(winningCandidate) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 200) constructorA.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 200) constructorB.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 203) constructorA.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 203) constructorB.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 206) constructorA.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 207) constructorA.getParam(i).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 207) constructorA.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 208) constructorB.getParam(i).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 208) constructorB.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 210) tdB.isAssignableBy(tdA) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 210) tdA.isAssignableBy(tdB) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 214) tdA.isAssignableBy(tdB) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 214) tdB.isAssignableBy(tdA) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 219) constructorA.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 219) tdA.arrayLevel() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.arrayLevel()
+ Line 219) tdB.arrayLevel() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.arrayLevel()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_MethodResolutionLogic.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_MethodResolutionLogic.txt
new file mode 100644
index 000000000..0c37bf700
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_MethodResolutionLogic.txt
@@ -0,0 +1,416 @@
+ Line 45) argumentsTypes.subList(0, startVariadic) ==> java.util.List.subList(int, int)
+ Line 46) argumentsTypes.subList(startVariadic, argumentsTypes.size()) ==> java.util.List.subList(int, int)
+ Line 46) argumentsTypes.size() ==> java.util.List.size()
+ Line 47) variadicValues.isEmpty() ==> java.util.List.isEmpty()
+ Line 49) res.add(variadicType) ==> java.util.List.add(E)
+ Line 51) findCommonType(variadicValues) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findCommonType(java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 52) res.add(new ArrayType(componentType)) ==> java.util.List.add(E)
+ Line 58) variadicValues.isEmpty() ==> java.util.List.isEmpty()
+ Line 62) variadicValues.get(0) ==> java.util.List.get(int)
+ Line 66) isApplicable(method, name, argumentsTypes, typeSolver, false) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isApplicable(com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, boolean)
+ Line 70) method.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 70) method.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 73) method.hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 74) method.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 75) method.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 75) argumentsTypes.size() ==> java.util.List.size()
+ Line 77) method.getLastParam().getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 77) method.getLastParam() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getLastParam()
+ Line 78) argumentsTypes.get(pos) ==> java.util.List.get(int)
+ Line 79) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 80) method.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 81) replaceTypeParam(expectedType, tp, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.replaceTypeParam(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 83) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 84) actualType.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 84) expectedType.isAssignableBy(actualType.asArrayType().getComponentType()) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 84) actualType.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 84) actualType.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 85) argumentsTypes.set(pos, actualType.asArrayType().getComponentType()) ==> java.util.List.set(int, E)
+ Line 85) actualType.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 85) actualType.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 87) groupVariadicParamValues(argumentsTypes, pos, method.getLastParam().getType()) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.groupVariadicParamValues(java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, int, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 87) method.getLastParam().getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 87) method.getLastParam() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getLastParam()
+ Line 92) argumentsTypes.size() ==> java.util.List.size()
+ Line 95) groupVariadicParamValues(argumentsTypes, pos, method.getLastParam().getType()) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.groupVariadicParamValues(java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, int, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 95) method.getLastParam().getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 95) method.getLastParam() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getLastParam()
+ Line 99) method.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 99) argumentsTypes.size() ==> java.util.List.size()
+ Line 104) method.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 105) method.getParam(i).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 105) method.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 106) argumentsTypes.get(i) ==> java.util.List.get(int)
+ Line 107) expectedType.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 107) expectedType.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 107) expectedType.asTypeParameter().declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
+ Line 107) expectedType.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 108) matchedParameters.put(expectedType.asTypeParameter().getName(), actualType) ==> java.util.Map.put(K, V)
+ Line 108) expectedType.asTypeParameter().getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 108) expectedType.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 111) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 112) method.getParam(i).isVariadic() ==> com.github.javaparser.symbolsolver.model.declarations.ParameterDeclaration.isVariadic()
+ Line 112) method.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 112) new ArrayType(expectedType).isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 113) expectedType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 113) actualType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 114) isAssignableMatchTypeParameters(expectedType.asReferenceType(), actualType.asReferenceType(), matchedParameters) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isAssignableMatchTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, java.util.Map<java.lang.String, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 115) expectedType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 116) actualType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 120) method.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 121) typeParameters.addAll(method.declaringType().getTypeParameters()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 121) method.declaringType().getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 121) method.declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
+ Line 123) replaceTypeParam(expectedType, tp, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.replaceTypeParam(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 126) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 127) actualType.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 127) expectedType.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 131) method.hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 131) method.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 132) new ArrayType(expectedType).isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 145) expected.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 145) actual.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 146) isAssignableMatchTypeParameters(expected.asReferenceType(), actual.asReferenceType(), matchedParameters) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isAssignableMatchTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, java.util.Map<java.lang.String, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 146) expected.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 146) actual.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 147) expected.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 148) matchedParameters.put(expected.asTypeParameter().getName(), actual) ==> java.util.Map.put(K, V)
+ Line 148) expected.asTypeParameter().getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 148) expected.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 151) expected.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 151) expected.getClass() ==> java.lang.Object.getClass()
+ Line 151) actual.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 151) actual.getClass() ==> java.lang.Object.getClass()
+ Line 157) actual.getQualifiedName().equals(expected.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 157) actual.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 157) expected.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 158) isAssignableMatchTypeParametersMatchingQName(expected, actual, matchedParameters) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isAssignableMatchTypeParametersMatchingQName(com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, java.util.Map<java.lang.String, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 160) actual.getAllAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllAncestors()
+ Line 162) isAssignableMatchTypeParametersMatchingQName(expected, ancestor, matchedParameters) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isAssignableMatchTypeParametersMatchingQName(com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, java.util.Map<java.lang.String, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 173) expected.getQualifiedName().equals(actual.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 173) expected.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 173) actual.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 176) expected.typeParametersValues().size() ==> java.util.List.size()
+ Line 176) expected.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 176) actual.typeParametersValues().size() ==> java.util.List.size()
+ Line 176) actual.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 180) expected.typeParametersValues().size() ==> java.util.List.size()
+ Line 180) expected.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 181) expected.typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 181) expected.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 182) actual.typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 182) actual.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 186) expectedParam.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 186) actualParam.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 187) expectedParam.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 188) actualParam.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 190) isAssignableMatchTypeParametersMatchingQName(r1, r2, matchedParameters) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isAssignableMatchTypeParametersMatchingQName(com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, com.github.javaparser.symbolsolver.model.typesystem.ReferenceType, java.util.Map<java.lang.String, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 193) expectedParam.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 194) expectedParam.asTypeParameter().getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 194) expectedParam.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 195) actualParam.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 195) actualParam.asTypeParameter().getName().equals(expectedParamName) ==> java.lang.String.equals(java.lang.Object)
+ Line 195) actualParam.asTypeParameter().getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 195) actualParam.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 196) matchedParameters.containsKey(expectedParamName) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 197) matchedParameters.get(expectedParamName) ==> java.util.Map.get(java.lang.Object)
+ Line 198) matchedParameter.isAssignableBy(actualParam) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 200) actualParam.isAssignableBy(matchedParameter) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 201) matchedParameters.put(expectedParamName, actualParam) ==> java.util.Map.put(K, V)
+ Line 206) matchedParameters.put(expectedParamName, actualParam) ==> java.util.Map.put(K, V)
+ Line 209) expectedParam.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 210) expectedParam.equals(actualParam) ==> java.lang.Object.equals(java.lang.Object)
+ Line 213) expectedParam.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 214) expectedParam.asWildcard().isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 214) expectedParam.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 215) isAssignableMatchTypeParameters(expectedParam.asWildcard().getBoundedType(), actual, matchedParameters) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isAssignableMatchTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<java.lang.String, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 215) expectedParam.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 215) expectedParam.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 220) expectedParam.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 227) type.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 228) type.describe().equals(tp.getName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 228) type.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 228) tp.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 229) tp.getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 230) bounds.size() ==> java.util.List.size()
+ Line 232) bounds.size() ==> java.util.List.size()
+ Line 233) bounds.get(0).getType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.getType()
+ Line 233) bounds.get(0) ==> java.util.List.get(int)
+ Line 235) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 235) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 239) type.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 241) type.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 242) replaceTypeParam(type.asArrayType().getComponentType(), tp, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.replaceTypeParam(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 242) type.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 242) type.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 243) type.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 244) type.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 245) result.transformTypeParameters(typeParam -> replaceTypeParam(typeParam, tp, typeSolver)).asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 245) result.transformTypeParameters(typeParam -> replaceTypeParam(typeParam, tp, typeSolver)) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.transformTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.TypeTransformer)
+ Line 245) replaceTypeParam(typeParam, tp, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.replaceTypeParam(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 247) type.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 248) type.describe().equals(tp.getName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 248) type.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 248) tp.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 249) tp.getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 250) bounds.size() ==> java.util.List.size()
+ Line 252) bounds.size() ==> java.util.List.size()
+ Line 253) bounds.get(0).getType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.getType()
+ Line 253) bounds.get(0) ==> java.util.List.get(int)
+ Line 255) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 255) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 260) type.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 260) type.getClass() ==> java.lang.Object.getClass()
+ Line 265) method.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 265) method.getName() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getName()
+ Line 269) method.getNoParams() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getNoParams()
+ Line 269) argumentsTypes.size() ==> java.util.List.size()
+ Line 272) method.getNoParams() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getNoParams()
+ Line 273) method.getParamType(i) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 275) method.getParamType(i) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 276) argumentsTypes.get(i) ==> java.util.List.get(int)
+ Line 278) method.getDeclaration().getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 278) method.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 279) typeParameters.addAll(method.declaringType().getTypeParameters()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 279) method.declaringType().getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 279) method.declaringType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.declaringType()
+ Line 281) expectedType.describe().equals(actualType.describe()) ==> java.lang.String.equals(java.lang.Object)
+ Line 281) expectedType.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 281) actualType.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 286) method.getParamTypes().size() ==> java.util.List.size()
+ Line 286) method.getParamTypes() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamTypes()
+ Line 287) method.getDeclaration().getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 287) method.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 288) parameter.getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 289) parameter.isVariadic() ==> com.github.javaparser.symbolsolver.model.declarations.ParameterDeclaration.isVariadic()
+ Line 290) parameterType.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 290) parameterType.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 292) inferTypes(argumentsTypes.get(j), parameterType, derivedValues) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 292) argumentsTypes.get(j) ==> java.util.List.get(int)
+ Line 295) derivedValues.entrySet() ==> java.util.Map.entrySet()
+ Line 296) entry.getKey() ==> java.util.Map.Entry.getKey()
+ Line 297) expectedTypeWithInference.replaceTypeVariables(tp, entry.getValue()) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 297) entry.getValue() ==> java.util.Map.Entry.getValue()
+ Line 301) tp.getBounds(typeSolver).isEmpty() ==> java.util.List.isEmpty()
+ Line 301) tp.getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 303) expectedType.replaceTypeVariables(tp, Wildcard.extendsBound(new ReferenceTypeImpl(typeSolver.solveType(Object.class.getCanonicalName()), typeSolver))) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 303) Wildcard.extendsBound(new ReferenceTypeImpl(typeSolver.solveType(Object.class.getCanonicalName()), typeSolver)) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 303) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 303) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 304) tp.getBounds(typeSolver).size() ==> java.util.List.size()
+ Line 304) tp.getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 305) tp.getBounds(typeSolver).get(0) ==> java.util.List.get(int)
+ Line 305) tp.getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 306) bound.isExtends() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.isExtends()
+ Line 308) expectedType.replaceTypeVariables(tp, Wildcard.extendsBound(bound.getType())) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 308) Wildcard.extendsBound(bound.getType()) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 308) bound.getType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.getType()
+ Line 311) expectedType.replaceTypeVariables(tp, Wildcard.superBound(bound.getType())) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 311) Wildcard.superBound(bound.getType()) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.superBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 311) bound.getType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.getType()
+ Line 319) tp.getBounds(typeSolver).isEmpty() ==> java.util.List.isEmpty()
+ Line 319) tp.getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 320) expectedType2.replaceTypeVariables(tp, new ReferenceTypeImpl(typeSolver.solveType(Object.class.getCanonicalName()), typeSolver)) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 320) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 320) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 321) tp.getBounds(typeSolver).size() ==> java.util.List.size()
+ Line 321) tp.getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 322) tp.getBounds(typeSolver).get(0) ==> java.util.List.get(int)
+ Line 322) tp.getBounds(typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 323) bound.isExtends() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.isExtends()
+ Line 324) expectedType2.replaceTypeVariables(tp, bound.getType()) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 324) bound.getType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.getType()
+ Line 326) expectedType2.replaceTypeVariables(tp, new ReferenceTypeImpl(typeSolver.solveType(Object.class.getCanonicalName()), typeSolver)) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 326) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 326) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 332) expectedType.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 333) expectedType2.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 334) expectedTypeWithInference.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 335) expectedTypeWithoutSubstitutions.isAssignableBy(actualType) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 347) ((JavaParserMethodDeclaration) m1).getWrappedNode().equals(((JavaParserMethodDeclaration) m2).getWrappedNode()) ==> com.github.javaparser.ast.Node.equals(java.lang.Object)
+ Line 347) ((JavaParserMethodDeclaration) m1).getWrappedNode() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserMethodDeclaration.getWrappedNode()
+ Line 347) ((JavaParserMethodDeclaration) m2).getWrappedNode() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserMethodDeclaration.getWrappedNode()
+ Line 353) s.addAll(methods) ==> java.util.Set.addAll(java.util.Collection<? extends E>)
+ Line 357) md.getQualifiedSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getQualifiedSignature()
+ Line 358) usedSignatures.contains(signature) ==> java.util.Set.contains(java.lang.Object)
+ Line 359) usedSignatures.add(signature) ==> java.util.Set.add(E)
+ Line 360) res.add(md) ==> java.util.List.add(E)
+ Line 374) findMostApplicable(methods, name, argumentsTypes, typeSolver, false) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, boolean)
+ Line 375) res.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 378) findMostApplicable(methods, name, argumentsTypes, typeSolver, true) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.findMostApplicable(java.util.List<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, boolean)
+ Line 382) getMethodsWithoutDuplicates(methods).stream().filter((m) -> isApplicable(m, name, argumentsTypes, typeSolver, wildcardTolerance)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 382) getMethodsWithoutDuplicates(methods).stream().filter((m) -> isApplicable(m, name, argumentsTypes, typeSolver, wildcardTolerance)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 382) getMethodsWithoutDuplicates(methods).stream() ==> java.util.Collection.stream()
+ Line 382) getMethodsWithoutDuplicates(methods) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.getMethodsWithoutDuplicates(java.util.List<com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration>)
+ Line 382) isApplicable(m, name, argumentsTypes, typeSolver, wildcardTolerance) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isApplicable(com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver, boolean)
+ Line 382) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 383) applicableMethods.isEmpty() ==> java.util.List.isEmpty()
+ Line 384) SymbolReference.unsolved(MethodDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 387) applicableMethods.size() ==> java.util.List.size()
+ Line 389) argumentsTypes.size() ==> java.util.List.size()
+ Line 390) argumentsTypes.get(i).isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 390) argumentsTypes.get(i) ==> java.util.List.get(int)
+ Line 391) nullParamIndexes.add(i) ==> java.util.List.add(E)
+ Line 394) nullParamIndexes.isEmpty() ==> java.util.List.isEmpty()
+ Line 399) methDecl.getParam(nullParamIndex.intValue()).getType().isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 399) methDecl.getParam(nullParamIndex.intValue()).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 399) methDecl.getParam(nullParamIndex.intValue()) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 399) nullParamIndex.intValue() ==> java.lang.Integer.intValue()
+ Line 400) removeCandidates.add(methDecl) ==> java.util.Set.add(E)
+ Line 404) removeCandidates.isEmpty() ==> java.util.Set.isEmpty()
+ Line 404) removeCandidates.size() ==> java.util.Set.size()
+ Line 404) applicableMethods.size() ==> java.util.List.size()
+ Line 405) applicableMethods.removeAll(removeCandidates) ==> java.util.List.removeAll(java.util.Collection<? extends java.lang.Object>)
+ Line 409) applicableMethods.size() ==> java.util.List.size()
+ Line 410) SymbolReference.solved(applicableMethods.get(0)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 410) applicableMethods.get(0) ==> java.util.List.get(int)
+ Line 412) applicableMethods.get(0) ==> java.util.List.get(int)
+ Line 415) applicableMethods.size() ==> java.util.List.size()
+ Line 416) applicableMethods.get(i) ==> java.util.List.get(int)
+ Line 417) isMoreSpecific(winningCandidate, other, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isMoreSpecific(com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration, com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 419) isMoreSpecific(other, winningCandidate, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isMoreSpecific(com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration, com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 423) winningCandidate.declaringType().getQualifiedName().equals(other.declaringType().getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 423) winningCandidate.declaringType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 423) winningCandidate.declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
+ Line 423) other.declaringType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 423) other.declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
+ Line 432) isExactMatch(winningCandidate, argumentsTypes) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isExactMatch(com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 433) isExactMatch(other, argumentsTypes) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isExactMatch(com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 440) SymbolReference.solved(winningCandidate) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 445) method.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 446) method.getParam(i).getType().equals(argumentsTypes.get(i)) ==> java.lang.Object.equals(java.lang.Object)
+ Line 446) method.getParam(i).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 446) method.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 446) argumentsTypes.get(i) ==> java.util.List.get(int)
+ Line 455) methodA.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 455) methodB.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 458) methodA.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 458) methodB.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 461) methodA.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 462) methodA.getParam(i).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 462) methodA.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 463) methodB.getParam(i).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 463) methodB.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 465) tdB.isAssignableBy(tdA) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 465) tdA.isAssignableBy(tdB) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 469) tdA.isAssignableBy(tdB) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 469) tdB.isAssignableBy(tdA) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 475) argumentTypes.size() ==> java.util.List.size()
+ Line 477) methodA.hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 477) methodB.hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 479) argumentTypes.get(lastIndex).isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 479) argumentTypes.get(lastIndex) ==> java.util.List.get(int)
+ Line 483) argumentTypes.get(lastIndex).isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 483) argumentTypes.get(lastIndex) ==> java.util.List.get(int)
+ Line 487) methodA.hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 487) methodB.hasVariadicParameter() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.hasVariadicParameter()
+ Line 490) argumentTypes.get(lastIndex).isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 490) argumentTypes.get(lastIndex) ==> java.util.List.get(int)
+ Line 494) argumentTypes.get(lastIndex).isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 494) argumentTypes.get(lastIndex) ==> java.util.List.get(int)
+ Line 505) methodA.getNoParams() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getNoParams()
+ Line 506) methodA.getParamType(i) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 507) methodB.getParamType(i) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamType(int)
+ Line 509) tdA.isAssignableBy(tdB) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 510) tdB.isAssignableBy(tdA) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 525) methods.stream().filter((m) -> isApplicable(m, name, argumentsTypes, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 525) methods.stream().filter((m) -> isApplicable(m, name, argumentsTypes, typeSolver)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 525) methods.stream() ==> java.util.Collection.stream()
+ Line 525) isApplicable(m, name, argumentsTypes, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isApplicable(com.github.javaparser.symbolsolver.model.methods.MethodUsage, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 525) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 527) applicableMethods.isEmpty() ==> java.util.List.isEmpty()
+ Line 528) Optional.empty() ==> java.util.Optional.empty()
+ Line 530) applicableMethods.size() ==> java.util.List.size()
+ Line 531) Optional.of(applicableMethods.get(0)) ==> java.util.Optional.of(T)
+ Line 531) applicableMethods.get(0) ==> java.util.List.get(int)
+ Line 533) applicableMethods.get(0) ==> java.util.List.get(int)
+ Line 534) applicableMethods.size() ==> java.util.List.size()
+ Line 535) applicableMethods.get(i) ==> java.util.List.get(int)
+ Line 536) isMoreSpecific(winningCandidate, other, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isMoreSpecific(com.github.javaparser.symbolsolver.model.methods.MethodUsage, com.github.javaparser.symbolsolver.model.methods.MethodUsage, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 538) isMoreSpecific(other, winningCandidate, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.isMoreSpecific(com.github.javaparser.symbolsolver.model.methods.MethodUsage, com.github.javaparser.symbolsolver.model.methods.MethodUsage, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 541) winningCandidate.declaringType().getQualifiedName().equals(other.declaringType().getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 541) winningCandidate.declaringType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 541) winningCandidate.declaringType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.declaringType()
+ Line 541) other.declaringType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 541) other.declaringType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.declaringType()
+ Line 542) areOverride(winningCandidate, other) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.areOverride(com.github.javaparser.symbolsolver.model.methods.MethodUsage, com.github.javaparser.symbolsolver.model.methods.MethodUsage)
+ Line 543) winningCandidate.declaringType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 543) winningCandidate.declaringType() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.declaringType()
+ Line 551) Optional.of(winningCandidate) ==> java.util.Optional.of(T)
+ Line 556) winningCandidate.getName().equals(other.getName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 556) winningCandidate.getName() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getName()
+ Line 556) other.getName() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getName()
+ Line 559) winningCandidate.getNoParams() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getNoParams()
+ Line 559) other.getNoParams() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getNoParams()
+ Line 562) winningCandidate.getNoParams() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getNoParams()
+ Line 563) winningCandidate.getParamTypes().get(i).equals(other.getParamTypes().get(i)) ==> java.lang.Object.equals(java.lang.Object)
+ Line 563) winningCandidate.getParamTypes().get(i) ==> java.util.List.get(int)
+ Line 563) winningCandidate.getParamTypes() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamTypes()
+ Line 563) other.getParamTypes().get(i) ==> java.util.List.get(int)
+ Line 563) other.getParamTypes() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getParamTypes()
+ Line 571) solveMethodInType(typeDeclaration, name, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.solveMethodInType(com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration, java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 587) ((JavaParserClassDeclaration) typeDeclaration).getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getContext()
+ Line 588) ctx.solveMethod(name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 591) ((JavaParserInterfaceDeclaration) typeDeclaration).getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.getContext()
+ Line 592) ctx.solveMethod(name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 595) name.equals("values") ==> java.lang.String.equals(java.lang.Object)
+ Line 595) argumentsTypes.isEmpty() ==> java.util.List.isEmpty()
+ Line 596) SymbolReference.solved(new JavaParserEnumDeclaration.ValuesMethod((JavaParserEnumDeclaration) typeDeclaration, typeSolver)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 598) ((JavaParserEnumDeclaration) typeDeclaration).getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration.getContext()
+ Line 599) ctx.solveMethod(name, argumentsTypes, staticOnly, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 602) ((ReflectionClassDeclaration) typeDeclaration).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 605) ((ReflectionInterfaceDeclaration) typeDeclaration).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 608) ((ReflectionEnumDeclaration) typeDeclaration).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionEnumDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 611) ((JavassistInterfaceDeclaration) typeDeclaration).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 614) ((JavassistClassDeclaration) typeDeclaration).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 617) ((JavassistEnumDeclaration) typeDeclaration).solveMethod(name, argumentsTypes, staticOnly) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistEnumDeclaration.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean)
+ Line 619) typeDeclaration.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 619) typeDeclaration.getClass() ==> java.lang.Object.getClass()
+ Line 625) source.equals(target) ==> java.lang.Object.equals(java.lang.Object)
+ Line 628) source.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 628) target.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 629) source.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 630) target.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 631) sourceRefType.getQualifiedName().equals(targetRefType.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 631) sourceRefType.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 631) targetRefType.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 632) sourceRefType.isRawType() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.isRawType()
+ Line 632) targetRefType.isRawType() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.isRawType()
+ Line 633) sourceRefType.typeParametersValues().size() ==> java.util.List.size()
+ Line 633) sourceRefType.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 634) inferTypes(sourceRefType.typeParametersValues().get(i), targetRefType.typeParametersValues().get(i), mappings) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 634) sourceRefType.typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 634) sourceRefType.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 634) targetRefType.typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 634) targetRefType.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 640) source.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 640) target.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 641) target.asWildcard().isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 641) target.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 642) inferTypes(source, target.asWildcard().getBoundedType(), mappings) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 642) target.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 642) target.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 647) source.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 647) target.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 650) source.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 650) target.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 651) mappings.put(target.asTypeParameter(), source) ==> java.util.Map.put(K, V)
+ Line 651) target.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 655) source.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 655) target.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 656) source.asWildcard().isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 656) source.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 657) inferTypes(source.asWildcard().getBoundedType(), target, mappings) ==> com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic.inferTypes(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 657) source.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 657) source.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 662) source.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 662) target.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 663) mappings.put(target.asTypeParameter(), source) ==> java.util.Map.put(K, V)
+ Line 663) target.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 666) source.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 666) target.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 667) mappings.put(target.asTypeParameter(), source) ==> java.util.Map.put(K, V)
+ Line 667) target.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 670) source.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 670) target.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 673) source.isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_SymbolDeclarator.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_SymbolDeclarator.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_SymbolDeclarator.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_SymbolSolver.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_SymbolSolver.txt
new file mode 100644
index 000000000..abdaa0b49
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_SymbolSolver.txt
@@ -0,0 +1,40 @@
+ Line 58) context.solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 62) solveSymbol(name, JavaParserFactory.getContext(node, typeSolver)) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 62) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 66) context.solveSymbolAsValue(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 70) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 71) solveSymbolAsValue(name, context) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolAsValue(java.lang.String, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 75) context.solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 79) solveType(name, JavaParserFactory.getContext(node, typeSolver)) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveType(java.lang.String, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 79) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 83) context.solveMethod(methodName, argumentsTypes, false, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, boolean, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 84) decl.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 87) decl.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 91) solveMethod(methodName, argumentsTypes, JavaParserFactory.getContext(node, typeSolver)) ==> com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveMethod(java.lang.String, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.core.resolution.Context)
+ Line 91) JavaParserFactory.getContext(node, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 99) ((ClassOrInterfaceType) type).getName().getId() ==> com.github.javaparser.ast.nodeTypes.NodeWithIdentifier.getId()
+ Line 99) ((ClassOrInterfaceType) type).getName() ==> com.github.javaparser.ast.type.ClassOrInterfaceType.getName()
+ Line 100) JavaParserFactory.getContext(type, typeSolver).solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 100) JavaParserFactory.getContext(type, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 101) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 102) JavaParserFactory.getContext(type, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.getContext(com.github.javaparser.ast.Node, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 104) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 106) type.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 106) type.getClass() ==> java.lang.Object.getClass()
+ Line 111) context.solveGenericType(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveGenericType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 112) genericType.isPresent() ==> java.util.Optional.isPresent()
+ Line 113) genericType.get() ==> java.util.Optional.get()
+ Line 115) typeSolver.solveType(name) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 128) ((JavaParserClassDeclaration) typeDeclaration).getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.getContext()
+ Line 129) ctx.solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 132) ((JavaParserInterfaceDeclaration) typeDeclaration).getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.getContext()
+ Line 133) ctx.solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 136) ((JavaParserEnumDeclaration) typeDeclaration).getContext() ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration.getContext()
+ Line 137) ctx.solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.core.resolution.Context.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 140) ((ReflectionClassDeclaration) typeDeclaration).solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 143) ((ReflectionInterfaceDeclaration) typeDeclaration).solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 146) ((JavassistClassDeclaration) typeDeclaration).solveSymbol(name, typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.solveSymbol(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 148) SymbolReference.unsolved(ValueDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 157) ((JavaParserClassDeclaration) typeDeclaration).solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 160) ((JavaParserInterfaceDeclaration) typeDeclaration).solveType(name, typeSolver) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration.solveType(java.lang.String, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 162) SymbolReference.unsolved(ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_CombinedTypeSolver.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_CombinedTypeSolver.txt
new file mode 100644
index 000000000..dc25ad44e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_CombinedTypeSolver.txt
@@ -0,0 +1,9 @@
+ Line 37) add(el) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver.add(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 52) this.elements.add(typeSolver) ==> java.util.List.add(E)
+ Line 53) typeSolver.setParent(this) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.setParent(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 59) ts.tryToSolveType(name) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 60) res.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 64) SymbolReference.unsolved(ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 69) tryToSolveType(name) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver.tryToSolveType(java.lang.String)
+ Line 70) res.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 71) res.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_JarTypeSolver.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_JarTypeSolver.txt
new file mode 100644
index 000000000..ddbe4d941
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_JarTypeSolver.txt
@@ -0,0 +1,31 @@
+ Line 46) addPathToJar(pathToJar) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver.addPathToJar(java.lang.String)
+ Line 53) instance.addPathToJar(pathToJar) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver.addPathToJar(java.lang.String)
+ Line 60) classPool.appendClassPath(pathToJar) ==> javassist.ClassPool.appendClassPath(java.lang.String)
+ Line 61) classPool.appendSystemPath() ==> javassist.ClassPool.appendSystemPath()
+ Line 67) jarFile.entries() ==> java.util.jar.JarFile.entries()
+ Line 68) e.hasMoreElements() ==> java.util.Enumeration.hasMoreElements()
+ Line 69) e.nextElement() ==> java.util.Enumeration.nextElement()
+ Line 70) entry.isDirectory() ==> java.util.zip.ZipEntry.isDirectory()
+ Line 70) entry.getName().endsWith(".class") ==> java.lang.String.endsWith(java.lang.String)
+ Line 70) entry.getName() ==> java.util.zip.ZipEntry.getName()
+ Line 71) entryPathToClassName(entry.getName()) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver.entryPathToClassName(java.lang.String)
+ Line 71) entry.getName() ==> java.util.zip.ZipEntry.getName()
+ Line 72) classpathElements.put(name, new ClasspathElement(jarFile, entry, name)) ==> java.util.Map.put(K, V)
+ Line 88) entryPath.endsWith(".class") ==> java.lang.String.endsWith(java.lang.String)
+ Line 91) entryPath.substring(0, entryPath.length() - ".class".length()) ==> java.lang.String.substring(int, int)
+ Line 91) entryPath.length() ==> java.lang.String.length()
+ Line 91) ".class".length() ==> java.lang.String.length()
+ Line 92) className.replace('/', '.') ==> java.lang.String.replace(char, char)
+ Line 93) className.replace('$', '.') ==> java.lang.String.replace(char, char)
+ Line 100) classpathElements.containsKey(name) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 101) SymbolReference.solved(JavassistFactory.toTypeDeclaration(classpathElements.get(name).toCtClass(), getRoot())) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 102) JavassistFactory.toTypeDeclaration(classpathElements.get(name).toCtClass(), getRoot()) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.toTypeDeclaration(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 102) classpathElements.get(name).toCtClass() ==> com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver.ClasspathElement.toCtClass()
+ Line 102) classpathElements.get(name) ==> java.util.Map.get(java.lang.Object)
+ Line 102) getRoot() ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.getRoot()
+ Line 104) SymbolReference.unsolved(ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 113) tryToSolveType(name) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver.tryToSolveType(java.lang.String)
+ Line 114) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 115) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 133) jarFile.getInputStream(entry) ==> java.util.jar.JarFile.getInputStream(java.util.zip.ZipEntry)
+ Line 134) classPool.makeClass(is) ==> javassist.ClassPool.makeClass(java.io.InputStream)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_JavaParserTypeSolver.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_JavaParserTypeSolver.txt
new file mode 100644
index 000000000..5ffaa4d52
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_JavaParserTypeSolver.txt
@@ -0,0 +1,48 @@
+ Line 72) parsedFiles.containsKey(srcFile.getAbsolutePath()) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 72) srcFile.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 73) parsedFiles.put(srcFile.getAbsolutePath(), JavaParser.parse(srcFile)) ==> java.util.Map.put(K, V)
+ Line 73) srcFile.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 73) JavaParser.parse(srcFile) ==> com.github.javaparser.JavaParser.parse(java.io.File)
+ Line 75) parsedFiles.get(srcFile.getAbsolutePath()) ==> java.util.Map.get(java.lang.Object)
+ Line 75) srcFile.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 79) parsedDirectories.containsKey(srcDirectory.getAbsolutePath()) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 79) srcDirectory.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 81) srcDirectory.listFiles() ==> java.io.File.listFiles()
+ Line 82) srcDirectory.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 84) file.getName().toLowerCase().endsWith(".java") ==> java.lang.String.endsWith(java.lang.String)
+ Line 84) file.getName().toLowerCase() ==> java.lang.String.toLowerCase()
+ Line 84) file.getName() ==> java.io.File.getName()
+ Line 85) units.add(parse(file)) ==> java.util.List.add(E)
+ Line 85) parse(file) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver.parse(java.io.File)
+ Line 88) parsedDirectories.put(srcDirectory.getAbsolutePath(), units) ==> java.util.Map.put(K, V)
+ Line 88) srcDirectory.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 91) parsedDirectories.get(srcDirectory.getAbsolutePath()) ==> java.util.Map.get(java.lang.Object)
+ Line 91) srcDirectory.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 96) srcDir.exists() ==> java.io.File.exists()
+ Line 96) srcDir.isDirectory() ==> java.io.File.isDirectory()
+ Line 97) srcDir.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 102) foundTypes.containsKey(name) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 103) SymbolReference.solved(foundTypes.get(name)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 103) foundTypes.get(name) ==> java.util.Map.get(java.lang.Object)
+ Line 105) tryToSolveTypeUncached(name) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver.tryToSolveTypeUncached(java.lang.String)
+ Line 106) result.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 107) foundTypes.put(name, result.getCorrespondingDeclaration()) ==> java.util.Map.put(K, V)
+ Line 107) result.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 114) name.split("\\.") ==> java.lang.String.split(java.lang.String)
+ Line 117) srcDir.getAbsolutePath() ==> java.io.File.getAbsolutePath()
+ Line 133) parse(srcFile) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver.parse(java.io.File)
+ Line 134) Navigator.findType(compilationUnit, typeName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findType(com.github.javaparser.ast.CompilationUnit, java.lang.String)
+ Line 135) astTypeDeclaration.isPresent() ==> java.util.Optional.isPresent()
+ Line 136) SymbolReference.solved(JavaParserFacade.get(this).getTypeDeclaration(astTypeDeclaration.get())) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 136) JavaParserFacade.get(this).getTypeDeclaration(astTypeDeclaration.get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 136) JavaParserFacade.get(this) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 136) astTypeDeclaration.get() ==> java.util.Optional.get()
+ Line 143) parseDirectory(srcFile.getParentFile()) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver.parseDirectory(java.io.File)
+ Line 143) srcFile.getParentFile() ==> java.io.File.getParentFile()
+ Line 145) Navigator.findType(compilationUnit, typeName) ==> com.github.javaparser.symbolsolver.javaparser.Navigator.findType(com.github.javaparser.ast.CompilationUnit, java.lang.String)
+ Line 146) astTypeDeclaration.isPresent() ==> java.util.Optional.isPresent()
+ Line 147) SymbolReference.solved(JavaParserFacade.get(this).getTypeDeclaration(astTypeDeclaration.get())) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 147) JavaParserFacade.get(this).getTypeDeclaration(astTypeDeclaration.get()) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration<?>)
+ Line 147) JavaParserFacade.get(this) ==> com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.get(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 147) astTypeDeclaration.get() ==> java.util.Optional.get()
+ Line 155) SymbolReference.unsolved(ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_MemoryTypeSolver.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_MemoryTypeSolver.txt
new file mode 100644
index 000000000..27733dbba
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_MemoryTypeSolver.txt
@@ -0,0 +1,9 @@
+ Line 51) parent.equals(that.parent) ==> java.lang.Object.equals(java.lang.Object)
+ Line 52) declarationMap.equals(that.declarationMap) ==> java.util.Map.equals(java.lang.Object)
+ Line 58) parent.hashCode() ==> java.lang.Object.hashCode()
+ Line 59) declarationMap.hashCode() ==> java.util.Map.hashCode()
+ Line 74) this.declarationMap.put(name, typeDeclaration) ==> java.util.Map.put(K, V)
+ Line 79) declarationMap.containsKey(name) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 80) SymbolReference.solved(declarationMap.get(name)) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 80) declarationMap.get(name) ==> java.util.Map.get(java.lang.Object)
+ Line 82) SymbolReference.unsolved(ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_ReflectionTypeSolver.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_ReflectionTypeSolver.txt
new file mode 100644
index 000000000..5a27ad540
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-core/com_github_javaparser_symbolsolver_resolution_typesolvers_ReflectionTypeSolver.txt
@@ -0,0 +1,26 @@
+ Line 55) name.startsWith("java.") ==> java.lang.String.startsWith(java.lang.String)
+ Line 55) name.startsWith("javax.") ==> java.lang.String.startsWith(java.lang.String)
+ Line 57) ReflectionTypeSolver.class.getClassLoader() ==> java.lang.Class.getClassLoader()
+ Line 65) classLoader.loadClass(name) ==> java.lang.ClassLoader.loadClass(java.lang.String)
+ Line 66) SymbolReference.solved(ReflectionFactory.typeDeclarationFor(clazz, getRoot())) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 66) ReflectionFactory.typeDeclarationFor(clazz, getRoot()) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.typeDeclarationFor(java.lang.Class<?>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 66) getRoot() ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.getRoot()
+ Line 69) name.lastIndexOf('.') ==> java.lang.String.lastIndexOf(int)
+ Line 71) SymbolReference.unsolved(ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 73) name.substring(0, lastDot) ==> java.lang.String.substring(int, int)
+ Line 74) name.substring(lastDot + 1) ==> java.lang.String.substring(int)
+ Line 75) tryToSolveType(parentName) ==> com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver.tryToSolveType(java.lang.String)
+ Line 76) parent.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 77) parent.getCorrespondingDeclaration().internalTypes().stream().filter(it -> it.getName().equals(childName)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 77) parent.getCorrespondingDeclaration().internalTypes().stream().filter(it -> it.getName().equals(childName)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 77) parent.getCorrespondingDeclaration().internalTypes().stream() ==> java.util.Collection.stream()
+ Line 77) parent.getCorrespondingDeclaration().internalTypes() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.internalTypes()
+ Line 77) parent.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 78) it.getName().equals(childName) ==> java.lang.String.equals(java.lang.Object)
+ Line 78) it.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 79) innerClass.isPresent() ==> java.util.Optional.isPresent()
+ Line 80) SymbolReference.solved(innerClass.get()) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 80) innerClass.get() ==> java.util.Optional.get()
+ Line 82) SymbolReference.unsolved(ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 85) SymbolReference.unsolved(ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
+ Line 90) SymbolReference.unsolved(ReferenceTypeDeclaration.class) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_AbstractClassDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_AbstractClassDeclaration.txt
new file mode 100644
index 000000000..9da1ae7d3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_AbstractClassDeclaration.txt
@@ -0,0 +1,18 @@
+ Line 39) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 45) getSuperClass() ==> com.github.javaparser.symbolsolver.model.declarations.ClassDeclaration.getSuperClass()
+ Line 47) superclasses.add(superClass) ==> java.util.List.add(E)
+ Line 48) superclasses.addAll(superClass.getAllClassesAncestors()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 48) superClass.getAllClassesAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllClassesAncestors()
+ Line 51) superclasses.removeIf(s -> s.getQualifiedName().equals(Object.class.getCanonicalName())) ==> java.util.Collection.removeIf(java.util.function.Predicate<? super E>)
+ Line 51) s.getQualifiedName().equals(Object.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 51) s.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 51) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 52) superclasses.add(object()) ==> java.util.List.add(E)
+ Line 52) object() ==> com.github.javaparser.symbolsolver.logic.AbstractClassDeclaration.object()
+ Line 60) getInterfaces() ==> com.github.javaparser.symbolsolver.model.declarations.ClassDeclaration.getInterfaces()
+ Line 61) interfaces.add(interfaceDeclaration) ==> java.util.List.add(E)
+ Line 62) interfaces.addAll(interfaceDeclaration.getAllInterfacesAncestors()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 62) interfaceDeclaration.getAllInterfacesAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllInterfacesAncestors()
+ Line 64) this.getSuperClass() ==> com.github.javaparser.symbolsolver.model.declarations.ClassDeclaration.getSuperClass()
+ Line 66) interfaces.addAll(superClass.getAllInterfacesAncestors()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 66) superClass.getAllInterfacesAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllInterfacesAncestors()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_AbstractTypeDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_AbstractTypeDeclaration.txt
new file mode 100644
index 000000000..da18ef9da
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_AbstractTypeDeclaration.txt
@@ -0,0 +1,13 @@
+ Line 42) getDeclaredMethods() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getDeclaredMethods()
+ Line 43) methods.add(new MethodUsage(methodDeclaration)) ==> java.util.Set.add(E)
+ Line 44) methodsSignatures.add(methodDeclaration.getSignature()) ==> java.util.Set.add(E)
+ Line 44) methodDeclaration.getSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getSignature()
+ Line 47) getAllAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllAncestors()
+ Line 48) ancestor.getDeclaredMethods() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getDeclaredMethods()
+ Line 49) mu.getDeclaration().getSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getSignature()
+ Line 49) mu.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 50) methodsSignatures.contains(signature) ==> java.util.Set.contains(java.lang.Object)
+ Line 51) methodsSignatures.add(signature) ==> java.util.Set.add(E)
+ Line 52) methods.add(mu) ==> java.util.Set.add(E)
+ Line 62) FunctionalInterfaceLogic.getFunctionalMethod(this).isPresent() ==> java.util.Optional.isPresent()
+ Line 62) FunctionalInterfaceLogic.getFunctionalMethod(this) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.getFunctionalMethod(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_ConfilictingGenericTypesException.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_ConfilictingGenericTypesException.txt
new file mode 100644
index 000000000..a8f5cffc3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_ConfilictingGenericTypesException.txt
@@ -0,0 +1 @@
+ Line 11) String.format("No matching between %s (formal) and %s (actual)", formalType, actualType) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_FunctionalInterfaceLogic.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_FunctionalInterfaceLogic.txt
new file mode 100644
index 000000000..c135988a4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_FunctionalInterfaceLogic.txt
@@ -0,0 +1,42 @@
+ Line 44) type.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 44) type.asReferenceType().getTypeDeclaration().isInterface() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isInterface()
+ Line 44) type.asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 44) type.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 45) getFunctionalMethod(type.asReferenceType().getTypeDeclaration()) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.getFunctionalMethod(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 45) type.asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 45) type.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 47) Optional.empty() ==> java.util.Optional.empty()
+ Line 56) typeDeclaration.getAllMethods().stream().filter(m -> m.getDeclaration().isAbstract()).filter(m -> !declaredOnObject(m)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 56) typeDeclaration.getAllMethods().stream().filter(m -> m.getDeclaration().isAbstract()).filter(m -> !declaredOnObject(m)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 56) typeDeclaration.getAllMethods().stream().filter(m -> m.getDeclaration().isAbstract()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 56) typeDeclaration.getAllMethods().stream() ==> java.util.Collection.stream()
+ Line 56) typeDeclaration.getAllMethods() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllMethods()
+ Line 57) m.getDeclaration().isAbstract() ==> com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration.isAbstract()
+ Line 57) m.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
+ Line 60) declaredOnObject(m) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.declaredOnObject(com.github.javaparser.symbolsolver.model.methods.MethodUsage)
+ Line 61) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 63) methods.size() ==> java.util.Set.size()
+ Line 64) Optional.of(methods.iterator().next()) ==> java.util.Optional.of(T)
+ Line 64) methods.iterator().next() ==> java.util.Iterator.next()
+ Line 64) methods.iterator() ==> java.util.Set.iterator()
+ Line 66) Optional.empty() ==> java.util.Optional.empty()
+ Line 71) String.format("%s(%s)", m.getName(), String.join(", ", Arrays.stream(m.getParameters()).map(p -> toSignature(p)).collect(Collectors.toList()))) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 71) m.getName() ==> java.lang.reflect.Method.getName()
+ Line 71) String.join(", ", Arrays.stream(m.getParameters()).map(p -> toSignature(p)).collect(Collectors.toList())) ==> java.lang.String.join(java.lang.CharSequence, java.lang.Iterable<? extends java.lang.CharSequence>)
+ Line 71) Arrays.stream(m.getParameters()).map(p -> toSignature(p)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 71) Arrays.stream(m.getParameters()).map(p -> toSignature(p)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 71) Arrays.stream(m.getParameters()) ==> java.util.Arrays.stream(T[])
+ Line 71) m.getParameters() ==> java.lang.reflect.Executable.getParameters()
+ Line 71) toSignature(p) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.toSignature(java.lang.reflect.Parameter)
+ Line 71) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 75) p.getType().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 75) p.getType() ==> java.lang.reflect.Parameter.getType()
+ Line 78) Arrays.stream(Object.class.getDeclaredMethods()).map(method -> getSignature(method)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 78) Arrays.stream(Object.class.getDeclaredMethods()).map(method -> getSignature(method)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 78) Arrays.stream(Object.class.getDeclaredMethods()) ==> java.util.Arrays.stream(T[])
+ Line 78) Object.class.getDeclaredMethods() ==> java.lang.Class.getDeclaredMethods()
+ Line 79) getSignature(method) ==> com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic.getSignature(java.lang.reflect.Method)
+ Line 80) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 83) OBJECT_METHODS_SIGNATURES.contains(m.getDeclaration().getSignature()) ==> java.util.List.contains(java.lang.Object)
+ Line 83) m.getDeclaration().getSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getSignature()
+ Line 83) m.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_InferenceContext.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_InferenceContext.txt
new file mode 100644
index 000000000..bf51adea5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_InferenceContext.txt
@@ -0,0 +1,169 @@
+ Line 44) inferenceVariableTypeMap.containsKey(tp.getName()) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 44) tp.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 46) inferenceVariableTypes.add(inferenceVariableType) ==> java.util.List.add(E)
+ Line 47) inferenceVariableType.setCorrespondingTp(tp) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.setCorrespondingTp(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 48) inferenceVariableTypeMap.put(tp.getName(), inferenceVariableType) ==> java.util.Map.put(K, V)
+ Line 48) tp.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 50) inferenceVariableTypeMap.get(tp.getName()) ==> java.util.Map.get(java.lang.Object)
+ Line 50) tp.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 58) placeInferenceVariables(target) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.placeInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 59) placeInferenceVariables(actual) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.placeInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 60) registerCorrespondance(target, actual) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.registerCorrespondance(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 65) placeInferenceVariables(actual) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.placeInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 69) formalType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 69) actualType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 70) formalType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 71) actualType.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 73) formalTypeAsReference.getQualifiedName().equals(actualTypeAsReference.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 73) formalTypeAsReference.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 73) actualTypeAsReference.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 74) actualTypeAsReference.getAllAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllAncestors()
+ Line 75) formalTypeAsReference.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 76) ancestors.stream().filter((a) -> a.getQualifiedName().equals(formalParamTypeQName)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 76) ancestors.stream().filter((a) -> a.getQualifiedName().equals(formalParamTypeQName)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 76) ancestors.stream() ==> java.util.Collection.stream()
+ Line 76) a.getQualifiedName().equals(formalParamTypeQName) ==> java.lang.String.equals(java.lang.Object)
+ Line 76) a.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 76) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 77) correspondingFormalType.isEmpty() ==> java.util.List.isEmpty()
+ Line 78) formalTypeAsReference.getAllAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllAncestors()
+ Line 79) actualTypeAsReference.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 80) ancestors.stream().filter(a -> a.getQualifiedName().equals(actualParamTypeQname)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 80) ancestors.stream().filter(a -> a.getQualifiedName().equals(actualParamTypeQname)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 80) ancestors.stream() ==> java.util.Collection.stream()
+ Line 80) a.getQualifiedName().equals(actualParamTypeQname) ==> java.lang.String.equals(java.lang.Object)
+ Line 80) a.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 80) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 81) correspondingActualType.isEmpty() ==> java.util.List.isEmpty()
+ Line 87) correspondingFormalType.get(0).asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 87) correspondingFormalType.get(0) ==> java.util.List.get(int)
+ Line 90) formalTypeAsReference.getQualifiedName().equals(actualTypeAsReference.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 90) formalTypeAsReference.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 90) actualTypeAsReference.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 91) formalTypeAsReference.typeParametersValues().isEmpty() ==> java.util.List.isEmpty()
+ Line 91) formalTypeAsReference.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 92) actualTypeAsReference.isRawType() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.isRawType()
+ Line 96) formalTypeAsReference.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 97) registerCorrespondance(formalTypeParameter, actualTypeAsReference.typeParametersValues().get(i)) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.registerCorrespondance(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 97) actualTypeAsReference.typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 97) actualTypeAsReference.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 103) actualType.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 104) ((InferenceVariableType) formalType).registerEquivalentType(actualType) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.registerEquivalentType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 106) ((InferenceVariableType) actualType).registerEquivalentType(formalType) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.registerEquivalentType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 108) actualType.isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 110) actualType.equals(formalType) ==> java.lang.Object.equals(java.lang.Object)
+ Line 112) actualType.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 112) formalType.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 113) registerCorrespondance(formalType.asArrayType().getComponentType(), actualType.asArrayType().getComponentType()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.registerCorrespondance(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 113) formalType.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 113) formalType.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 113) actualType.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 113) actualType.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 114) formalType.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 116) formalType.asWildcard().isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 116) formalType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 117) ((InferenceVariableType) actualType).registerEquivalentType(formalType.asWildcard().getBoundedType()) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.registerEquivalentType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 117) formalType.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 117) formalType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 118) formalType.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 118) formalType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 119) ((InferenceVariableType) formalType.asWildcard().getBoundedType()).registerEquivalentType(actualType) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.registerEquivalentType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 119) formalType.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 119) formalType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 122) actualType.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 123) formalType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 124) actualType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 125) formalWildcard.isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 125) formalWildcard.getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 126) formalWildcard.isSuper() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isSuper()
+ Line 126) actualWildcard.isSuper() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isSuper()
+ Line 127) ((InferenceVariableType) formalType.asWildcard().getBoundedType()).registerEquivalentType(actualWildcard.getBoundedType()) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.registerEquivalentType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 127) formalType.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 127) formalType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 127) actualWildcard.getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 128) formalWildcard.isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 128) actualWildcard.isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 129) ((InferenceVariableType) formalType.asWildcard().getBoundedType()).registerEquivalentType(actualWildcard.getBoundedType()) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.registerEquivalentType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 129) formalType.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 129) formalType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 129) actualWildcard.getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 134) actualType.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 135) formalType.asWildcard().isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 135) formalType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 136) registerCorrespondance(formalType.asWildcard().getBoundedType(), actualType) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.registerCorrespondance(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 136) formalType.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 136) formalType.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 141) ((InferenceVariableType) actualType).registerEquivalentType(formalType) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.registerEquivalentType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 143) ((InferenceVariableType) actualType).registerEquivalentType(formalType) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.registerEquivalentType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 145) actualType.isConstraint() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isConstraint()
+ Line 146) actualType.asConstraintType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asConstraintType()
+ Line 147) constraintType.getBound() ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.getBound()
+ Line 148) ((InferenceVariableType) constraintType.getBound()).registerEquivalentType(formalType) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.registerEquivalentType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 148) constraintType.getBound() ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.getBound()
+ Line 150) actualType.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 151) formalType.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 154) registerCorrespondance(formalType, objectProvider.byName(actualType.asPrimitive().getBoxTypeQName())) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.registerCorrespondance(com.github.javaparser.symbolsolver.model.typesystem.Type, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 154) objectProvider.byName(actualType.asPrimitive().getBoxTypeQName()) ==> com.github.javaparser.symbolsolver.logic.ObjectProvider.byName(java.lang.String)
+ Line 154) actualType.asPrimitive().getBoxTypeQName() ==> com.github.javaparser.symbolsolver.model.typesystem.PrimitiveType.getBoxTypeQName()
+ Line 154) actualType.asPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asPrimitive()
+ Line 157) formalType.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 157) actualType.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 162) type.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 163) type.asWildcard().isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 163) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 164) Wildcard.extendsBound(placeInferenceVariables(type.asWildcard().getBoundedType())) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 164) placeInferenceVariables(type.asWildcard().getBoundedType()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.placeInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 164) type.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 164) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 165) type.asWildcard().isSuper() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isSuper()
+ Line 165) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 166) Wildcard.superBound(placeInferenceVariables(type.asWildcard().getBoundedType())) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.superBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 166) placeInferenceVariables(type.asWildcard().getBoundedType()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.placeInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 166) type.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 166) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 170) type.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 171) inferenceVariableTypeForTp(type.asTypeParameter()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.inferenceVariableTypeForTp(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 171) type.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 172) type.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 173) type.asReferenceType().transformTypeParameters(tp -> placeInferenceVariables(tp)) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.transformTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.TypeTransformer)
+ Line 173) type.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 173) placeInferenceVariables(tp) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.placeInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 174) type.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 175) placeInferenceVariables(type.asArrayType().getComponentType()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.placeInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 175) type.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 175) type.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 176) type.isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 176) type.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 176) type.isVoid() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isVoid()
+ Line 178) type.isConstraint() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isConstraint()
+ Line 179) LambdaConstraintType.bound(placeInferenceVariables(type.asConstraintType().getBound())) ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.bound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 179) placeInferenceVariables(type.asConstraintType().getBound()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.placeInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 179) type.asConstraintType().getBound() ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.getBound()
+ Line 179) type.asConstraintType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asConstraintType()
+ Line 183) type.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 190) inferenceVariableType.equivalentType() ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.equivalentType()
+ Line 191) type.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 192) type.asReferenceType().transformTypeParameters(tp -> resolve(tp)) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.transformTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.TypeTransformer)
+ Line 192) type.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 192) resolve(tp) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 193) type.isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 193) type.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 193) type.isVoid() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isVoid()
+ Line 195) type.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 196) resolve(type.asArrayType().getComponentType()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 196) type.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 196) type.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 197) type.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 198) type.asWildcard().isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 198) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 199) Wildcard.extendsBound(resolve(type.asWildcard().getBoundedType())) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 199) resolve(type.asWildcard().getBoundedType()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 199) type.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 199) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 200) type.asWildcard().isSuper() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isSuper()
+ Line 200) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 201) Wildcard.superBound(resolve(type.asWildcard().getBoundedType())) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.superBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 201) resolve(type.asWildcard().getBoundedType()) ==> com.github.javaparser.symbolsolver.logic.InferenceContext.resolve(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 201) type.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 201) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 206) type.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_InferenceVariableType.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_InferenceVariableType.txt
new file mode 100644
index 000000000..1cfbf6ad1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_InferenceVariableType.txt
@@ -0,0 +1,53 @@
+ Line 53) this.equivalentTypes.add(type) ==> java.util.Set.add(E)
+ Line 81) wildcard.isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 82) inferenceVariableType.superTypes.add(wildcard.getBoundedType()) ==> java.util.Set.add(E)
+ Line 82) wildcard.getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 84) wildcard.isSuper() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isSuper()
+ Line 86) inferenceVariableType.superTypes.add(wildcard.getBoundedType()) ==> java.util.Set.add(E)
+ Line 86) wildcard.getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 102) considered.add(inferenceVariableType) ==> java.util.Set.add(E)
+ Line 104) result.addAll(inferenceVariableType.equivalentTypes.stream().filter(t -> !t.isTypeVariable() && !(t instanceof InferenceVariableType)).collect(Collectors.toSet())) ==> java.util.Set.addAll(java.util.Collection<? extends E>)
+ Line 104) inferenceVariableType.equivalentTypes.stream().filter(t -> !t.isTypeVariable() && !(t instanceof InferenceVariableType)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 104) inferenceVariableType.equivalentTypes.stream().filter(t -> !t.isTypeVariable() && !(t instanceof InferenceVariableType)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 104) inferenceVariableType.equivalentTypes.stream() ==> java.util.Collection.stream()
+ Line 104) t.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 104) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 105) inferenceVariableType.equivalentTypes.stream().filter(t -> t instanceof InferenceVariableType).forEach(t -> {
+ InferenceVariableType ivt = (InferenceVariableType) t;
+ if (!considered.contains(ivt)) {
+ result.addAll(concreteEquivalentTypesAlsoIndirectly(considered, ivt));
+ }
+}) ==> java.util.stream.Stream.forEach(java.util.function.Consumer<? super T>)
+ Line 105) inferenceVariableType.equivalentTypes.stream().filter(t -> t instanceof InferenceVariableType) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 105) inferenceVariableType.equivalentTypes.stream() ==> java.util.Collection.stream()
+ Line 107) considered.contains(ivt) ==> java.util.Set.contains(java.lang.Object)
+ Line 108) result.addAll(concreteEquivalentTypesAlsoIndirectly(considered, ivt)) ==> java.util.Set.addAll(java.util.Collection<? extends E>)
+ Line 108) concreteEquivalentTypesAlsoIndirectly(considered, ivt) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.concreteEquivalentTypesAlsoIndirectly(java.util.Set<com.github.javaparser.symbolsolver.logic.InferenceVariableType>, com.github.javaparser.symbolsolver.logic.InferenceVariableType)
+ Line 115) concreteEquivalentTypesAlsoIndirectly(new HashSet<>(), this) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.concreteEquivalentTypesAlsoIndirectly(java.util.Set<com.github.javaparser.symbolsolver.logic.InferenceVariableType>, com.github.javaparser.symbolsolver.logic.InferenceVariableType)
+ Line 116) concreteEquivalent.isEmpty() ==> java.util.Set.isEmpty()
+ Line 118) objectProvider.object() ==> com.github.javaparser.symbolsolver.logic.ObjectProvider.object()
+ Line 123) concreteEquivalent.size() ==> java.util.Set.size()
+ Line 124) concreteEquivalent.iterator().next() ==> java.util.Iterator.next()
+ Line 124) concreteEquivalent.iterator() ==> java.util.Set.iterator()
+ Line 126) equivalentTypes.stream().filter(t -> !t.isTypeVariable() && !hasInferenceVariables(t)).collect(Collectors.toSet()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 126) equivalentTypes.stream().filter(t -> !t.isTypeVariable() && !hasInferenceVariables(t)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 126) equivalentTypes.stream() ==> java.util.Collection.stream()
+ Line 127) t.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 127) hasInferenceVariables(t) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.hasInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 128) Collectors.toSet() ==> java.util.stream.Collectors.toSet()
+ Line 129) notTypeVariables.size() ==> java.util.Set.size()
+ Line 130) notTypeVariables.iterator().next() ==> java.util.Iterator.next()
+ Line 130) notTypeVariables.iterator() ==> java.util.Set.iterator()
+ Line 131) notTypeVariables.size() ==> java.util.Set.size()
+ Line 131) superTypes.isEmpty() ==> java.util.Set.isEmpty()
+ Line 132) superTypes.size() ==> java.util.Set.size()
+ Line 133) superTypes.iterator().next() ==> java.util.Iterator.next()
+ Line 133) superTypes.iterator() ==> java.util.Set.iterator()
+ Line 147) type.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 148) type.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 149) refType.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 150) hasInferenceVariables(t) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.hasInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 157) type.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 158) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 159) hasInferenceVariables(wildcardType.getBoundedType()) ==> com.github.javaparser.symbolsolver.logic.InferenceVariableType.hasInferenceVariables(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 159) wildcardType.getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_ObjectProvider.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_ObjectProvider.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-logic/com_github_javaparser_symbolsolver_logic_ObjectProvider.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_AccessLevel.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_AccessLevel.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_AccessLevel.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_AnnotationDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_AnnotationDeclaration.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_AnnotationDeclaration.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ClassDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ClassDeclaration.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ClassDeclaration.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ConstructorDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ConstructorDeclaration.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ConstructorDeclaration.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_Declaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_Declaration.txt
new file mode 100644
index 000000000..ad953312a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_Declaration.txt
@@ -0,0 +1,4 @@
+ Line 70) String.format("%s is not a FieldDeclaration", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 77) String.format("%s is not a ParameterDeclaration", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 84) String.format("%s is not a TypeDeclaration", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 91) String.format("%s is not a MethodDeclaration", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_EnumDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_EnumDeclaration.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_EnumDeclaration.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_FieldDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_FieldDeclaration.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_FieldDeclaration.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_HasAccessLevel.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_HasAccessLevel.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_HasAccessLevel.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_InterfaceDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_InterfaceDeclaration.txt
new file mode 100644
index 000000000..146d79b6b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_InterfaceDeclaration.txt
@@ -0,0 +1,4 @@
+ Line 46) getInterfacesExtended() ==> com.github.javaparser.symbolsolver.model.declarations.InterfaceDeclaration.getInterfacesExtended()
+ Line 47) interfaces.add(interfaceDeclaration) ==> java.util.List.add(E)
+ Line 48) interfaces.addAll(interfaceDeclaration.getAllInterfacesAncestors()) ==> java.util.List.addAll(java.util.Collection<? extends E>)
+ Line 48) interfaceDeclaration.getAllInterfacesAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllInterfacesAncestors()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodAmbiguityException.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodAmbiguityException.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodAmbiguityException.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodDeclaration.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodDeclaration.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodLikeDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodLikeDeclaration.txt
new file mode 100644
index 000000000..8e49e3506
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_MethodLikeDeclaration.txt
@@ -0,0 +1,33 @@
+ Line 31) declaringType().getPackageName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getPackageName()
+ Line 31) declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
+ Line 38) declaringType().getClassName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getClassName()
+ Line 38) declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
+ Line 46) declaringType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 46) declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
+ Line 46) this.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 54) sb.append(getName()) ==> java.lang.StringBuffer.append(java.lang.String)
+ Line 54) getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 55) sb.append("(") ==> java.lang.StringBuffer.append(java.lang.String)
+ Line 56) getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 58) sb.append(", ") ==> java.lang.StringBuffer.append(java.lang.String)
+ Line 60) sb.append(getParam(i).describeType()) ==> java.lang.StringBuffer.append(java.lang.String)
+ Line 60) getParam(i).describeType() ==> com.github.javaparser.symbolsolver.model.declarations.ParameterDeclaration.describeType()
+ Line 60) getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 62) sb.append(")") ==> java.lang.StringBuffer.append(java.lang.String)
+ Line 63) sb.toString() ==> java.lang.StringBuffer.toString()
+ Line 71) declaringType().getId() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getId()
+ Line 71) declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
+ Line 71) this.getSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getSignature()
+ Line 95) getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 98) getParam(getNumberOfParams() - 1) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 98) getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 106) getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 109) getParam(getNumberOfParams() - 1).isVariadic() ==> com.github.javaparser.symbolsolver.model.declarations.ParameterDeclaration.isVariadic()
+ Line 109) getParam(getNumberOfParams() - 1) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 109) getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 115) this.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 116) tp.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 116) tp.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 117) Optional.of(tp) ==> java.util.Optional.of(T)
+ Line 120) declaringType().findTypeParameter(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.findTypeParameter(java.lang.String)
+ Line 120) declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ParameterDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ParameterDeclaration.txt
new file mode 100644
index 000000000..753e4a85a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ParameterDeclaration.txt
@@ -0,0 +1,7 @@
+ Line 46) isVariadic() ==> com.github.javaparser.symbolsolver.model.declarations.ParameterDeclaration.isVariadic()
+ Line 47) getType().asArrayType().getComponentType().describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 47) getType().asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 47) getType().asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 47) getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 49) getType().describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 49) getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ReferenceTypeDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ReferenceTypeDeclaration.txt
new file mode 100644
index 000000000..85c361102
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ReferenceTypeDeclaration.txt
@@ -0,0 +1,85 @@
+ Line 45) Object.class.getCanonicalName().equals(getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 45) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 45) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 46) getAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAncestors()
+ Line 47) ancestors.add(ancestor) ==> java.util.List.add(E)
+ Line 48) ancestor.getAllAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllAncestors()
+ Line 49) ancestors.contains(inheritedAncestor) ==> java.util.List.contains(java.lang.Object)
+ Line 50) ancestors.add(inheritedAncestor) ==> java.util.List.add(E)
+ Line 74) this.getAllFields().stream().filter(f -> f.getName().equals(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 74) this.getAllFields().stream().filter(f -> f.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 74) this.getAllFields().stream() ==> java.util.Collection.stream()
+ Line 74) this.getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 74) f.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 74) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 75) field.isPresent() ==> java.util.Optional.isPresent()
+ Line 76) field.get() ==> java.util.Optional.get()
+ Line 86) getVisibleFields().stream().filter(f -> f.getName().equals(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 86) getVisibleFields().stream().filter(f -> f.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 86) getVisibleFields().stream() ==> java.util.Collection.stream()
+ Line 86) getVisibleFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getVisibleFields()
+ Line 86) f.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 86) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 87) field.isPresent() ==> java.util.Optional.isPresent()
+ Line 88) field.get() ==> java.util.Optional.get()
+ Line 98) this.getAllFields().stream().filter(f -> f.getName().equals(name)).findFirst().isPresent() ==> java.util.Optional.isPresent()
+ Line 98) this.getAllFields().stream().filter(f -> f.getName().equals(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 98) this.getAllFields().stream().filter(f -> f.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 98) this.getAllFields().stream() ==> java.util.Collection.stream()
+ Line 98) this.getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 98) f.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 98) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 105) getVisibleFields().stream().filter(f -> f.getName().equals(name)).findFirst().isPresent() ==> java.util.Optional.isPresent()
+ Line 105) getVisibleFields().stream().filter(f -> f.getName().equals(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 105) getVisibleFields().stream().filter(f -> f.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 105) getVisibleFields().stream() ==> java.util.Collection.stream()
+ Line 105) getVisibleFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getVisibleFields()
+ Line 105) f.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 105) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 119) getAllFields().stream().filter(f -> f.declaringType().equals(this) || f.accessLevel() != AccessLevel.PRIVATE).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 119) getAllFields().stream().filter(f -> f.declaringType().equals(this) || f.accessLevel() != AccessLevel.PRIVATE) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 119) getAllFields().stream() ==> java.util.Collection.stream()
+ Line 119) getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 120) f.declaringType().equals(this) ==> java.lang.Object.equals(java.lang.Object)
+ Line 120) f.declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.FieldDeclaration.declaringType()
+ Line 120) f.accessLevel() ==> com.github.javaparser.symbolsolver.model.declarations.HasAccessLevel.accessLevel()
+ Line 121) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 128) getAllFields().stream().filter(it -> !it.isStatic()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 128) getAllFields().stream().filter(it -> !it.isStatic()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 128) getAllFields().stream() ==> java.util.Collection.stream()
+ Line 128) getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 128) it.isStatic() ==> com.github.javaparser.symbolsolver.model.declarations.FieldDeclaration.isStatic()
+ Line 128) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 135) getAllFields().stream().filter(it -> it.isStatic()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 135) getAllFields().stream().filter(it -> it.isStatic()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 135) getAllFields().stream() ==> java.util.Collection.stream()
+ Line 135) getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 135) it.isStatic() ==> com.github.javaparser.symbolsolver.model.declarations.FieldDeclaration.isStatic()
+ Line 135) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 142) getAllFields().stream().filter(it -> it.declaringType().getQualifiedName().equals(getQualifiedName())).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 142) getAllFields().stream().filter(it -> it.declaringType().getQualifiedName().equals(getQualifiedName())) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 142) getAllFields().stream() ==> java.util.Collection.stream()
+ Line 142) getAllFields() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllFields()
+ Line 142) it.declaringType().getQualifiedName().equals(getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 142) it.declaringType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 142) it.declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.FieldDeclaration.declaringType()
+ Line 142) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 142) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 175) other.isAssignableBy(this) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.isAssignableBy(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 197) hasDirectlyAnnotation(qualifiedName) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasDirectlyAnnotation(java.lang.String)
+ Line 200) getAllAncestors().stream().anyMatch(it -> it.asReferenceType().getTypeDeclaration().hasDirectlyAnnotation(qualifiedName)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 200) getAllAncestors().stream() ==> java.util.Collection.stream()
+ Line 200) getAllAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllAncestors()
+ Line 200) it.asReferenceType().getTypeDeclaration().hasDirectlyAnnotation(qualifiedName) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasDirectlyAnnotation(java.lang.String)
+ Line 200) it.asReferenceType().getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 200) it.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.asReferenceType()
+ Line 215) this.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 216) tp.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 216) tp.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 217) Optional.of(tp) ==> java.util.Optional.of(T)
+ Line 220) this.containerType().isPresent() ==> java.util.Optional.isPresent()
+ Line 220) this.containerType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.containerType()
+ Line 221) this.containerType().get().findTypeParameter(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.findTypeParameter(java.lang.String)
+ Line 221) this.containerType().get() ==> java.util.Optional.get()
+ Line 221) this.containerType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.containerType()
+ Line 223) Optional.empty() ==> java.util.Optional.empty()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeDeclaration.txt
new file mode 100644
index 000000000..252494284
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeDeclaration.txt
@@ -0,0 +1,22 @@
+ Line 40) this.getClass().getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 40) this.getClass() ==> java.lang.Object.getClass()
+ Line 49) this.internalTypes().stream().filter(f -> f.getName().equals(name)).findFirst() ==> java.util.stream.Stream.findFirst()
+ Line 49) this.internalTypes().stream().filter(f -> f.getName().equals(name)) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 49) this.internalTypes().stream() ==> java.util.Collection.stream()
+ Line 49) this.internalTypes() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.internalTypes()
+ Line 49) f.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 49) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 50) type.orElseThrow(() -> new UnsolvedSymbolException("Internal type not found: " + name)) ==> java.util.Optional.orElseThrow(java.util.function.Supplier<? extends X>)
+ Line 59) this.internalTypes().stream().anyMatch(f -> f.getName().equals(name)) ==> java.util.stream.Stream.anyMatch(java.util.function.Predicate<? super T>)
+ Line 59) this.internalTypes().stream() ==> java.util.Collection.stream()
+ Line 59) this.internalTypes() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.internalTypes()
+ Line 59) f.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 59) f.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 116) String.format("%s is not a class", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 123) String.format("%s is not an interface", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 130) String.format("%s is not an enum", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 137) String.format("%s is not a type parameter", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 141) String.format("%s is not a reference type", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 164) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 166) String.format("<localClass>:%s", getName()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 166) getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeParameterDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeParameterDeclaration.txt
new file mode 100644
index 000000000..13ee41c11
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeParameterDeclaration.txt
@@ -0,0 +1,7 @@
+ Line 104) getContainer() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getContainer()
+ Line 111) getContainer() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getContainer()
+ Line 118) getContainer() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getContainer()
+ Line 143) String.format("%s.%s", getContainerId(), getName()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 143) getContainerId() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getContainerId()
+ Line 143) getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 218) isExtends() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.isExtends()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeParametrizable.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeParametrizable.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_TypeParametrizable.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ValueDeclaration.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ValueDeclaration.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_declarations_ValueDeclaration.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_methods_MethodUsage.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_methods_MethodUsage.txt
new file mode 100644
index 000000000..f63d08cf0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_methods_MethodUsage.txt
@@ -0,0 +1,24 @@
+ Line 41) TypeParametersMap.empty() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.empty()
+ Line 43) declaration.getNumberOfParams() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getNumberOfParams()
+ Line 44) paramTypes.add(declaration.getParam(i).getType()) ==> java.util.List.add(E)
+ Line 44) declaration.getParam(i).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 44) declaration.getParam(i) ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getParam(int)
+ Line 46) declaration.getReturnType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration.getReturnType()
+ Line 50) TypeParametersMap.empty() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.empty()
+ Line 73) declaration.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
+ Line 77) declaration.declaringType() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.declaringType()
+ Line 89) paramTypes.get(i) ==> java.util.List.get(int)
+ Line 93) newParams.set(i, replaced) ==> java.util.List.set(int, E)
+ Line 109) paramTypes.size() ==> java.util.List.size()
+ Line 116) paramTypes.get(i) ==> java.util.List.get(int)
+ Line 125) typeParametersMap.toBuilder().setValue(typeParameter, type).build() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.Builder.build()
+ Line 125) typeParametersMap.toBuilder().setValue(typeParameter, type) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.Builder.setValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 125) typeParametersMap.toBuilder() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.toBuilder()
+ Line 128) paramTypes.size() ==> java.util.List.size()
+ Line 129) paramTypes.get(i) ==> java.util.List.get(int)
+ Line 130) originalParamType.replaceTypeVariables(typeParameter, type, inferredTypes) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 131) res.replaceParamType(i, newParamType) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceParamType(int, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 134) oldReturnType.replaceTypeVariables(typeParameter, type, inferredTypes) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 135) res.replaceReturnType(newReturnType) ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.replaceReturnType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 146) this.getDeclaration().getQualifiedSignature() ==> com.github.javaparser.symbolsolver.model.declarations.MethodLikeDeclaration.getQualifiedSignature()
+ Line 146) this.getDeclaration() ==> com.github.javaparser.symbolsolver.model.methods.MethodUsage.getDeclaration()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_SymbolReference.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_SymbolReference.txt
new file mode 100644
index 000000000..02d4e1951
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_SymbolReference.txt
@@ -0,0 +1,9 @@
+ Line 41) Optional.of(symbolDeclaration) ==> java.util.Optional.of(T)
+ Line 48) Optional.<S>empty() ==> java.util.Optional.empty()
+ Line 60) isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 63) correspondingDeclaration.get() ==> java.util.Optional.get()
+ Line 70) correspondingDeclaration.isPresent() ==> java.util.Optional.isPresent()
+ Line 74) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 75) SymbolReference.solved(ref.getCorrespondingDeclaration()) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.solved(S2)
+ Line 75) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
+ Line 77) SymbolReference.unsolved(clazz) ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.unsolved(java.lang.Class<S2>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_TypeSolver.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_TypeSolver.txt
new file mode 100644
index 000000000..e51384383
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_TypeSolver.txt
@@ -0,0 +1,6 @@
+ Line 33) getParent() ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.getParent()
+ Line 36) getParent().getRoot() ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.getRoot()
+ Line 36) getParent() ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.getParent()
+ Line 60) tryToSolveType(name) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.tryToSolveType(java.lang.String)
+ Line 61) ref.isSolved() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.isSolved()
+ Line 62) ref.getCorrespondingDeclaration() ==> com.github.javaparser.symbolsolver.model.resolution.SymbolReference.getCorrespondingDeclaration()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_UnsolvedSymbolException.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_UnsolvedSymbolException.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_UnsolvedSymbolException.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_Value.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_Value.txt
new file mode 100644
index 000000000..22635bdd4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_resolution_Value.txt
@@ -0,0 +1,2 @@
+ Line 40) decl.getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 41) decl.getName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.getName()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_ArrayType.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_ArrayType.txt
new file mode 100644
index 000000000..55d49717f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_ArrayType.txt
@@ -0,0 +1,18 @@
+ Line 43) getClass() ==> java.lang.Object.getClass()
+ Line 43) o.getClass() ==> java.lang.Object.getClass()
+ Line 47) baseType.equals(that.baseType) ==> java.lang.Object.equals(java.lang.Object)
+ Line 54) baseType.hashCode() ==> java.lang.Object.hashCode()
+ Line 78) baseType.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 87) other.isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 88) baseType.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 88) other.asArrayType().getComponentType().isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 88) other.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 88) other.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 89) baseType.equals(other.asArrayType().getComponentType()) ==> java.lang.Object.equals(java.lang.Object)
+ Line 89) other.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 89) other.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 91) baseType.isAssignableBy(other.asArrayType().getComponentType()) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 91) other.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 91) other.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 92) other.isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 100) baseType.replaceTypeVariables(tpToReplace, replaced, inferredTypes) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_LambdaConstraintType.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_LambdaConstraintType.txt
new file mode 100644
index 000000000..e6dd2a31a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_LambdaConstraintType.txt
@@ -0,0 +1,2 @@
+ Line 12) bound.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 35) bound.isAssignableBy(other) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_NullType.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_NullType.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_NullType.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_PrimitiveType.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_PrimitiveType.txt
new file mode 100644
index 000000000..723b5f5d0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_PrimitiveType.txt
@@ -0,0 +1,33 @@
+ Line 32) Byte.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 32) ImmutableList.of() ==> com.google.common.collect.ImmutableList.of()
+ Line 33) Short.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 33) ImmutableList.of(BYTE) ==> com.google.common.collect.ImmutableList.of(E)
+ Line 34) Character.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 34) ImmutableList.of() ==> com.google.common.collect.ImmutableList.of()
+ Line 35) Integer.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 35) ImmutableList.of(BYTE, SHORT, CHAR) ==> com.google.common.collect.ImmutableList.of(E, E, E)
+ Line 36) Long.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 36) ImmutableList.of(BYTE, SHORT, INT, CHAR) ==> com.google.common.collect.ImmutableList.of(E, E, E, E)
+ Line 37) Boolean.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 37) ImmutableList.of() ==> com.google.common.collect.ImmutableList.of()
+ Line 38) Float.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 38) ImmutableList.of(LONG, INT, SHORT, BYTE, CHAR) ==> com.google.common.collect.ImmutableList.of(E, E, E, E, E)
+ Line 39) Double.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 39) ImmutableList.of(FLOAT, LONG, INT, SHORT, BYTE, CHAR) ==> com.google.common.collect.ImmutableList.of(E, E, E, E, E, E)
+ Line 40) ImmutableList.of(INT, BOOLEAN, LONG, CHAR, FLOAT, DOUBLE, SHORT, BYTE) ==> com.google.common.collect.ImmutableList.of(E, E, E, E, E, E, E, E)
+ Line 57) name.toLowerCase() ==> java.lang.String.toLowerCase()
+ Line 59) ptu.describe().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 59) ptu.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.PrimitiveType.describe()
+ Line 104) other.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 105) promotionTypes.contains(other) ==> java.util.List.contains(java.lang.Object)
+ Line 106) other.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 107) other.asReferenceType().getQualifiedName().equals(boxTypeQName) ==> java.lang.String.equals(java.lang.Object)
+ Line 107) other.asReferenceType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 107) other.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 111) other.asReferenceType().getQualifiedName().equals(promotion.boxTypeQName) ==> java.lang.String.equals(java.lang.Object)
+ Line 111) other.asReferenceType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 111) other.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 116) other.isConstraint() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isConstraint()
+ Line 117) this.isAssignableBy(other.asConstraintType().getBound()) ==> com.github.javaparser.symbolsolver.model.typesystem.PrimitiveType.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 117) other.asConstraintType().getBound() ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.getBound()
+ Line 117) other.asConstraintType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asConstraintType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_PrimitiveType_J9.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_PrimitiveType_J9.txt
new file mode 100644
index 000000000..57a7c2a04
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_PrimitiveType_J9.txt
@@ -0,0 +1,33 @@
+ Line 32) Byte.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 32) ImmutableList.of() ==> com.google.common.collect.ImmutableList.of()
+ Line 33) Short.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 33) ImmutableList.of(BYTE) ==> java.util.List.of(E...)
+ Line 34) Character.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 34) ImmutableList.of() ==> com.google.common.collect.ImmutableList.of()
+ Line 35) Integer.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 35) ImmutableList.of(BYTE, SHORT, CHAR) ==> java.util.List.of(E...)
+ Line 36) Long.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 36) ImmutableList.of(BYTE, SHORT, INT, CHAR) ==> java.util.List.of(E...)
+ Line 37) Boolean.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 37) ImmutableList.of() ==> com.google.common.collect.ImmutableList.of()
+ Line 38) Float.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 38) ImmutableList.of(LONG, INT, SHORT, BYTE, CHAR) ==> java.util.List.of(E...)
+ Line 39) Double.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 39) ImmutableList.of(FLOAT, LONG, INT, SHORT, BYTE, CHAR) ==> java.util.List.of(E...)
+ Line 40) ImmutableList.of(INT, BOOLEAN, LONG, CHAR, FLOAT, DOUBLE, SHORT, BYTE) ==> java.util.List.of(E...)
+ Line 57) name.toLowerCase() ==> java.lang.String.toLowerCase()
+ Line 59) ptu.describe().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 59) ptu.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.PrimitiveType.describe()
+ Line 104) other.isPrimitive() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isPrimitive()
+ Line 105) promotionTypes.contains(other) ==> java.util.List.contains(java.lang.Object)
+ Line 106) other.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 107) other.asReferenceType().getQualifiedName().equals(boxTypeQName) ==> java.lang.String.equals(java.lang.Object)
+ Line 107) other.asReferenceType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 107) other.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 111) other.asReferenceType().getQualifiedName().equals(promotion.boxTypeQName) ==> java.lang.String.equals(java.lang.Object)
+ Line 111) other.asReferenceType().getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 111) other.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 116) other.isConstraint() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isConstraint()
+ Line 117) this.isAssignableBy(other.asConstraintType().getBound()) ==> com.github.javaparser.symbolsolver.model.typesystem.PrimitiveType.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 117) other.asConstraintType().getBound() ==> com.github.javaparser.symbolsolver.model.typesystem.LambdaConstraintType.getBound()
+ Line 117) other.asConstraintType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asConstraintType()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_ReferenceType.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_ReferenceType.txt
new file mode 100644
index 000000000..6a1895d3a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_ReferenceType.txt
@@ -0,0 +1,240 @@
+ Line 53) deriveParams(typeDeclaration) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.deriveParams(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration)
+ Line 60) typeDeclaration.isTypeParameter() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isTypeParameter()
+ Line 63) typeParameters.size() ==> java.util.List.size()
+ Line 63) typeParameters.size() ==> java.util.List.size()
+ Line 63) typeDeclaration.getTypeParameters().size() ==> java.util.List.size()
+ Line 63) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 64) String.format("expected either zero type parameters or has many as defined in the declaration (%d). Found %d", typeDeclaration.getTypeParameters().size(), typeParameters.size()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 65) typeDeclaration.getTypeParameters().size() ==> java.util.List.size()
+ Line 65) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 65) typeParameters.size() ==> java.util.List.size()
+ Line 68) typeParameters.size() ==> java.util.List.size()
+ Line 69) typeParametersMapBuilder.setValue(typeDeclaration.getTypeParameters().get(i), typeParameters.get(i)) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.Builder.setValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 69) typeDeclaration.getTypeParameters().get(i) ==> java.util.List.get(int)
+ Line 69) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 69) typeParameters.get(i) ==> java.util.List.get(int)
+ Line 71) typeParametersMapBuilder.build() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.Builder.build()
+ Line 83) getClass() ==> java.lang.Object.getClass()
+ Line 83) o.getClass() ==> java.lang.Object.getClass()
+ Line 87) typeDeclaration.equals(that.typeDeclaration) ==> java.lang.Object.equals(java.lang.Object)
+ Line 88) typeParametersMap.equals(that.typeParametersMap) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.equals(java.lang.Object)
+ Line 95) typeDeclaration.hashCode() ==> java.lang.Object.hashCode()
+ Line 96) typeParametersMap.hashCode() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.hashCode()
+ Line 102) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 132) hasName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.hasName()
+ Line 133) sb.append(typeDeclaration.getQualifiedName()) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 133) typeDeclaration.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 135) sb.append("<anonymous class>") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 137) typeParametersMap().isEmpty() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.isEmpty()
+ Line 137) typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 138) sb.append("<") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 139) sb.append(String.join(", ", typeDeclaration.getTypeParameters().stream().map(tp -> typeParametersMap().getValue(tp).describe()).collect(Collectors.toList()))) ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 139) String.join(", ", typeDeclaration.getTypeParameters().stream().map(tp -> typeParametersMap().getValue(tp).describe()).collect(Collectors.toList())) ==> java.lang.String.join(java.lang.CharSequence, java.lang.Iterable<? extends java.lang.CharSequence>)
+ Line 139) typeDeclaration.getTypeParameters().stream().map(tp -> typeParametersMap().getValue(tp).describe()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 139) typeDeclaration.getTypeParameters().stream().map(tp -> typeParametersMap().getValue(tp).describe()) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 139) typeDeclaration.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 139) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 140) typeParametersMap().getValue(tp).describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 140) typeParametersMap().getValue(tp) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 140) typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 141) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 142) sb.append(">") ==> java.lang.StringBuilder.append(java.lang.String)
+ Line 144) sb.toString() ==> java.lang.StringBuilder.toString()
+ Line 157) this.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 158) transformer.transform(tp) ==> com.github.javaparser.symbolsolver.model.typesystem.TypeTransformer.transform(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 161) result.asReferenceType().typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 161) result.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 162) typeParametersCorrected.set(i, transformedTp) ==> java.util.List.set(int, E)
+ Line 163) create(typeDeclaration, typeParametersCorrected, typeSolver) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.create(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 178) this.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 179) tp.replaceTypeVariables(tpToReplace, replaced, inferredTypes) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 181) tp.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 181) tp.asTypeVariable().describe().equals(tpToReplace.getName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 181) tp.asTypeVariable().describe() ==> com.github.javaparser.symbolsolver.model.typesystem.TypeVariable.describe()
+ Line 181) tp.asTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeVariable()
+ Line 181) tpToReplace.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 182) inferredTypes.put(tp.asTypeParameter(), replaced) ==> java.util.Map.put(K, V)
+ Line 182) tp.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 185) result.asReferenceType().typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 185) result.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.asReferenceType()
+ Line 186) typeParametersCorrected.set(i, transformedTp) ==> java.util.List.set(int, E)
+ Line 187) create(typeDeclaration, typeParametersCorrected, typeSolver) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.create(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 192) result.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 193) values.contains(tpToReplace) ==> java.util.List.contains(java.lang.Object)
+ Line 194) values.indexOf(tpToReplace) ==> java.util.List.indexOf(java.lang.Object)
+ Line 195) values.set(index, replaced) ==> java.util.List.set(int, E)
+ Line 196) create(result.getTypeDeclaration(), values, typeSolver) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.create(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 196) result.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 233) typeDeclaration.getAllAncestors() ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getAllAncestors()
+ Line 235) ancestors.stream().map(a -> typeParametersMap().replaceAll(a).asReferenceType()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 235) ancestors.stream().map(a -> typeParametersMap().replaceAll(a).asReferenceType()) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 235) ancestors.stream() ==> java.util.Collection.stream()
+ Line 236) typeParametersMap().replaceAll(a).asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 236) typeParametersMap().replaceAll(a) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.replaceAll(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 236) typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 237) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 240) ancestors.removeIf(a -> a.getQualifiedName().equals(Object.class.getCanonicalName())) ==> java.util.Collection.removeIf(java.util.function.Predicate<? super E>)
+ Line 240) a.getQualifiedName().equals(Object.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 240) a.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 240) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 241) typeSolver.solveType(Object.class.getCanonicalName()) ==> com.github.javaparser.symbolsolver.model.resolution.TypeSolver.solveType(java.lang.String)
+ Line 241) Object.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 242) create(objectType, typeSolver) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.create(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 243) ancestors.add(objectRef) ==> java.util.List.add(E)
+ Line 248) getAllAncestors().stream().filter(it -> it.getTypeDeclaration().isInterface()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 248) getAllAncestors().stream().filter(it -> it.getTypeDeclaration().isInterface()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 248) getAllAncestors().stream() ==> java.util.Collection.stream()
+ Line 248) getAllAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllAncestors()
+ Line 249) it.getTypeDeclaration().isInterface() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isInterface()
+ Line 249) it.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 250) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 254) getAllAncestors().stream().filter(it -> it.getTypeDeclaration().isClass()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 254) getAllAncestors().stream().filter(it -> it.getTypeDeclaration().isClass()) ==> java.util.stream.Stream.filter(java.util.function.Predicate<? super T>)
+ Line 254) getAllAncestors().stream() ==> java.util.Collection.stream()
+ Line 254) getAllAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllAncestors()
+ Line 255) it.getTypeDeclaration().isClass() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.isClass()
+ Line 255) it.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 256) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 268) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 269) tp.getName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 269) tp.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 270) Optional.of(this.typeParametersMap().getValue(tp)) ==> java.util.Optional.of(T)
+ Line 270) this.typeParametersMap().getValue(tp) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 270) this.typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 273) Optional.empty() ==> java.util.Optional.empty()
+ Line 281) this.typeParametersMap.isEmpty() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.isEmpty()
+ Line 281) Collections.emptyList() ==> java.util.Collections.emptyList()
+ Line 281) typeDeclaration.getTypeParameters().stream().map(tp -> typeParametersMap.getValue(tp)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 281) typeDeclaration.getTypeParameters().stream().map(tp -> typeParametersMap.getValue(tp)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 281) typeDeclaration.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 281) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 281) typeParametersMap.getValue(tp) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 281) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 290) isRawType() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.isRawType()
+ Line 291) typeDeclaration.getTypeParameters().size() ==> java.util.List.size()
+ Line 291) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 292) typeParametersMap.add(new Tuple2<>(typeDeclaration.getTypeParameters().get(0), typeParametersValues().get(i))) ==> java.util.List.add(E)
+ Line 292) typeDeclaration.getTypeParameters().get(0) ==> java.util.List.get(int)
+ Line 292) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 292) typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 292) typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 319) typeDeclaration.hasField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.hasField(java.lang.String)
+ Line 320) Optional.empty() ==> java.util.Optional.empty()
+ Line 322) typeDeclaration.getField(name).getType() ==> com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration.getType()
+ Line 322) typeDeclaration.getField(name) ==> com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration.getField(java.lang.String)
+ Line 323) useThisTypeParametersOnTheGivenType(type) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParameterValueProvider.useThisTypeParametersOnTheGivenType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 324) Optional.of(type) ==> java.util.Optional.of(T)
+ Line 331) typeDeclaration.hasName() ==> com.github.javaparser.symbolsolver.model.declarations.Declaration.hasName()
+ Line 338) typeDeclaration.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getQualifiedName()
+ Line 345) typeDeclaration.getId() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getId()
+ Line 354) typeDeclaration.getTypeParameters().isEmpty() ==> java.util.List.isEmpty()
+ Line 354) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 355) typeParametersMap().isEmpty() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.isEmpty()
+ Line 355) typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 358) typeParametersMap().getNames() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getNames()
+ Line 358) typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 359) typeParametersMap().getValueBySignature(name) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getValueBySignature(java.lang.String)
+ Line 359) typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 360) value.isPresent() ==> java.util.Optional.isPresent()
+ Line 360) value.get().isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 360) value.get() ==> java.util.Optional.get()
+ Line 360) value.get().asTypeVariable().qualifiedName().equals(name) ==> java.lang.String.equals(java.lang.Object)
+ Line 360) value.get().asTypeVariable().qualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.TypeVariable.qualifiedName()
+ Line 360) value.get().asTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeVariable()
+ Line 360) value.get() ==> java.util.Optional.get()
+ Line 372) typeParameterDeclaration.declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
+ Line 375) this.getTypeDeclaration().getId() ==> com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration.getId()
+ Line 375) this.getTypeDeclaration() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getTypeDeclaration()
+ Line 376) typeId.equals(typeParameterDeclaration.getContainerId()) ==> java.lang.String.equals(java.lang.Object)
+ Line 376) typeParameterDeclaration.getContainerId() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getContainerId()
+ Line 377) Optional.of(this.typeParametersMap().getValue(typeParameterDeclaration)) ==> java.util.Optional.of(T)
+ Line 377) this.typeParametersMap().getValue(typeParameterDeclaration) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 377) this.typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 379) this.getAllAncestors() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getAllAncestors()
+ Line 380) ancestor.getId().equals(typeParameterDeclaration.getContainerId()) ==> java.lang.String.equals(java.lang.Object)
+ Line 380) ancestor.getId() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getId()
+ Line 380) typeParameterDeclaration.getContainerId() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getContainerId()
+ Line 381) Optional.of(ancestor.typeParametersMap().getValue(typeParameterDeclaration)) ==> java.util.Optional.of(T)
+ Line 381) ancestor.typeParametersMap().getValue(typeParameterDeclaration) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 381) ancestor.typeParametersMap() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersMap()
+ Line 384) Optional.empty() ==> java.util.Optional.empty()
+ Line 394) create(typeDeclaration, typeDeclaration.getTypeParameters().stream().map(tp -> typeParametersMap.getValue(tp)).collect(Collectors.toList()), typeSolver) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.create(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 394) typeDeclaration.getTypeParameters().stream().map(tp -> typeParametersMap.getValue(tp)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 394) typeDeclaration.getTypeParameters().stream().map(tp -> typeParametersMap.getValue(tp)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 394) typeDeclaration.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 394) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 395) typeParametersMap.getValue(tp) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 396) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 404) getQualifiedName().equals(Boolean.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 404) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 404) Boolean.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 406) getQualifiedName().equals(Character.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 406) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 406) Character.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 408) getQualifiedName().equals(Byte.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 408) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 408) Byte.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 410) getQualifiedName().equals(Short.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 410) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 410) Short.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 412) getQualifiedName().equals(Integer.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 412) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 412) Integer.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 414) getQualifiedName().equals(Long.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 414) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 414) Long.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 416) getQualifiedName().equals(Float.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 416) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 416) Float.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 418) getQualifiedName().equals(Double.class.getCanonicalName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 418) getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 418) Double.class.getCanonicalName() ==> java.lang.Class.getCanonicalName()
+ Line 425) other.equals(this) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.equals(java.lang.Object)
+ Line 428) this.getQualifiedName().equals(other.getQualifiedName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 428) this.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 428) other.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.getQualifiedName()
+ Line 429) this.isRawType() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.isRawType()
+ Line 429) other.isRawType() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.isRawType()
+ Line 432) this.typeParametersValues().size() ==> java.util.List.size()
+ Line 432) this.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 432) other.typeParametersValues().size() ==> java.util.List.size()
+ Line 432) other.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 435) typeParametersValues().size() ==> java.util.List.size()
+ Line 435) typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 436) typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 436) typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 437) other.typeParametersValues().get(i) ==> java.util.List.get(int)
+ Line 437) other.typeParametersValues() ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.typeParametersValues()
+ Line 438) thisParam.equals(otherParam) ==> java.lang.Object.equals(java.lang.Object)
+ Line 441) thisParamAsWildcard.isSuper() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isSuper()
+ Line 441) otherParam.isAssignableBy(thisParamAsWildcard.getBoundedType()) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 441) thisParamAsWildcard.getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 443) thisParamAsWildcard.isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 443) thisParamAsWildcard.getBoundedType().isAssignableBy(otherParam) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 443) thisParamAsWildcard.getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 445) thisParamAsWildcard.isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 452) thisParam.asTypeVariable().asTypeParameter().getBounds(this.typeSolver).stream().map(bound -> bound.getType()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 452) thisParam.asTypeVariable().asTypeParameter().getBounds(this.typeSolver).stream().map(bound -> bound.getType()) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 452) thisParam.asTypeVariable().asTypeParameter().getBounds(this.typeSolver).stream() ==> java.util.Collection.stream()
+ Line 452) thisParam.asTypeVariable().asTypeParameter().getBounds(this.typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 452) thisParam.asTypeVariable().asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.TypeVariable.asTypeParameter()
+ Line 452) thisParam.asTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeVariable()
+ Line 452) bound.getType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.getType()
+ Line 452) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 453) otherParam.asTypeVariable().asTypeParameter().getBounds(other.typeSolver).stream().map(bound -> bound.getType()).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 453) otherParam.asTypeVariable().asTypeParameter().getBounds(other.typeSolver).stream().map(bound -> bound.getType()) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 453) otherParam.asTypeVariable().asTypeParameter().getBounds(other.typeSolver).stream() ==> java.util.Collection.stream()
+ Line 453) otherParam.asTypeVariable().asTypeParameter().getBounds(other.typeSolver) ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getBounds(com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
+ Line 453) otherParam.asTypeVariable().asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.TypeVariable.asTypeParameter()
+ Line 453) otherParam.asTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeVariable()
+ Line 453) bound.getType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.Bound.getType()
+ Line 453) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 454) thisBounds.size() ==> java.util.List.size()
+ Line 454) otherBounds.size() ==> java.util.List.size()
+ Line 454) otherBounds.containsAll(thisBounds) ==> java.util.List.containsAll(java.util.Collection<? extends java.lang.Object>)
+ Line 472) typeDeclaration.getTypeParameters().stream().map((tp) -> new TypeVariable(tp)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
+ Line 472) typeDeclaration.getTypeParameters().stream().map((tp) -> new TypeVariable(tp)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
+ Line 472) typeDeclaration.getTypeParameters().stream() ==> java.util.Collection.stream()
+ Line 472) typeDeclaration.getTypeParameters() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParametrizable.getTypeParameters()
+ Line 472) Collectors.toList() ==> java.util.stream.Collectors.toList()
+ Line 476) create(typeDeclaration, typeParametersMap, typeSolver) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.create(com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration, com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_Type.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_Type.txt
new file mode 100644
index 000000000..afd7bd409
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_Type.txt
@@ -0,0 +1,17 @@
+ Line 48) isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 49) this.asArrayType().getComponentType().arrayLevel() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.arrayLevel()
+ Line 49) this.asArrayType().getComponentType() ==> com.github.javaparser.symbolsolver.model.typesystem.ArrayType.getComponentType()
+ Line 49) this.asArrayType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asArrayType()
+ Line 73) isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 73) isArray() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isArray()
+ Line 73) isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 73) isNull() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isNull()
+ Line 73) isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 106) String.format("%s is not an Array", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 110) String.format("%s is not a Reference Type", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 114) String.format("%s is not a Type parameter", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 118) String.format("%s is not a Type variable", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 122) String.format("%s is not a Primitive type", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 126) String.format("%s is not a Wildcard", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 130) String.format("%s is not a constraint type", this) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
+ Line 156) replaceTypeVariables(tp, replaced, new HashMap<>()) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_TypeTransformer.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_TypeTransformer.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_TypeTransformer.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_TypeVariable.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_TypeVariable.txt
new file mode 100644
index 000000000..56f72e810
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_TypeVariable.txt
@@ -0,0 +1,22 @@
+ Line 39) typeParameter.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getQualifiedName()
+ Line 43) this.typeParameter.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getQualifiedName()
+ Line 49) getClass() ==> java.lang.Object.getClass()
+ Line 49) o.getClass() ==> java.lang.Object.getClass()
+ Line 53) typeParameter.getName().equals(that.typeParameter.getName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 53) typeParameter.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 53) that.typeParameter.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 54) typeParameter.declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 54) that.typeParameter.declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 55) typeParameter.declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
+ Line 55) that.typeParameter.declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
+ Line 62) typeParameter.hashCode() ==> java.lang.Object.hashCode()
+ Line 77) tpToBeReplaced.getName().equals(this.typeParameter.getName()) ==> java.lang.String.equals(java.lang.Object)
+ Line 77) tpToBeReplaced.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 77) this.typeParameter.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 78) inferredTypes.put(this.asTypeParameter(), replaced) ==> java.util.Map.put(K, V)
+ Line 78) this.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.TypeVariable.asTypeParameter()
+ Line 92) typeParameter.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
+ Line 112) other.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 113) describe().equals(other.describe()) ==> java.lang.String.equals(java.lang.Object)
+ Line 113) describe() ==> com.github.javaparser.symbolsolver.model.typesystem.TypeVariable.describe()
+ Line 113) other.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_VoidType.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_VoidType.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_VoidType.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_Wildcard.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_Wildcard.txt
new file mode 100644
index 000000000..4695dcad3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_Wildcard.txt
@@ -0,0 +1,9 @@
+ Line 81) boundedType.equals(that.boundedType) ==> java.lang.Object.equals(java.lang.Object)
+ Line 89) type.hashCode() ==> java.lang.Enum.hashCode()
+ Line 90) boundedType.hashCode() ==> java.lang.Object.hashCode()
+ Line 99) boundedType.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 101) boundedType.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
+ Line 116) isSuper() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isSuper()
+ Line 116) isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 132) boundedType.isAssignableBy(other) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isAssignableBy(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 148) boundedType.replaceTypeVariables(tpToReplace, replaced, inferredTypes) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParameterValueProvider.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParameterValueProvider.txt
new file mode 100644
index 000000000..bead9acc5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParameterValueProvider.txt
@@ -0,0 +1,23 @@
+ Line 25) type.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
+ Line 26) type.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asTypeParameter()
+ Line 27) typeParameter.declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
+ Line 28) typeParamValue(typeParameter) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParameterValueProvider.typeParamValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
+ Line 29) typeParam.isPresent() ==> java.util.Optional.isPresent()
+ Line 30) typeParam.get() ==> java.util.Optional.get()
+ Line 35) type.isWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isWildcard()
+ Line 35) type.asWildcard().isBounded() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isBounded()
+ Line 35) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 36) type.asWildcard().isExtends() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.isExtends()
+ Line 36) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 37) Wildcard.extendsBound(useThisTypeParametersOnTheGivenType(type.asWildcard().getBoundedType())) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.extendsBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 37) useThisTypeParametersOnTheGivenType(type.asWildcard().getBoundedType()) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParameterValueProvider.useThisTypeParametersOnTheGivenType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 37) type.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 37) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 39) Wildcard.superBound(useThisTypeParametersOnTheGivenType(type.asWildcard().getBoundedType())) ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.superBound(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 39) useThisTypeParametersOnTheGivenType(type.asWildcard().getBoundedType()) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParameterValueProvider.useThisTypeParametersOnTheGivenType(com.github.javaparser.symbolsolver.model.typesystem.Type)
+ Line 39) type.asWildcard().getBoundedType() ==> com.github.javaparser.symbolsolver.model.typesystem.Wildcard.getBoundedType()
+ Line 39) type.asWildcard() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asWildcard()
+ Line 43) type.isReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isReferenceType()
+ Line 44) type.asReferenceType().transformTypeParameters(tp -> useThisTypeParametersOnTheGivenType(tp)) ==> com.github.javaparser.symbolsolver.model.typesystem.ReferenceType.transformTypeParameters(com.github.javaparser.symbolsolver.model.typesystem.TypeTransformer)
+ Line 44) type.asReferenceType() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.asReferenceType()
+ Line 44) useThisTypeParametersOnTheGivenType(tp) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParameterValueProvider.useThisTypeParametersOnTheGivenType(com.github.javaparser.symbolsolver.model.typesystem.Type)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParametersMap.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParametersMap.txt
new file mode 100644
index 000000000..28d9985b3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParametersMap.txt
@@ -0,0 +1,24 @@
+ Line 43) this.nameToValue.putAll(nameToValue) ==> java.util.Map.putAll(java.util.Map<? extends K, ? extends V>)
+ Line 45) this.nameToDeclaration.putAll(nameToDeclaration) ==> java.util.Map.putAll(java.util.Map<? extends K, ? extends V>)
+ Line 54) typeParameter.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getQualifiedName()
+ Line 55) nameToValue.put(qualifiedName, value) ==> java.util.Map.put(K, V)
+ Line 56) nameToDeclaration.put(qualifiedName, typeParameter) ==> java.util.Map.put(K, V)
+ Line 68) nameToValue.equals(that.nameToValue) ==> java.util.Map.equals(java.lang.Object)
+ Line 68) nameToDeclaration.equals(that.nameToDeclaration) ==> java.util.Map.equals(java.lang.Object)
+ Line 74) nameToValue.hashCode() ==> java.util.Map.hashCode()
+ Line 88) new Builder().build() ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.Builder.build()
+ Line 93) this.nameToValue.putAll(nameToValue) ==> java.util.Map.putAll(java.util.Map<? extends K, ? extends V>)
+ Line 95) this.nameToDeclaration.putAll(nameToDeclaration) ==> java.util.Map.putAll(java.util.Map<? extends K, ? extends V>)
+ Line 99) typeParameter.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getQualifiedName()
+ Line 100) nameToValue.containsKey(qualifiedName) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 101) nameToValue.get(qualifiedName) ==> java.util.Map.get(java.lang.Object)
+ Line 108) nameToValue.containsKey(signature) ==> java.util.Map.containsKey(java.lang.Object)
+ Line 109) Optional.of(nameToValue.get(signature)) ==> java.util.Optional.of(T)
+ Line 109) nameToValue.get(signature) ==> java.util.Map.get(java.lang.Object)
+ Line 111) Optional.empty() ==> java.util.Optional.empty()
+ Line 116) nameToValue.keySet() ==> java.util.Map.keySet()
+ Line 120) nameToValue.values() ==> java.util.Map.values()
+ Line 128) nameToValue.isEmpty() ==> java.util.Map.isEmpty()
+ Line 133) this.nameToDeclaration.values() ==> java.util.Map.values()
+ Line 134) type.replaceTypeVariables(typeParameterDeclaration, getValue(typeParameterDeclaration), inferredTypes) ==> com.github.javaparser.symbolsolver.model.typesystem.Type.replaceTypeVariables(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type, java.util.Map<com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration, com.github.javaparser.symbolsolver.model.typesystem.Type>)
+ Line 134) getValue(typeParameterDeclaration) ==> com.github.javaparser.symbolsolver.model.typesystem.parametrization.TypeParametersMap.getValue(com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration)
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParametrized.txt b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParametrized.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/expected_output/java-symbol-solver-model/com_github_javaparser_symbolsolver_model_typesystem_parametrization_TypeParametrized.txt
diff --git a/javaparser-symbol-solver-testing/src/test/resources/junit-4.8.1.jar b/javaparser-symbol-solver-testing/src/test/resources/junit-4.8.1.jar
new file mode 100644
index 000000000..524cd65ce
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/junit-4.8.1.jar
Binary files differ
diff --git a/javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Base.java b/javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Base.java
new file mode 100644
index 000000000..1deebf205
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Base.java
@@ -0,0 +1,5 @@
+
+
+public interface Base<T, S extends Base<T, S>>{
+
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Extends.java b/javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Extends.java
new file mode 100644
index 000000000..5f69935b4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Extends.java
@@ -0,0 +1,8 @@
+import java.util.stream.BaseStream;
+
+public interface Extends extends Base<Integer, Extends> {
+
+ public static void foo() {
+
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Usage.java b/javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Usage.java
new file mode 100644
index 000000000..fb8fb2e53
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/recursion-issue/Usage.java
@@ -0,0 +1,6 @@
+class Usage{
+
+ void bar(){
+ Extends.foo();
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/a/src/a.java b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/a/src/a.java
new file mode 100644
index 000000000..909044a81
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/a/src/a.java
@@ -0,0 +1,2 @@
+public class a {
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/a/src/package_a/a.java b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/a/src/package_a/a.java
new file mode 100644
index 000000000..198c2e4c8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/a/src/package_a/a.java
@@ -0,0 +1,4 @@
+package package_a;
+
+public class a {
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/b/src/b.java b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/b/src/b.java
new file mode 100644
index 000000000..9d113aad0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/b/src/b.java
@@ -0,0 +1,2 @@
+public class b {
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/b/src/package_b/b.java b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/b/src/package_b/b.java
new file mode 100644
index 000000000..6b0c60797
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/b/src/package_b/b.java
@@ -0,0 +1,4 @@
+package package_b;
+
+public class b {
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/c/src/c.java b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/c/src/c.java
new file mode 100644
index 000000000..c8745a1b2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/c/src/c.java
@@ -0,0 +1,2 @@
+public class c {
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/c/src/package_c/c.java b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/c/src/package_c/c.java
new file mode 100644
index 000000000..4eb584993
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/c/src/package_c/c.java
@@ -0,0 +1,4 @@
+package package_c;
+
+public class c {
+}
diff --git a/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/src/Main.java b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/src/Main.java
new file mode 100644
index 000000000..a0428dacd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/symbolsolver_quicksetup/src/Main.java
@@ -0,0 +1,6 @@
+public class Main {
+
+ public static void main(String[] args) {
+ System.out.println("Hello World!");
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/CommentsInserter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/CommentsInserter.java
new file mode 100644
index 000000000..eee450d20
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/CommentsInserter.java
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.utils.PositionUtils;
+
+import java.util.*;
+
+import static com.github.javaparser.ast.Node.NODE_BY_BEGIN_POSITION;
+
+/**
+ * Assigns comments to nodes of the AST.
+ *
+ * @author Sebastian Kuerten
+ * @author Júlio Vilmar Gesser
+ */
+class CommentsInserter {
+ private final ParserConfiguration configuration;
+
+ CommentsInserter(ParserConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+ /**
+ * Comments are attributed to the thing they comment and are removed from
+ * the comments.
+ */
+ private void insertComments(CompilationUnit cu, TreeSet<Comment> comments) {
+ if (comments.isEmpty())
+ return;
+
+ /* I should sort all the direct children and the comments, if a comment
+ is the first thing then it
+ a comment to the CompilationUnit */
+
+ // FIXME if there is no package it could be also a comment to the following class...
+ // so I could use some heuristics in these cases to distinguish the two
+ // cases
+
+ List<Node> children = cu.getChildrenNodes();
+ PositionUtils.sortByBeginPosition(children);
+
+ Comment firstComment = comments.iterator().next();
+ if (cu.getPackage() != null
+ && (children.isEmpty() || PositionUtils.areInOrder(
+ firstComment, children.get(0)))) {
+ cu.setComment(firstComment);
+ comments.remove(firstComment);
+ }
+ }
+
+ /**
+ * This method try to attributes the nodes received to child of the node. It
+ * returns the node that were not attributed.
+ */
+ void insertComments(Node node, TreeSet<Comment> commentsToAttribute) {
+ if (commentsToAttribute.isEmpty())
+ return;
+
+ if(node instanceof CompilationUnit){
+ insertComments((CompilationUnit)node, commentsToAttribute);
+ }
+
+ // the comments can:
+ // 1) Inside one of the child, then it is the child that have to
+ // associate them
+ // 2) If they are not inside a child they could be preceeding nothing, a
+ // comment or a child
+ // if they preceed a child they are assigned to it, otherweise they
+ // remain "orphans"
+
+ List<Node> children = node.getChildrenNodes();
+ PositionUtils.sortByBeginPosition(children);
+
+ for (Node child : children) {
+ TreeSet<Comment> commentsInsideChild = new TreeSet<>(NODE_BY_BEGIN_POSITION);
+ for (Comment c : commentsToAttribute) {
+ if (PositionUtils.nodeContains(child, c,
+ configuration.doNotConsiderAnnotationsAsNodeStartForCodeAttribution)) {
+ commentsInsideChild.add(c);
+ }
+ }
+ commentsToAttribute.removeAll(commentsInsideChild);
+ insertComments(child, commentsInsideChild);
+ }
+
+ /* I can attribute in line comments to elements preceeding them, if
+ there is something contained in their line */
+ List<Comment> attributedComments = new LinkedList<>();
+ for (Comment comment : commentsToAttribute) {
+ if (comment.isLineComment()) {
+ for (Node child : children) {
+ if (child.getEnd().line == comment.getBegin().line
+ && attributeLineCommentToNodeOrChild(child,
+ comment.asLineComment())) {
+ attributedComments.add(comment);
+ }
+ }
+ }
+ }
+
+ /* at this point I create an ordered list of all remaining comments and
+ children */
+ Comment previousComment = null;
+ attributedComments = new LinkedList<>();
+ List<Node> childrenAndComments = new LinkedList<>();
+ childrenAndComments.addAll(children);
+ childrenAndComments.addAll(commentsToAttribute);
+ PositionUtils.sortByBeginPosition(childrenAndComments,
+ configuration.doNotConsiderAnnotationsAsNodeStartForCodeAttribution);
+
+ for (Node thing : childrenAndComments) {
+ if (thing instanceof Comment) {
+ previousComment = (Comment) thing;
+ if (!previousComment.isOrphan()) {
+ previousComment = null;
+ }
+ } else {
+ if (previousComment != null && !thing.hasComment()) {
+ if (!configuration.doNotAssignCommentsPrecedingEmptyLines
+ || !thereAreLinesBetween(previousComment, thing)) {
+ thing.setComment(previousComment);
+ attributedComments.add(previousComment);
+ previousComment = null;
+ }
+ }
+ }
+ }
+
+ commentsToAttribute.removeAll(attributedComments);
+
+ // all the remaining are orphan nodes
+ for (Comment c : commentsToAttribute) {
+ if (c.isOrphan()) {
+ node.addOrphanComment(c);
+ }
+ }
+ }
+
+ private boolean attributeLineCommentToNodeOrChild(Node node, LineComment lineComment) {
+ // The node start and end at the same line as the comment,
+ // let's give to it the comment
+ if (node.getBegin().line == lineComment.getBegin().line
+ && !node.hasComment()) {
+ if(!(node instanceof Comment)) {
+ node.setComment(lineComment);
+ }
+ return true;
+ } else {
+ // try with all the children, sorted by reverse position (so the
+ // first one is the nearest to the comment
+ List<Node> children = new LinkedList<Node>();
+ children.addAll(node.getChildrenNodes());
+ PositionUtils.sortByBeginPosition(children);
+ Collections.reverse(children);
+
+ for (Node child : children) {
+ if (attributeLineCommentToNodeOrChild(child, lineComment)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }
+
+ private boolean thereAreLinesBetween(Node a, Node b) {
+ if (!PositionUtils.areInOrder(a, b)) {
+ return thereAreLinesBetween(b, a);
+ }
+ int endOfA = a.getEnd().line;
+ return b.getBegin().line > (endOfA + 1);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/JavaParser.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/JavaParser.java
new file mode 100644
index 000000000..7fdc77f21
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/JavaParser.java
@@ -0,0 +1,318 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.comments.CommentsCollection;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.Statement;
+
+import java.io.*;
+import java.nio.charset.Charset;
+import java.nio.file.Path;
+import java.util.Optional;
+
+import static com.github.javaparser.ParseStart.*;
+import static com.github.javaparser.Providers.UTF8;
+import static com.github.javaparser.Providers.provider;
+
+/**
+ * Parse Java source code and creates Abstract Syntax Trees.
+ *
+ * @author Júlio Vilmar Gesser
+ */
+public final class JavaParser {
+ private final CommentsInserter commentsInserter;
+
+ private ASTParser astParser = null;
+
+ /**
+ * Instantiate the parser with default configuration. Note that parsing can also be done with the static methods on this class.
+ * Creating an instance will reduce setup time between parsing files.
+ */
+ public JavaParser() {
+ this(new ParserConfiguration());
+ }
+
+ /**
+ * Instantiate the parser. Note that parsing can also be done with the static methods on this class.
+ * Creating an instance will reduce setup time between parsing files.
+ */
+ public JavaParser(ParserConfiguration configuration) {
+ commentsInserter = new CommentsInserter(configuration);
+ }
+
+ private ASTParser getParserForProvider(Provider provider) {
+ if (astParser == null) {
+ astParser = new ASTParser(provider);
+ } else {
+ astParser.ReInit(provider);
+ }
+ return astParser;
+ }
+
+ /**
+ * Parses source code.
+ * It takes the source code from a Provider.
+ * The start indicates what can be found in the source code (compilation unit, block, import...)
+ *
+ * @param start refer to the constants in ParseStart to see what can be parsed.
+ * @param provider refer to Providers to see how you can read source.
+ * @param <N> the subclass of Node that is the result of parsing in the start.
+ * @return the parse result, a collection of encountered problems, and some extra data.
+ */
+ public <N extends Node> ParseResult<N> parse(ParseStart<N> start, Provider provider) {
+ try {
+ final ASTParser parser = getParserForProvider(provider);
+ N resultNode = start.parse(parser);
+ final CommentsCollection comments = astParser.getCommentsCollection();
+ commentsInserter.insertComments(resultNode, comments.copy().getComments());
+
+ return new ParseResult<>(Optional.of(resultNode), parser.problems, Optional.of(astParser.getTokens()), Optional.of(astParser.getCommentsCollection()));
+ } catch (ParseException e) {
+ return new ParseResult<>(e);
+ } catch (TokenMgrException e) {
+ return new ParseResult<>(e);
+ } finally {
+ try {
+ provider.close();
+ } catch (IOException e) {
+ // Since we're done parsing and have our result, we don't care about any errors.
+ }
+ }
+ }
+
+ /**
+ * Parses the Java code contained in the {@link InputStream} and returns a
+ * {@link CompilationUnit} that represents it.
+ *
+ * @param in {@link InputStream} containing Java source code
+ * @param encoding encoding of the source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static CompilationUnit parse(final InputStream in, Charset encoding) {
+ return simplifiedParse(COMPILATION_UNIT, provider(in, encoding));
+ }
+
+ /**
+ * Parses the Java code contained in the {@link InputStream} and returns a
+ * {@link CompilationUnit} that represents it.<br>
+ * Note: Uses UTF-8 encoding
+ *
+ * @param in {@link InputStream} containing Java source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static CompilationUnit parse(final InputStream in) {
+ return parse(in, UTF8);
+ }
+
+ /**
+ * Parses the Java code contained in a {@link File} and returns a
+ * {@link CompilationUnit} that represents it.
+ *
+ * @param file {@link File} containing Java source code
+ * @param encoding encoding of the source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseProblemException if the source code has parser errors
+ * @throws FileNotFoundException the file was not found
+ */
+ public static CompilationUnit parse(final File file, final Charset encoding) throws FileNotFoundException {
+ return simplifiedParse(COMPILATION_UNIT, provider(file, encoding));
+ }
+
+ /**
+ * Parses the Java code contained in a {@link File} and returns a
+ * {@link CompilationUnit} that represents it.<br>
+ * Note: Uses UTF-8 encoding
+ *
+ * @param file {@link File} containing Java source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseProblemException if the source code has parser errors
+ * @throws FileNotFoundException the file was not found
+ */
+ public static CompilationUnit parse(final File file) throws FileNotFoundException {
+ return simplifiedParse(COMPILATION_UNIT, provider(file));
+ }
+
+ /**
+ * Parses the Java code contained in a file and returns a
+ * {@link CompilationUnit} that represents it.
+ *
+ * @param path path to a file containing Java source code
+ * @param encoding encoding of the source code
+ * @return CompilationUnit representing the Java source code
+ * @throws IOException the path could not be accessed
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static CompilationUnit parse(final Path path, final Charset encoding) throws IOException {
+ return simplifiedParse(COMPILATION_UNIT, provider(path, encoding));
+ }
+
+ /**
+ * Parses the Java code contained in a file and returns a
+ * {@link CompilationUnit} that represents it.<br>
+ * Note: Uses UTF-8 encoding
+ *
+ * @param path path to a file containing Java source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseProblemException if the source code has parser errors
+ * @throws IOException the path could not be accessed
+ */
+ public static CompilationUnit parse(final Path path) throws IOException {
+ return simplifiedParse(COMPILATION_UNIT, provider(path));
+ }
+
+ /**
+ * Parses Java code from a Reader and returns a
+ * {@link CompilationUnit} that represents it.<br>
+ *
+ * @param reader the reader containing Java source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static CompilationUnit parse(final Reader reader) {
+ return simplifiedParse(COMPILATION_UNIT, provider(reader));
+ }
+
+ /**
+ * Parses the Java code contained in code and returns a
+ * {@link CompilationUnit} that represents it.
+ *
+ * @param code Java source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static CompilationUnit parse(String code) {
+ return simplifiedParse(COMPILATION_UNIT, provider(code));
+ }
+
+ /**
+ * Parses the Java block contained in a {@link String} and returns a
+ * {@link BlockStmt} that represents it.
+ *
+ * @param blockStatement {@link String} containing Java block code
+ * @return BlockStmt representing the Java block
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static BlockStmt parseBlock(final String blockStatement) {
+ return simplifiedParse(BLOCK, provider(blockStatement));
+ }
+
+ /**
+ * Parses the Java statement contained in a {@link String} and returns a
+ * {@link Statement} that represents it.
+ *
+ * @param statement {@link String} containing Java statement code
+ * @return Statement representing the Java statement
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static Statement parseStatement(final String statement) {
+ return simplifiedParse(STATEMENT, provider(statement));
+ }
+
+ private static <T extends Node> T simplifiedParse(ParseStart<T> context, Provider provider) {
+ ParseResult<T> result = new JavaParser(new ParserConfiguration()).parse(context, provider);
+ if (result.isSuccessful()) {
+ return result.getResult().get();
+ }
+ throw new ParseProblemException(result.getProblems());
+ }
+
+ /**
+ * Parses the Java import contained in a {@link String} and returns a
+ * {@link ImportDeclaration} that represents it.
+ *
+ * @param importDeclaration {@link String} containing Java import code
+ * @return ImportDeclaration representing the Java import declaration
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static ImportDeclaration parseImport(final String importDeclaration) {
+ return simplifiedParse(IMPORT_DECLARATION, provider(importDeclaration));
+ }
+
+ /**
+ * Parses the Java expression contained in a {@link String} and returns a
+ * {@link Expression} that represents it.
+ *
+ * @param expression {@link String} containing Java expression
+ * @return Expression representing the Java expression
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static Expression parseExpression(final String expression) {
+ return simplifiedParse(EXPRESSION, provider(expression));
+ }
+
+ /**
+ * Parses the Java annotation contained in a {@link String} and returns a
+ * {@link AnnotationExpr} that represents it.
+ *
+ * @param annotation {@link String} containing Java annotation
+ * @return AnnotationExpr representing the Java annotation
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static AnnotationExpr parseAnnotation(final String annotation) {
+ return simplifiedParse(ANNOTATION, provider(annotation));
+ }
+
+ /**
+ * Parses the Java annotation body declaration(e.g fields or methods) contained in a
+ * {@link String} and returns a {@link BodyDeclaration} that represents it.
+ *
+ * @param body {@link String} containing Java body declaration
+ * @return BodyDeclaration representing the Java annotation
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static BodyDeclaration<?> parseAnnotationBodyDeclaration(final String body) {
+ return simplifiedParse(ANNOTATION_BODY, provider(body));
+ }
+
+ /**
+ * Parses a Java class body declaration(e.g fields or methods) and returns a
+ * {@link BodyDeclaration} that represents it.
+ *
+ * @param body the body of a class
+ * @return BodyDeclaration representing the Java class body
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static BodyDeclaration<?> parseClassBodyDeclaration(String body) {
+ return simplifiedParse(CLASS_BODY, provider(body));
+ }
+
+ /**
+ * Parses a Java interface body declaration(e.g fields or methods) and returns a
+ * {@link BodyDeclaration} that represents it.
+ *
+ * @param body the body of an interface
+ * @return BodyDeclaration representing the Java interface body
+ * @throws ParseProblemException if the source code has parser errors
+ */
+ public static BodyDeclaration parseInterfaceBodyDeclaration(String body) {
+ return simplifiedParse(INTERFACE_BODY, provider(body));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/PackageLocalClasses.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/PackageLocalClasses.java
new file mode 100644
index 000000000..90a33f5ba
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/PackageLocalClasses.java
@@ -0,0 +1,4 @@
+package com.github.javaparser;
+
+class FooClass {}
+class BarClass {} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseProblemException.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseProblemException.java
new file mode 100644
index 000000000..f6a029886
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseProblemException.java
@@ -0,0 +1,40 @@
+package com.github.javaparser;
+
+import java.util.List;
+import java.util.Optional;
+
+import static com.github.javaparser.utils.Utils.assertNotNull;
+import static java.util.Collections.singletonList;
+
+import static com.github.javaparser.utils.Utils.EOL;
+
+/**
+ * Thrown when parsing problems occur during parsing with the static methods on JavaParser.
+ */
+public class ParseProblemException extends RuntimeException {
+ /**
+ * The problems that were encountered during parsing
+ */
+ private final List<Problem> problems;
+
+ ParseProblemException(List<Problem> problems) {
+ super(createMessage(assertNotNull(problems)));
+ this.problems = problems;
+ }
+
+ ParseProblemException(Throwable throwable) {
+ this(singletonList(new Problem(throwable.getMessage(), Optional.empty(), Optional.of(throwable))));
+ }
+
+ private static String createMessage(List<Problem> problems) {
+ StringBuilder message = new StringBuilder();
+ for(Problem problem: problems){
+ message.append(problem.toString()).append(EOL);
+ }
+ return message.toString();
+ }
+
+ public List<Problem> getProblems() {
+ return problems;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseResult.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseResult.java
new file mode 100644
index 000000000..88e400525
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseResult.java
@@ -0,0 +1,88 @@
+package com.github.javaparser;
+
+import com.github.javaparser.ast.comments.CommentsCollection;
+
+import java.util.List;
+import java.util.Optional;
+
+import static com.github.javaparser.utils.Utils.assertNotNull;
+import static java.util.Collections.singletonList;
+
+import static com.github.javaparser.utils.Utils.EOL;
+
+/**
+ * The results given when parsing with an instance of JavaParser.
+ */
+public class ParseResult<T> {
+ private final Optional<T> result;
+ private final List<Problem> problems;
+ private final Optional<List<Token>> tokens;
+ private final Optional<CommentsCollection> commentsCollection;
+
+ /**
+ * General constructor.
+ * @param result the AST, or empty if it wasn't created.
+ * @param problems a list of encountered parsing problems.
+ * @param tokens the complete list of tokens that were parsed, or empty if parsing failed completely.
+ */
+ ParseResult(Optional<T> result, List<Problem> problems, Optional<List<Token>> tokens, Optional<CommentsCollection> commentsCollection) {
+ this.commentsCollection = assertNotNull(commentsCollection);
+ this.result = assertNotNull(result);
+ this.problems = assertNotNull(problems);
+ this.tokens = assertNotNull(tokens);
+ }
+
+ /**
+ * Used when parsing failed completely with an exception.
+ */
+ ParseResult(Throwable throwable) {
+ this(Optional.empty(), singletonList(new Problem(throwable.getMessage(), Optional.empty(), Optional.of(throwable))), Optional.empty(), Optional.empty());
+ }
+
+ /**
+ * @return if parsing was successful, meaning no errors of any kind were encountered.
+ */
+ public boolean isSuccessful() {
+ return problems.isEmpty() && result.isPresent();
+ }
+
+ /**
+ * @return the list of encountered parsing problems. Empty when no problems were encountered.
+ */
+ public List<Problem> getProblems() {
+ return problems;
+ }
+
+ /**
+ * @return the complete list of tokens that were parsed, or empty if parsing failed completely.
+ */
+ public Optional<List<Token>> getTokens() {
+ return tokens;
+ }
+
+ /**
+ * @return the complete collection of comments encountered while parsing.
+ */
+ public Optional<CommentsCollection> getCommentsCollection() {
+ return commentsCollection;
+ }
+
+ /**
+ * @return the AST of the parsed source code, or empty if parsing failed completely.
+ */
+ public Optional<T> getResult() {
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ if (isSuccessful()) {
+ return "Parsing successful";
+ }
+ StringBuilder message = new StringBuilder("Parsing failed:").append(EOL);
+ for (Problem problem : problems) {
+ message.append(problem.toString()).append(EOL);
+ }
+ return message.toString();
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseStart.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseStart.java
new file mode 100644
index 000000000..f94a66282
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseStart.java
@@ -0,0 +1,32 @@
+package com.github.javaparser;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.Statement;
+
+/**
+ * The start production for JavaParser.
+ * Tells JavaParser what piece of Java code it can expect.
+ * For example,
+ * COMPILATION_UNIT indicates a complete Java file,
+ * and CLASS_BODY would indicate the part of a class that is within { and }.
+ * @see JavaParser#parse(ParseStart, Provider)
+ */
+@FunctionalInterface
+public interface ParseStart<R> {
+ ParseStart<CompilationUnit> COMPILATION_UNIT = ASTParser::CompilationUnit;
+ ParseStart<BlockStmt> BLOCK = ASTParser::Block;
+ ParseStart<Statement> STATEMENT = ASTParser::BlockStatement;
+ ParseStart<ImportDeclaration> IMPORT_DECLARATION= ASTParser::ImportDeclaration;
+ ParseStart<Expression> EXPRESSION = ASTParser::Expression;
+ ParseStart<AnnotationExpr> ANNOTATION = ASTParser::Annotation;
+ ParseStart<BodyDeclaration<?>> ANNOTATION_BODY = ASTParser::AnnotationBodyDeclaration;
+ ParseStart<BodyDeclaration<?>> CLASS_BODY = p -> p.ClassOrInterfaceBodyDeclaration(false);
+ ParseStart<BodyDeclaration<?>> INTERFACE_BODY = p -> p.ClassOrInterfaceBodyDeclaration(true);
+
+ R parse(ASTParser parser) throws ParseException;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParserConfiguration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParserConfiguration.java
new file mode 100644
index 000000000..0b165b6e2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParserConfiguration.java
@@ -0,0 +1,6 @@
+package com.github.javaparser;
+
+public class ParserConfiguration {
+ public boolean doNotAssignCommentsPrecedingEmptyLines = true;
+ public boolean doNotConsiderAnnotationsAsNodeStartForCodeAttribution = false;
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Position.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Position.java
new file mode 100644
index 000000000..312824445
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Position.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser;
+
+import com.github.javaparser.ast.Node;
+
+import static com.github.javaparser.utils.Utils.assertNotNull;
+
+/**
+ * A position in a source file. Lines and columns start counting at 1.
+ */
+public class Position implements Comparable<Position> {
+ public final int line;
+ public final int column;
+
+ public static final Position ABSOLUTE_START = new Position(Node.ABSOLUTE_BEGIN_LINE, -1);
+ public static final Position ABSOLUTE_END = new Position(Node.ABSOLUTE_END_LINE, -1);
+
+ /**
+ * The first position in the file
+ */
+ public static final Position HOME = new Position(1, 1);
+ public static final Position UNKNOWN = new Position(0, 0);
+
+ public Position(int line, int column) {
+ if (line < Node.ABSOLUTE_END_LINE) {
+ throw new IllegalArgumentException("Can't position at line " + line);
+ }
+ if (column < -1) {
+ throw new IllegalArgumentException("Can't position at column " + column);
+ }
+ this.line = line;
+ this.column = column;
+ }
+
+ /**
+ * Convenient factory method.
+ */
+ public static Position pos(int line, int column) {
+ return new Position(line, column);
+ }
+
+ public Position withColumn(int column) {
+ return new Position(this.line, column);
+ }
+
+ public Position withLine(int line) {
+ return new Position(line, this.column);
+ }
+
+ /**
+ * Check if the position is usable. Does not know what it is pointing at, so it can't check if the position is after the end of the source.
+ */
+ public boolean valid() {
+ return line > 0 && column > 0;
+ }
+
+ public boolean invalid() {
+ return !valid();
+ }
+
+ public Position orIfInvalid(Position anotherPosition) {
+ if (valid()) {
+ return this;
+ }
+ return anotherPosition;
+ }
+
+ public boolean isAfter(Position position) {
+ assertNotNull(position);
+ if (position.line == Node.ABSOLUTE_BEGIN_LINE) return true;
+ if (line > position.line) {
+ return true;
+ } else if (line == position.line) {
+ return column > position.column;
+ }
+ return false;
+
+ }
+
+ public boolean isBefore(Position position) {
+ assertNotNull(position);
+ if (position.line == Node.ABSOLUTE_END_LINE) return true;
+ if (line < position.line) {
+ return true;
+ } else if (line == position.line) {
+ return column < position.column;
+ }
+ return false;
+ }
+
+ @Override
+ public int compareTo(Position o) {
+ assertNotNull(o);
+ if (isBefore(o)) {
+ return -1;
+ }
+ if (isAfter(o)) {
+ return 1;
+ }
+ return 0;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Position position = (Position) o;
+
+ return line == position.line && column == position.column;
+ }
+
+ @Override
+ public int hashCode() {
+ return 31 * line + column;
+ }
+
+ @Override
+ public String toString() {
+ return "(line " + line + ",col " + column + ")";
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Problem.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Problem.java
new file mode 100644
index 000000000..7e45cc987
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Problem.java
@@ -0,0 +1,39 @@
+package com.github.javaparser;
+
+import java.util.Optional;
+
+import static com.github.javaparser.utils.Utils.assertNotNull;
+
+/**
+ * A problem that was encountered during parsing.
+ */
+public class Problem {
+ private final String message;
+ private final Optional<Range> range;
+ private final Optional<Throwable> cause;
+
+ Problem(String message, Optional<Range> range, Optional<Throwable> cause) {
+ this.message = assertNotNull(message);
+ this.range = assertNotNull(range);
+ this.cause = assertNotNull(cause);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder str = new StringBuilder(message);
+ range.ifPresent(r -> str.append(" ").append(r));
+ return str.toString();
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public Optional<Range> getRange() {
+ return range;
+ }
+
+ public Optional<Throwable> getCause() {
+ return cause;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Providers.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Providers.java
new file mode 100644
index 000000000..b5e731c09
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Providers.java
@@ -0,0 +1,61 @@
+package com.github.javaparser;
+
+import java.io.*;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.nio.file.OpenOption;
+import java.nio.file.Path;
+
+import static com.github.javaparser.utils.Utils.assertNotNull;
+
+/**
+ * Factory for providers of source code for JavaParser.
+ * Providers that have no parameter for encoding but need it will use UTF-8.
+ */
+public final class Providers {
+ public static final Charset UTF8 = Charset.forName("utf-8");
+
+ private Providers() {
+ }
+
+ public static Provider provider(Reader reader) {
+ return new StreamProvider(assertNotNull(reader));
+ }
+
+ public static Provider provider(InputStream input, Charset encoding) {
+ assertNotNull(input);
+ assertNotNull(encoding);
+ try {
+ return new StreamProvider(input, encoding.name());
+ } catch (IOException e) {
+ // The only one that is thrown is UnsupportedCharacterEncodingException,
+ // and that's a fundamental problem, so runtime exception.
+ throw new RuntimeException(e);
+ }
+ }
+
+ public static Provider provider(InputStream input) {
+ return provider(input, UTF8);
+ }
+
+ public static Provider provider(File file, Charset encoding) throws FileNotFoundException {
+ return provider(new FileInputStream(assertNotNull(file)), assertNotNull(encoding));
+ }
+
+ public static Provider provider(File file) throws FileNotFoundException {
+ return provider(assertNotNull(file), UTF8);
+ }
+
+ public static Provider provider(Path path, Charset encoding) throws IOException {
+ return provider(Files.newInputStream(assertNotNull(path)), assertNotNull(encoding));
+ }
+
+ public static Provider provider(Path path) throws IOException {
+ return provider(assertNotNull(path), UTF8);
+ }
+
+ public static Provider provider(String source) {
+ return new StringProvider(assertNotNull(source));
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Range.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Range.java
new file mode 100644
index 000000000..68e364aed
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/Range.java
@@ -0,0 +1,89 @@
+package com.github.javaparser;
+
+import static com.github.javaparser.Position.pos;
+
+/**
+ * A range of characters in a source file, from "begin" to "end", including the characters at "begin" and "end".
+ */
+public class Range {
+ public static final Range UNKNOWN = range(Position.UNKNOWN, Position.UNKNOWN);
+
+ public final Position begin;
+ public final Position end;
+
+ public Range(Position begin, Position end) {
+ if (begin == null) {
+ throw new IllegalArgumentException("begin can't be null");
+ }
+ if (end == null) {
+ throw new IllegalArgumentException("end can't be null");
+ }
+ this.begin = begin;
+ this.end = end;
+ }
+
+ public static Range range(Position begin, Position end) {
+ return new Range(begin, end);
+ }
+
+ public static Range range(int beginLine, int beginColumn, int endLine, int endColumn) {
+ return new Range(pos(beginLine, beginColumn), pos(endLine, endColumn));
+ }
+
+ public Range withBeginColumn(int column) {
+ return range(begin.withColumn(column), end);
+ }
+
+ public Range withBeginLine(int line) {
+ return range(begin.withLine(line), end);
+ }
+
+ public Range withEndColumn(int column) {
+ return range(begin, end.withColumn(column));
+ }
+
+ public Range withEndLine(int line) {
+ return range(begin, end.withLine(line));
+ }
+
+ public Range withBegin(Position begin) {
+ return range(begin, this.end);
+ }
+
+ public Range withEnd(Position end) {
+ return range(this.begin, end);
+ }
+
+ public boolean contains(Range other) {
+ return begin.isBefore(other.begin) && end.isAfter(other.end);
+ }
+
+ public boolean isBefore(Position position) {
+ return end.isBefore(position);
+ }
+
+ public boolean isAfter(Position position) {
+ return begin.isAfter(position);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Range range = (Range) o;
+
+ return begin.equals(range.begin) && end.equals(range.end);
+
+ }
+
+ @Override
+ public int hashCode() {
+ return 31 * begin.hashCode() + end.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return begin+"-"+end;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/AccessSpecifier.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/AccessSpecifier.java
new file mode 100644
index 000000000..f23f8631d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/AccessSpecifier.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+/**
+ * Access specifier. Represents one of the possible levels of
+ * access permitted by the language.
+ *
+ * @author Federico Tomassetti
+ * @since July 2014
+ */
+public enum AccessSpecifier {
+
+ PUBLIC("public"),
+ PRIVATE("private"),
+ PROTECTED("protected"),
+ DEFAULT("");
+
+ private String codeRepresenation;
+
+ AccessSpecifier(String codeRepresentation) {
+ this.codeRepresenation = codeRepresentation;
+ }
+
+ public String getCodeRepresenation(){
+ return this.codeRepresenation;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ArrayBracketPair.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ArrayBracketPair.java
new file mode 100644
index 000000000..cca0b8761
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ArrayBracketPair.java
@@ -0,0 +1,44 @@
+package com.github.javaparser.ast;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * In, for example, <code>int[] a[];</code> there are two ArrayBracketPair objects,
+ * one for the [] after int, one for the [] after a.
+ */
+public class ArrayBracketPair extends Node implements NodeWithAnnotations<ArrayBracketPair> {
+ private List<AnnotationExpr> annotations;
+
+ public ArrayBracketPair(Range range, List<AnnotationExpr> annotations) {
+ super(range);
+ setAnnotations(annotations);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ annotations = ensureNotNull(annotations);
+ return annotations;
+ }
+
+ public ArrayBracketPair setAnnotations(List<AnnotationExpr> annotations) {
+ setAsParentNodeOf(annotations);
+ this.annotations = annotations;
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ArrayCreationLevel.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ArrayCreationLevel.java
new file mode 100644
index 000000000..2edc68c2a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ArrayCreationLevel.java
@@ -0,0 +1,56 @@
+package com.github.javaparser.ast;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * In <code>new int[1][2];</code> there are two ArrayCreationLevel objects,
+ * the first one contains the expression "1",
+ * the second the expression "2".
+ */
+public class ArrayCreationLevel extends Node implements NodeWithAnnotations<ArrayCreationLevel> {
+ private Expression dimension;
+ private List<AnnotationExpr> annotations;
+
+ public ArrayCreationLevel(Range range, Expression dimension, List<AnnotationExpr> annotations) {
+ super(range);
+ setDimension(dimension);
+ setAnnotations(annotations);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public void setDimension(Expression dimension) {
+ this.dimension = dimension;
+ setAsParentNodeOf(dimension);
+ }
+
+ public Expression getDimension() {
+ return dimension;
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ annotations = ensureNotNull(annotations);
+ return annotations;
+ }
+
+ public ArrayCreationLevel setAnnotations(List<AnnotationExpr> annotations) {
+ setAsParentNodeOf(annotations);
+ this.annotations = annotations;
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java
new file mode 100644
index 000000000..2f30777de
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java
@@ -0,0 +1,413 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+import static com.github.javaparser.ast.expr.NameExpr.*;
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.utils.ClassUtils;
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.body.*;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+import com.github.javaparser.utils.ClassUtils;
+
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * <p>
+ * This class represents the entire compilation unit. Each java file denotes a
+ * compilation unit.
+ * </p>
+ * The CompilationUnit is constructed following the syntax:<br>
+ *
+ * <pre>
+ * {@code
+ * CompilationUnit ::= ( }{@link PackageDeclaration}{@code )?
+ * ( }{@link ImportDeclaration}{@code )*
+ * ( }{@link TypeDeclaration}{@code )*
+ * }
+ * </pre>
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class CompilationUnit extends Node {
+
+ private PackageDeclaration pakage;
+
+ private List<ImportDeclaration> imports;
+
+ private List<TypeDeclaration<?>> types;
+
+ public CompilationUnit() {
+ }
+
+ public CompilationUnit(PackageDeclaration pakage, List<ImportDeclaration> imports, List<TypeDeclaration<?>> types) {
+ setPackage(pakage);
+ setImports(imports);
+ setTypes(types);
+ }
+
+ public CompilationUnit(Range range, PackageDeclaration pakage, List<ImportDeclaration> imports,
+ List<TypeDeclaration<?>> types) {
+ super(range);
+ setPackage(pakage);
+ setImports(imports);
+ setTypes(types);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return a list containing all comments declared in this compilation unit.
+ * Including javadocs, line comments and block comments of all types,
+ * inner-classes and other members.<br>
+ * If there is no comment, <code>null</code> is returned.
+ *
+ * @return list with all comments of this compilation unit or
+ * <code>null</code>
+ * @see JavadocComment
+ * @see com.github.javaparser.ast.comments.LineComment
+ * @see com.github.javaparser.ast.comments.BlockComment
+ */
+ public List<Comment> getComments() {
+ return this.getAllContainedComments();
+ }
+
+ /**
+ * Retrieves the list of imports declared in this compilation unit or
+ * <code>null</code> if there is no import.
+ *
+ * @return the list of imports or <code>null</code> if there is no import
+ */
+ public List<ImportDeclaration> getImports() {
+ imports = ensureNotNull(imports);
+ return imports;
+ }
+
+ /**
+ * Retrieves the package declaration of this compilation unit.<br>
+ * If this compilation unit has no package declaration (default package),
+ * <code>null</code> is returned.
+ *
+ * @return the package declaration or <code>null</code>
+ */
+ public PackageDeclaration getPackage() {
+ return pakage;
+ }
+
+ /**
+ * Return the list of types declared in this compilation unit.<br>
+ * If there is no types declared, <code>null</code> is returned.
+ *
+ * @return the list of types or <code>null</code> null if there is no type
+ * @see AnnotationDeclaration
+ * @see ClassOrInterfaceDeclaration
+ * @see EmptyTypeDeclaration
+ * @see EnumDeclaration
+ */
+ public List<TypeDeclaration<?>> getTypes() {
+ types = ensureNotNull(types);
+ return types;
+ }
+
+ /**
+ * Sets the list of comments of this compilation unit.
+ *
+ * @param comments
+ * the list of comments
+ */
+ public CompilationUnit setComments(List<Comment> comments) {
+ throw new RuntimeException("Not implemented!");
+ }
+
+ /**
+ * Sets the list of imports of this compilation unit. The list is initially
+ * <code>null</code>.
+ *
+ * @param imports
+ * the list of imports
+ */
+ public CompilationUnit setImports(List<ImportDeclaration> imports) {
+ this.imports = imports;
+ setAsParentNodeOf(this.imports);
+ return this;
+ }
+
+ /**
+ * Sets or clear the package declarations of this compilation unit.
+ *
+ * @param pakage
+ * the pakage declaration to set or <code>null</code> to default
+ * package
+ */
+ public CompilationUnit setPackage(PackageDeclaration pakage) {
+ this.pakage = pakage;
+ setAsParentNodeOf(this.pakage);
+ return this;
+ }
+
+ /**
+ * Sets the list of types declared in this compilation unit.
+ *
+ * @param types
+ * the lis of types
+ */
+ public CompilationUnit setTypes(List<TypeDeclaration<?>> types) {
+ this.types = types;
+ setAsParentNodeOf(this.types);
+ return this;
+ }
+
+ /**
+ * sets the package declaration of this compilation unit
+ *
+ * @param name the name of the package
+ * @return this, the {@link CompilationUnit}
+ */
+ public CompilationUnit setPackageName(String name) {
+ setPackage(new PackageDeclaration(name(name)));
+ return this;
+ }
+
+ /**
+ * Add an import to the list of {@link ImportDeclaration} of this compilation unit<br>
+ * shorthand for {@link #addImport(String, boolean, boolean)} with name,false,false
+ *
+ * @param name the import name
+ * @return this, the {@link CompilationUnit}
+ */
+ public CompilationUnit addImport(String name) {
+ return addImport(name, false, false);
+ }
+
+ /**
+ * Add an import to the list of {@link ImportDeclaration} of this compilation unit<br>
+ * shorthand for {@link #addImport(String)} with clazz.getName()
+ *
+ * @param clazz the class to import
+ * @return this, the {@link CompilationUnit}
+ */
+ public CompilationUnit addImport(Class<?> clazz) {
+ if (ClassUtils.isPrimitiveOrWrapper(clazz) || clazz.getName().startsWith("java.lang"))
+ return this;
+ else if (clazz.isArray() && !ClassUtils.isPrimitiveOrWrapper(clazz.getComponentType())
+ && !clazz.getComponentType().getName().startsWith("java.lang"))
+ return addImport(clazz.getComponentType().getName());
+ return addImport(clazz.getName());
+ }
+
+ /**
+ * Add an import to the list of {@link ImportDeclaration} of this compilation unit<br>
+ * <b>This method check if no import with the same name is already in the list</b>
+ *
+ * @param name the import name
+ * @param isStatic is it an "import static"
+ * @param isAsterisk does the import end with ".*"
+ * @return this, the {@link CompilationUnit}
+ */
+ public CompilationUnit addImport(String name, boolean isStatic, boolean isAsterisk) {
+ if (getImports().stream().anyMatch(i -> i.getName().toString().equals(name)))
+ return this;
+ else {
+ ImportDeclaration importDeclaration = new ImportDeclaration(name(name), isStatic,
+ isAsterisk);
+ getImports().add(importDeclaration);
+ importDeclaration.setParentNode(this);
+ return this;
+ }
+ }
+
+ /**
+ * Add a public class to the types of this compilation unit
+ *
+ * @param name the class name
+ * @return the newly created class
+ */
+ public ClassOrInterfaceDeclaration addClass(String name) {
+ return addClass(name, Modifier.PUBLIC);
+ }
+
+ /**
+ * Add a class to the types of this compilation unit
+ *
+ * @param name the class name
+ * @param modifiers the modifiers (like Modifier.PUBLIC)
+ * @return the newly created class
+ */
+ public ClassOrInterfaceDeclaration addClass(String name, Modifier... modifiers) {
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = new ClassOrInterfaceDeclaration(
+ Arrays.stream(modifiers)
+ .collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))),
+ false, name);
+ getTypes().add(classOrInterfaceDeclaration);
+ classOrInterfaceDeclaration.setParentNode(this);
+ return classOrInterfaceDeclaration;
+ }
+
+ /**
+ * Add a public interface class to the types of this compilation unit
+ *
+ * @param name the interface name
+ * @return the newly created class
+ */
+ public ClassOrInterfaceDeclaration addInterface(String name) {
+ return addInterface(name, Modifier.PUBLIC);
+ }
+
+ /**
+ * Add an interface to the types of this compilation unit
+ *
+ * @param name the interface name
+ * @param modifiers the modifiers (like Modifier.PUBLIC)
+ * @return the newly created class
+ */
+ public ClassOrInterfaceDeclaration addInterface(String name, Modifier... modifiers) {
+ ClassOrInterfaceDeclaration classOrInterfaceDeclaration = new ClassOrInterfaceDeclaration(
+ Arrays.stream(modifiers)
+ .collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))),
+ true, name);
+ getTypes().add(classOrInterfaceDeclaration);
+ classOrInterfaceDeclaration.setParentNode(this);
+ return classOrInterfaceDeclaration;
+ }
+
+ /**
+ * Add a public enum to the types of this compilation unit
+ *
+ * @param name the enum name
+ * @return the newly created class
+ */
+ public EnumDeclaration addEnum(String name) {
+ return addEnum(name, Modifier.PUBLIC);
+ }
+
+ /**
+ * Add an enum to the types of this compilation unit
+ *
+ * @param name the enum name
+ * @param modifiers the modifiers (like Modifier.PUBLIC)
+ * @return the newly created class
+ */
+ public EnumDeclaration addEnum(String name, Modifier... modifiers) {
+ EnumDeclaration enumDeclaration = new EnumDeclaration(Arrays.stream(modifiers)
+ .collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))), name);
+ getTypes().add(enumDeclaration);
+ enumDeclaration.setParentNode(this);
+ return enumDeclaration;
+ }
+
+ /**
+ * Add a public annotation declaration to the types of this compilation unit
+ *
+ * @param name the annotation name
+ * @return the newly created class
+ */
+ public AnnotationDeclaration addAnnotationDeclaration(String name) {
+ return addAnnotationDeclaration(name, Modifier.PUBLIC);
+ }
+
+ /**
+ * Add an annotation declaration to the types of this compilation unit
+ *
+ * @param name the annotation name
+ * @param modifiers the modifiers (like Modifier.PUBLIC)
+ * @return the newly created class
+ */
+ public AnnotationDeclaration addAnnotationDeclaration(String name, Modifier... modifiers) {
+ AnnotationDeclaration annotationDeclaration = new AnnotationDeclaration(Arrays.stream(modifiers)
+ .collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))), name);
+ getTypes().add(annotationDeclaration);
+ annotationDeclaration.setParentNode(this);
+ return annotationDeclaration;
+ }
+
+ /**
+ * Try to get a class by its name
+ *
+ * @param className the class name (case-sensitive)
+ * @return null if not found, the class otherwise
+ */
+ public ClassOrInterfaceDeclaration getClassByName(String className) {
+ return (ClassOrInterfaceDeclaration) getTypes().stream().filter(type -> type.getName().equals(className)
+ && type instanceof ClassOrInterfaceDeclaration && !((ClassOrInterfaceDeclaration) type).isInterface())
+ .findFirst().orElse(null);
+ }
+
+ /**
+ * Try to get an interface by its name
+ *
+ * @param interfaceName the interface name (case-sensitive)
+ * @return null if not found, the interface otherwise
+ */
+ public ClassOrInterfaceDeclaration getInterfaceByName(String interfaceName) {
+ return (ClassOrInterfaceDeclaration) getTypes().stream().filter(type -> type.getName().equals(interfaceName)
+ && type instanceof ClassOrInterfaceDeclaration && ((ClassOrInterfaceDeclaration) type).isInterface())
+ .findFirst().orElse(null);
+ }
+
+ /**
+ * Try to get an enum by its name
+ *
+ * @param enumName the enum name (case-sensitive)
+ * @return null if not found, the enum otherwise
+ */
+ public EnumDeclaration getEnumByName(String enumName) {
+ return (EnumDeclaration) getTypes().stream().filter(type -> type.getName().equals(enumName)
+ && type instanceof EnumDeclaration)
+ .findFirst().orElse(null);
+ }
+
+ /**
+ * Try to get an annotation by its name
+ *
+ * @param annotationName the annotation name (case-sensitive)
+ * @return null if not found, the annotation otherwise
+ */
+ public AnnotationDeclaration getAnnotationDeclarationByName(String annotationName) {
+ return (AnnotationDeclaration) getTypes().stream().filter(type -> type.getName().equals(annotationName)
+ && type instanceof AnnotationDeclaration)
+ .findFirst().orElse(null);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Example.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Example.java
new file mode 100644
index 000000000..70cf2cd91
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Example.java
@@ -0,0 +1,31 @@
+package com.github.javaparser.ast;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+
+/**
+ * Created by federico on 07/01/16.
+ */
+public class Example {
+
+ public static void main(String[] args) throws UnsupportedEncodingException, ParseException {
+ String code = "interface A {\n" +
+ " default Comparator<T> thenComparing(Comparator<? super T> other) {\n" +
+ " Objects.requireNonNull(other);\n" +
+ " return (Comparator<T> & Serializable) (c1, c2) -> { // this is the defaulting line\n" +
+ " int res = compare(c1, c2);\n" +
+ " return (res != 0) ? res : other.compare(c1, c2);\n" +
+ " };\n" +
+ " }\n" +
+ "}";
+ InputStream stream = new ByteArrayInputStream(code.getBytes("UTF-8"));
+ CompilationUnit cu = JavaParser.parse(stream);
+
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ImportDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ImportDeclaration.java
new file mode 100644
index 000000000..863c8d364
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/ImportDeclaration.java
@@ -0,0 +1,188 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * <p>
+ * This class represents a import declaration or an empty import declaration. Imports are optional for the
+ * {@link CompilationUnit}.
+ * </p>
+ * The ImportDeclaration is constructed following the syntax:<br>
+ * <pre>
+ * {@code
+ * ImportDeclaration ::= "import" ( "static" )? }{@link NameExpr}{@code ( "." "*" )? ";"
+ * }
+ * </pre>
+ * An enmpty import declaration is simply a semicolon among the import declarations.
+ * @author Julio Vilmar Gesser
+ */
+public final class ImportDeclaration extends Node {
+
+ private NameExpr name;
+ private boolean static_;
+ private boolean asterisk;
+ private boolean isEmptyImportDeclaration;
+
+ private ImportDeclaration() {
+ this.isEmptyImportDeclaration = true;
+ static_ = false;
+ asterisk = false;
+ }
+
+ private ImportDeclaration(Range range) {
+ super(range);
+ this.isEmptyImportDeclaration = true;
+ static_ = false;
+ asterisk = false;
+ }
+
+ /**
+ * Create an empty import declaration without specifying its position.
+ */
+ public static ImportDeclaration createEmptyDeclaration(){
+ return new ImportDeclaration();
+ }
+
+ /**
+ * Create an empty import declaration specifying its position.
+ */
+ public static ImportDeclaration createEmptyDeclaration(Range range){
+ return new ImportDeclaration(range);
+ }
+
+ public ImportDeclaration(NameExpr name, boolean isStatic, boolean isAsterisk) {
+ setAsterisk(isAsterisk);
+ setName(name);
+ setStatic(isStatic);
+ this.isEmptyImportDeclaration = false;
+ }
+
+ public ImportDeclaration(Range range, NameExpr name, boolean isStatic, boolean isAsterisk) {
+ super(range);
+ setAsterisk(isAsterisk);
+ setName(name);
+ setStatic(isStatic);
+ this.isEmptyImportDeclaration = false;
+ }
+
+ /**
+ * Is this an empty import declaration or a normal import declaration?
+ */
+ public boolean isEmptyImportDeclaration(){
+ return this.isEmptyImportDeclaration;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Retrieves the name of the import.
+ *
+ * @return the name of the import
+ * @throws UnsupportedOperationException when invoked on an empty import declaration
+ */
+ public NameExpr getName() {
+ if (isEmptyImportDeclaration) {
+ throw new UnsupportedOperationException("Empty import declarations have no name");
+ }
+ return name;
+ }
+
+ /**
+ * Return if the import ends with "*".
+ *
+ * @return <code>true</code> if the import ends with "*", <code>false</code>
+ * otherwise
+ */
+ public boolean isAsterisk() {
+ return asterisk;
+ }
+
+ /**
+ * Return if the import is static.
+ *
+ * @return <code>true</code> if the import is static, <code>false</code>
+ * otherwise
+ */
+ public boolean isStatic() {
+ return static_;
+ }
+
+ /**
+ * Sets if this import is asterisk.
+ *
+ * @param asterisk
+ * <code>true</code> if this import is asterisk
+ * @throws UnsupportedOperationException when setting true on an empty import declaration
+ */
+ public ImportDeclaration setAsterisk(boolean asterisk) {
+ if (isEmptyImportDeclaration && asterisk) {
+ throw new UnsupportedOperationException("Empty import cannot have asterisk");
+ }
+ this.asterisk = asterisk;
+ return this;
+ }
+
+ /**
+ * Sets the name this import.
+ *
+ * @param name
+ * the name to set
+ * @throws UnsupportedOperationException when invoked on an empty import declaration
+ */
+ public ImportDeclaration setName(NameExpr name) {
+ if (isEmptyImportDeclaration) {
+ throw new UnsupportedOperationException("Empty import cannot have name");
+ }
+ this.name = name;
+ setAsParentNodeOf(this.name);
+ return this;
+ }
+
+ /**
+ * Sets if this import is static.
+ *
+ * @param static_
+ * <code>true</code> if this import is static
+ * @throws UnsupportedOperationException when setting true on an empty import declaration
+ */
+ public ImportDeclaration setStatic(boolean static_) {
+ if (isEmptyImportDeclaration && static_) {
+ throw new UnsupportedOperationException("Empty import cannot be static");
+ }
+ this.static_ = static_;
+ return this;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Modifier.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Modifier.java
new file mode 100644
index 000000000..3f5a50b45
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Modifier.java
@@ -0,0 +1,46 @@
+package com.github.javaparser.ast;
+
+import java.util.EnumSet;
+
+public enum Modifier {
+ PUBLIC("public"),
+ PROTECTED("protected"),
+ PRIVATE("private"),
+ ABSTRACT("abstract"),
+ STATIC("static"),
+ FINAL("final"),
+ TRANSIENT("transient"),
+ VOLATILE("volatile"),
+ SYNCHRONIZED("synchronized"),
+ NATIVE("native"),
+ STRICTFP("strictfp");
+
+ String lib;
+
+ private Modifier(String lib) {
+ this.lib = lib;
+ }
+
+ /**
+ * @return the lib
+ */
+ public String getLib() {
+ return lib;
+ }
+
+ public EnumSet<Modifier> toEnumSet() {
+ return EnumSet.of(this);
+ }
+
+ public static AccessSpecifier getAccessSpecifier(EnumSet<Modifier> modifiers) {
+ if (modifiers.contains(Modifier.PUBLIC)) {
+ return AccessSpecifier.PUBLIC;
+ } else if (modifiers.contains(Modifier.PROTECTED)) {
+ return AccessSpecifier.PROTECTED;
+ } else if (modifiers.contains(Modifier.PRIVATE)) {
+ return AccessSpecifier.PRIVATE;
+ } else {
+ return AccessSpecifier.DEFAULT;
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Node.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Node.java
new file mode 100644
index 000000000..f2bae43b1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/Node.java
@@ -0,0 +1,396 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+import com.github.javaparser.Position;
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.visitor.*;
+
+import java.util.*;
+
+/**
+ * Abstract class for all nodes of the AST.
+ *
+ * Each Node can have one associated comment which describe it and
+ * a number of "orphan comments" which it contains but are not specifically
+ * associated to any element.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Node implements Cloneable {
+ /**
+ * This can be used to sort nodes on position.
+ */
+ public static Comparator<Node> NODE_BY_BEGIN_POSITION = (a, b) -> a.getBegin().compareTo(b.getBegin());
+
+ private Range range;
+
+ private Node parentNode;
+
+ private List<Node> childrenNodes = new LinkedList<>();
+ private List<Comment> orphanComments = new LinkedList<>();
+
+ private IdentityHashMap<UserDataKey<?>, Object> userData = null;
+
+ private Comment comment;
+
+ public Node() {
+ this(Range.UNKNOWN);
+ }
+
+ public Node(Range range) {
+ this.range = range;
+ }
+
+ /**
+ * Accept method for visitor support.
+ *
+ * @param <R>
+ * the type the return value of the visitor
+ * @param <A>
+ * the type the argument passed to the visitor
+ * @param v
+ * the visitor implementation
+ * @param arg
+ * the argument passed to the visitor
+ * @return the result of the visit
+ */
+ public abstract <R, A> R accept(GenericVisitor<R, A> v, A arg);
+
+ /**
+ * Accept method for visitor support.
+ *
+ * @param <A>
+ * the type the argument passed for the visitor
+ * @param v
+ * the visitor implementation
+ * @param arg
+ * any value relevant for the visitor
+ */
+ public abstract <A> void accept(VoidVisitor<A> v, A arg);
+
+ /**
+ * This is a comment associated with this node.
+ *
+ * @return comment property
+ */
+ public final Comment getComment() {
+ return comment;
+ }
+
+ /**
+ * The begin position of this node in the source file.
+ */
+ public Position getBegin() {
+ return range.begin;
+ }
+
+ /**
+ * The end position of this node in the source file.
+ */
+ public Position getEnd() {
+ return range.end;
+ }
+
+ /**
+ * Sets the begin position of this node in the source file.
+ */
+ public Node setBegin(Position begin) {
+ range = range.withBegin(begin);
+ return this;
+ }
+
+ /**
+ * Sets the end position of this node in the source file.
+ */
+ public Node setEnd(Position end) {
+ range = range.withEnd(end);
+ return this;
+ }
+
+ /**
+ * @return the range of characters in the source code that this node covers.
+ */
+ public Range getRange() {
+ return range;
+ }
+
+ /**
+ * @param range the range of characters in the source code that this node covers.
+ */
+ public Node setRange(Range range) {
+ this.range = range;
+ return this;
+ }
+
+ /**
+ * Use this to store additional information to this node.
+ *
+ * @param comment to be set
+ */
+ public final Node setComment(final Comment comment) {
+ if (comment != null && (this instanceof Comment)) {
+ throw new RuntimeException("A comment can not be commented");
+ }
+ if (this.comment != null) {
+ this.comment.setCommentedNode(null);
+ }
+ this.comment = comment;
+ if (comment != null) {
+ this.comment.setCommentedNode(this);
+ }
+ return this;
+ }
+
+
+
+ /**
+ * Use this to store additional information to this node.
+ *
+ * @param comment to be set
+ */
+ public final Node setLineComment(String comment) {
+ return setComment(new LineComment(comment));
+ }
+
+ /**
+ * Use this to store additional information to this node.
+ *
+ * @param comment to be set
+ */
+ public final Node setBlockComment(String comment) {
+ return setComment(new BlockComment(comment));
+ }
+
+ /**
+ * Return the String representation of this node.
+ *
+ * @return the String representation of this node
+ */
+ @Override
+ public final String toString() {
+ final DumpVisitor visitor = new DumpVisitor();
+ accept(visitor, null);
+ return visitor.getSource();
+ }
+
+ public final String toStringWithoutComments() {
+ final DumpVisitor visitor = new DumpVisitor(false);
+ accept(visitor, null);
+ return visitor.getSource();
+ }
+
+ @Override
+ public final int hashCode() {
+ return toString().hashCode();
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj == null || !(obj instanceof Node)) {
+ return false;
+ }
+ return EqualsVisitor.equals(this, (Node) obj);
+ }
+
+ @Override
+ public Node clone() {
+ return this.accept(new CloneVisitor(), null);
+ }
+
+ public Node getParentNode() {
+ return parentNode;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T> T getParentNodeOfType(Class<T> classType) {
+ Node parent = parentNode;
+ while (parent != null) {
+ if (classType.isAssignableFrom(parent.getClass()))
+ return (T) parent;
+ parent = parent.parentNode;
+ }
+ return null;
+ }
+
+ public List<Node> getChildrenNodes() {
+ return childrenNodes;
+ }
+
+ public boolean contains(Node other) {
+ return range.contains(other.range);
+ }
+
+ public void addOrphanComment(Comment comment) {
+ orphanComments.add(comment);
+ comment.setParentNode(this);
+ }
+
+ /**
+ * This is a list of Comment which are inside the node and are not associated
+ * with any meaningful AST Node.
+ *
+ * For example, comments at the end of methods (immediately before the parenthesis)
+ * or at the end of CompilationUnit are orphan comments.
+ *
+ * When more than one comment preceeds a statement, the one immediately preceding it
+ * it is associated with the statements, while the others are orphans.
+ *
+ * @return all comments that cannot be attributed to a concept
+ */
+ public List<Comment> getOrphanComments() {
+ return orphanComments;
+ }
+
+ /**
+ * This is the list of Comment which are contained in the Node either because
+ * they are properly associated to one of its children or because they are floating
+ * around inside the Node
+ *
+ * @return all Comments within the node as a list
+ */
+ public List<Comment> getAllContainedComments() {
+ List<Comment> comments = new LinkedList<>();
+ comments.addAll(getOrphanComments());
+
+ for (Node child : getChildrenNodes()) {
+ if (child.getComment() != null) {
+ comments.add(child.getComment());
+ }
+ comments.addAll(child.getAllContainedComments());
+ }
+
+ return comments;
+ }
+
+ /**
+ * Assign a new parent to this node, removing it
+ * from the list of children of the previous parent, if any.
+ *
+ * @param parentNode node to be set as parent
+ */
+ public void setParentNode(Node parentNode) {
+ // remove from old parent, if any
+ if (this.parentNode != null) {
+ this.parentNode.childrenNodes.remove(this);
+ }
+ this.parentNode = parentNode;
+ // add to new parent, if any
+ if (this.parentNode != null) {
+ this.parentNode.childrenNodes.add(this);
+ }
+ }
+
+ protected void setAsParentNodeOf(List<? extends Node> childNodes) {
+ if (childNodes != null) {
+ for (Node current : childNodes) {
+ current.setParentNode(this);
+ }
+ }
+ }
+
+ protected void setAsParentNodeOf(Node childNode) {
+ if (childNode != null) {
+ childNode.setParentNode(this);
+ }
+ }
+
+ public static final int ABSOLUTE_BEGIN_LINE = -1;
+ public static final int ABSOLUTE_END_LINE = -2;
+
+ public boolean isPositionedAfter(Position position) {
+ return range.isAfter(position);
+ }
+
+ public boolean isPositionedBefore(Position position) {
+ return range.isBefore(position);
+ }
+
+ public boolean hasComment() {
+ return comment != null;
+ }
+
+ public void tryAddImportToParentCompilationUnit(Class<?> clazz) {
+ CompilationUnit parentNode = getParentNodeOfType(CompilationUnit.class);
+ if (parentNode != null) {
+ parentNode.addImport(clazz);
+ }
+ }
+
+ /**
+ * Recursively finds all nodes of a certain type.
+ *
+ * @param clazz the type of node to find.
+ */
+ public <N extends Node> List<N> getNodesByType(Class<N> clazz) {
+ List<N> nodes = new ArrayList<>();
+ for (Node child : getChildrenNodes()) {
+ if (clazz.isInstance(child)) {
+ nodes.add(clazz.cast(child));
+ }
+ nodes.addAll(child.getNodesByType(clazz));
+ }
+ return nodes;
+ }
+
+ /**
+ * Gets user data for this component using the given key.
+ *
+ * @param <M>
+ * The type of the user data.
+ *
+ * @param key
+ * The key for the data
+ * @return The user data or null of no user data was found for the given key
+ * @see UserDataKey
+ */
+ public <M> M getUserData(final UserDataKey<M> key) {
+ if (userData == null) {
+ return null;
+ }
+ return (M) userData.get(key);
+ }
+
+ /**
+ * Sets user data for this component using the given key.
+ * For information on creating UserDataKey, see {@link UserDataKey}.
+ *
+ * @param <M>
+ * The type of user data
+ *
+ * @param key
+ * The singleton key for the user data
+ * @param object
+ * The user data object
+ * @throws IllegalArgumentException
+ * @see UserDataKey
+ */
+ public <M> void setUserData(UserDataKey<M> key, M object) {
+ if (userData == null) {
+ userData = new IdentityHashMap<>();
+ }
+ userData.put(key, object);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/PackageDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/PackageDeclaration.java
new file mode 100644
index 000000000..4252ad4e9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/PackageDeclaration.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.utils.Utils;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * <p>
+ * This class represents the package declaration. The package declaration is
+ * optional for the {@link CompilationUnit}.
+ * </p>
+ * The PackageDeclaration is constructed following the syntax:<br>
+ * <pre>
+ * {@code
+ * PackageDeclaration ::= ( }{@link AnnotationExpr}{@code )* "package" }{@link NameExpr}{@code ) ";"
+ * }
+ * </pre>
+ * @author Julio Vilmar Gesser
+ */
+public final class PackageDeclaration extends Node implements NodeWithAnnotations<PackageDeclaration> {
+
+ private List<AnnotationExpr> annotations;
+
+ private NameExpr name;
+
+ public PackageDeclaration() {
+ }
+
+ public PackageDeclaration(NameExpr name) {
+ setName(name);
+ }
+
+ public PackageDeclaration(List<AnnotationExpr> annotations, NameExpr name) {
+ setAnnotations(annotations);
+ setName(name);
+ }
+
+ public PackageDeclaration(Range range, List<AnnotationExpr> annotations, NameExpr name) {
+ super(range);
+ setAnnotations(annotations);
+ setName(name);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Retrieves the list of annotations declared before the package
+ * declaration. Return <code>null</code> if there are no annotations.
+ *
+ * @return list of annotations or <code>null</code>
+ */
+ public List<AnnotationExpr> getAnnotations() {
+ annotations = Utils.ensureNotNull(annotations);
+ return annotations;
+ }
+
+ /**
+ * Return the name expression of the package.
+ *
+ * @return the name of the package
+ */
+ public NameExpr getName() {
+ return name;
+ }
+
+ /**
+ * Get full package name.
+ */
+ public String getPackageName() {
+ return name.toString();
+ }
+
+ /**
+ * @param annotations
+ * the annotations to set
+ */
+ public PackageDeclaration setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ setAsParentNodeOf(this.annotations);
+ return this;
+ }
+
+ /**
+ * Sets the name of this package declaration.
+ *
+ * @param name
+ * the name to set
+ */
+ public PackageDeclaration setName(NameExpr name) {
+ this.name = name;
+ setAsParentNodeOf(this.name);
+ return this;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/UserDataKey.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/UserDataKey.java
new file mode 100644
index 000000000..4d7caa2e2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/UserDataKey.java
@@ -0,0 +1,39 @@
+package com.github.javaparser.ast;
+
+/**
+ * A key to a piece of user data associated with a {@link Node} at runtime.
+ * The key contains type information that can be used to check the
+ * type of any user data value for the key when the value is set. UserDataKey is abstract in order to
+ * force the creation of a subtype. That subtype is used to test for identity when looking for the
+ * user data because actual object identity would suffer from problems under serialization.
+ * So, the correct way to declare a UserDataKey is like this:
+ *
+ * <pre>
+ * <code>
+ * public static final UserDataKey&lt;Role&gt; ROLE = new UserDataKey&lt;Role&gt;() { };
+ * </code>
+ * </pre>
+ *
+ * This code was taken from the <a href="http://wicket.apache.org/">Wicket project</a>.
+ *
+ * @param <T>
+ * The type of the object which is stored
+ *
+ * @see Node#getUserData(UserDataKey)
+ */
+public abstract class UserDataKey<T> {
+ @Override
+ public int hashCode()
+ {
+ return getClass().hashCode();
+ }
+
+ /**
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj)
+ {
+ return obj != null && getClass().equals(obj.getClass());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/AnnotationDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/AnnotationDeclaration.java
new file mode 100644
index 000000000..74d84e822
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/AnnotationDeclaration.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import java.util.List;
+
+import java.util.EnumSet;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AnnotationDeclaration extends TypeDeclaration<AnnotationDeclaration> {
+
+ public AnnotationDeclaration() {
+ }
+
+ public AnnotationDeclaration(EnumSet<Modifier> modifiers, String name) {
+ super(modifiers, name);
+ }
+
+ public AnnotationDeclaration(EnumSet<Modifier> modifiers, List<AnnotationExpr> annotations, String name,
+ List<BodyDeclaration<?>> members) {
+ super(annotations, modifiers, name, members);
+ }
+
+ public AnnotationDeclaration(Range range, EnumSet<Modifier> modifiers, List<AnnotationExpr> annotations, String name,
+ List<BodyDeclaration<?>> members) {
+ super(range, annotations, modifiers, name, members);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java
new file mode 100644
index 000000000..66b9dc3a3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc;
+import com.github.javaparser.ast.nodeTypes.NodeWithModifiers;
+import com.github.javaparser.ast.nodeTypes.NodeWithName;
+import com.github.javaparser.ast.nodeTypes.NodeWithType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.EnumSet;
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AnnotationMemberDeclaration extends BodyDeclaration<AnnotationMemberDeclaration>
+ implements NodeWithJavaDoc<AnnotationMemberDeclaration>, NodeWithName<AnnotationMemberDeclaration>,
+ NodeWithType<AnnotationMemberDeclaration>, NodeWithModifiers<AnnotationMemberDeclaration> {
+
+ private EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class);
+
+ private Type type;
+
+ private String name;
+
+ private Expression defaultValue;
+
+ public AnnotationMemberDeclaration() {
+ }
+
+ public AnnotationMemberDeclaration(EnumSet<Modifier> modifiers, Type type, String name, Expression defaultValue) {
+ setModifiers(modifiers);
+ setType(type);
+ setName(name);
+ setDefaultValue(defaultValue);
+ }
+
+ public AnnotationMemberDeclaration(EnumSet<Modifier> modifiers, List<AnnotationExpr> annotations, Type type, String name,
+ Expression defaultValue) {
+ super(annotations);
+ setModifiers(modifiers);
+ setType(type);
+ setName(name);
+ setDefaultValue(defaultValue);
+ }
+
+ public AnnotationMemberDeclaration(Range range, EnumSet<Modifier> modifiers, List<AnnotationExpr> annotations, Type type,
+ String name, Expression defaultValue) {
+ super(range, annotations);
+ setModifiers(modifiers);
+ setType(type);
+ setName(name);
+ setDefaultValue(defaultValue);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getDefaultValue() {
+ return defaultValue;
+ }
+
+ /**
+ * Return the modifiers of this member declaration.
+ *
+ * @see Modifier
+ * @return modifiers
+ */
+ @Override
+ public EnumSet<Modifier> getModifiers() {
+ return modifiers;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public Type getType() {
+ return type;
+ }
+
+ public AnnotationMemberDeclaration setDefaultValue(Expression defaultValue) {
+ this.defaultValue = defaultValue;
+ setAsParentNodeOf(defaultValue);
+ return this;
+ }
+
+ @Override
+ public AnnotationMemberDeclaration setModifiers(EnumSet<Modifier> modifiers) {
+ this.modifiers = modifiers;
+ return this;
+ }
+
+ @Override
+ public AnnotationMemberDeclaration setName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ @Override
+ public AnnotationMemberDeclaration setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(type);
+ return this;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ if (getComment() instanceof JavadocComment) {
+ return (JavadocComment) getComment();
+ }
+ return null;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/BodyDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/BodyDeclaration.java
new file mode 100644
index 000000000..9055d96a5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/BodyDeclaration.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import java.util.List;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.utils.Utils;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class BodyDeclaration<T> extends Node implements NodeWithAnnotations<T> {
+
+ private List<AnnotationExpr> annotations;
+
+ public BodyDeclaration() {
+ }
+
+ public BodyDeclaration(List<AnnotationExpr> annotations) {
+ setAnnotations(annotations);
+ }
+
+ public BodyDeclaration(Range range, List<AnnotationExpr> annotations) {
+ super(range);
+ setAnnotations(annotations);
+ }
+
+ @Override
+ public final List<AnnotationExpr> getAnnotations() {
+ annotations = Utils.ensureNotNull(annotations);
+ return annotations;
+ }
+
+ /**
+ *
+ * @param annotations a null value is currently treated as an empty list. This behavior could change
+ * in the future, so please avoid passing null
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public final T setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ setAsParentNodeOf(this.annotations);
+ return (T) this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java
new file mode 100644
index 000000000..4120d4a71
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithExtends;
+import com.github.javaparser.ast.nodeTypes.NodeWithImplements;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.EnumSet;
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ClassOrInterfaceDeclaration extends TypeDeclaration<ClassOrInterfaceDeclaration>
+ implements NodeWithImplements<ClassOrInterfaceDeclaration>, NodeWithExtends<ClassOrInterfaceDeclaration> {
+
+ private boolean interface_;
+
+ private List<TypeParameter> typeParameters;
+
+ // Can contain more than one item if this is an interface
+ private List<ClassOrInterfaceType> extendsList;
+
+ private List<ClassOrInterfaceType> implementsList;
+
+ public ClassOrInterfaceDeclaration() {
+ }
+
+ public ClassOrInterfaceDeclaration(final EnumSet<Modifier> modifiers, final boolean isInterface,
+ final String name) {
+ super(modifiers, name);
+ setInterface(isInterface);
+ }
+
+ public ClassOrInterfaceDeclaration(final EnumSet<Modifier> modifiers,
+ final List<AnnotationExpr> annotations, final boolean isInterface,
+ final String name,
+ final List<TypeParameter> typeParameters,
+ final List<ClassOrInterfaceType> extendsList,
+ final List<ClassOrInterfaceType> implementsList,
+ final List<BodyDeclaration<?>> members) {
+ super(annotations, modifiers, name, members);
+ setInterface(isInterface);
+ setTypeParameters(typeParameters);
+ setExtends(extendsList);
+ setImplements(implementsList);
+ }
+
+ public ClassOrInterfaceDeclaration(Range range, final EnumSet<Modifier> modifiers,
+ final List<AnnotationExpr> annotations, final boolean isInterface,
+ final String name,
+ final List<TypeParameter> typeParameters,
+ final List<ClassOrInterfaceType> extendsList,
+ final List<ClassOrInterfaceType> implementsList,
+ final List<BodyDeclaration<?>> members) {
+ super(range, annotations, modifiers, name, members);
+ setInterface(isInterface);
+ setTypeParameters(typeParameters);
+ setExtends(extendsList);
+ setImplements(implementsList);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<ClassOrInterfaceType> getExtends() {
+ extendsList = ensureNotNull(extendsList);
+ return extendsList;
+ }
+
+ @Override
+ public List<ClassOrInterfaceType> getImplements() {
+ implementsList = ensureNotNull(implementsList);
+ return implementsList;
+ }
+
+ public List<TypeParameter> getTypeParameters() {
+ typeParameters = ensureNotNull(typeParameters);
+ return typeParameters;
+ }
+
+ public boolean isInterface() {
+ return interface_;
+ }
+
+ /**
+ *
+ * @param extendsList a null value is currently treated as an empty list. This behavior could change
+ * in the future, so please avoid passing null
+ * @return
+ */
+ @Override
+ public ClassOrInterfaceDeclaration setExtends(final List<ClassOrInterfaceType> extendsList) {
+ this.extendsList = extendsList;
+ setAsParentNodeOf(this.extendsList);
+ return this;
+ }
+
+ /**
+ *
+ * @param implementsList a null value is currently treated as an empty list. This behavior could change
+ * in the future, so please avoid passing null
+ */
+ @Override
+ public ClassOrInterfaceDeclaration setImplements(final List<ClassOrInterfaceType> implementsList) {
+ this.implementsList = implementsList;
+ setAsParentNodeOf(this.implementsList);
+ return this;
+ }
+
+ public ClassOrInterfaceDeclaration setInterface(final boolean interface_) {
+ this.interface_ = interface_;
+ return this;
+ }
+
+ /**
+ *
+ * @param typeParameters a null value is currently treated as an empty list. This behavior could change
+ * in the future, so please avoid passing null
+ */
+ public ClassOrInterfaceDeclaration setTypeParameters(final List<TypeParameter> typeParameters) {
+ this.typeParameters = typeParameters;
+ setAsParentNodeOf(this.typeParameters);
+ return this;
+ }
+
+
+
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/ConstructorDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/ConstructorDeclaration.java
new file mode 100644
index 000000000..4a9cd2a2a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/ConstructorDeclaration.java
@@ -0,0 +1,256 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.AccessSpecifier;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.nodeTypes.*;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.type.ReferenceType;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.EnumSet;
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ConstructorDeclaration extends BodyDeclaration<ConstructorDeclaration>
+ implements NodeWithJavaDoc<ConstructorDeclaration>, NodeWithDeclaration,
+ NodeWithName<ConstructorDeclaration>, NodeWithModifiers<ConstructorDeclaration>,
+ NodeWithParameters<ConstructorDeclaration>, NodeWithThrowable<ConstructorDeclaration>,
+ NodeWithBlockStmt<ConstructorDeclaration> {
+
+ private EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class);
+
+ private List<TypeParameter> typeParameters;
+
+ private NameExpr name;
+
+ private List<Parameter> parameters;
+
+ private List<ReferenceType> throws_;
+
+ private BlockStmt body;
+
+ public ConstructorDeclaration() {
+ }
+
+ public ConstructorDeclaration(EnumSet<Modifier> modifiers, String name) {
+ setModifiers(modifiers);
+ setName(name);
+ }
+
+ public ConstructorDeclaration(EnumSet<Modifier> modifiers, List<AnnotationExpr> annotations,
+ List<TypeParameter> typeParameters,
+ String name, List<Parameter> parameters, List<ReferenceType> throws_,
+ BlockStmt block) {
+ super(annotations);
+ setModifiers(modifiers);
+ setTypeParameters(typeParameters);
+ setName(name);
+ setParameters(parameters);
+ setThrows(throws_);
+ setBody(block);
+ }
+
+ public ConstructorDeclaration(Range range, EnumSet<Modifier> modifiers,
+ List<AnnotationExpr> annotations, List<TypeParameter> typeParameters, String name,
+ List<Parameter> parameters, List<ReferenceType> throws_, BlockStmt block) {
+ super(range, annotations);
+ setModifiers(modifiers);
+ setTypeParameters(typeParameters);
+ setName(name);
+ setParameters(parameters);
+ setThrows(throws_);
+ setBody(block);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return the modifiers of this member declaration.
+ *
+ * @see Modifier
+ * @return modifiers
+ */
+ @Override
+ public EnumSet<Modifier> getModifiers() {
+ return modifiers;
+ }
+
+ @Override
+ public String getName() {
+ return name == null ? null : name.getName();
+ }
+
+ public NameExpr getNameExpr() {
+ return name;
+ }
+
+ @Override
+ public List<Parameter> getParameters() {
+ parameters = ensureNotNull(parameters);
+ return parameters;
+ }
+
+ @Override
+ public List<ReferenceType> getThrows() {
+ throws_ = ensureNotNull(throws_);
+ return throws_;
+ }
+
+ public List<TypeParameter> getTypeParameters() {
+ typeParameters = ensureNotNull(typeParameters);
+ return typeParameters;
+ }
+
+ @Override
+ public ConstructorDeclaration setModifiers(EnumSet<Modifier> modifiers) {
+ this.modifiers = modifiers;
+ return this;
+ }
+
+ @Override
+ public ConstructorDeclaration setName(String name) {
+ setNameExpr(new NameExpr(name));
+ return this;
+ }
+
+ public ConstructorDeclaration setNameExpr(NameExpr name) {
+ this.name = name;
+ setAsParentNodeOf(this.name);
+ return this;
+ }
+
+ @Override
+ public ConstructorDeclaration setParameters(List<Parameter> parameters) {
+ this.parameters = parameters;
+ setAsParentNodeOf(this.parameters);
+ return this;
+ }
+
+ @Override
+ public ConstructorDeclaration setThrows(List<ReferenceType> throws_) {
+ this.throws_ = throws_;
+ setAsParentNodeOf(this.throws_);
+ return this;
+ }
+
+ public ConstructorDeclaration setTypeParameters(List<TypeParameter> typeParameters) {
+ this.typeParameters = typeParameters;
+ setAsParentNodeOf(this.typeParameters);
+ return this;
+ }
+
+ /**
+ * The declaration returned has this schema:
+ *
+ * [accessSpecifier] className ([paramType [paramName]])
+ * [throws exceptionsList]
+ */
+ @Override
+ public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows,
+ boolean includingParameterName) {
+ StringBuilder sb = new StringBuilder();
+ if (includingModifiers) {
+ AccessSpecifier accessSpecifier = Modifier.getAccessSpecifier(getModifiers());
+ sb.append(accessSpecifier.getCodeRepresenation());
+ sb.append(accessSpecifier == AccessSpecifier.DEFAULT ? "" : " ");
+ }
+ sb.append(getName());
+ sb.append("(");
+ boolean firstParam = true;
+ for (Parameter param : getParameters()) {
+ if (firstParam) {
+ firstParam = false;
+ } else {
+ sb.append(", ");
+ }
+ if (includingParameterName) {
+ sb.append(param.toStringWithoutComments());
+ } else {
+ sb.append(param.getElementType().toStringWithoutComments());
+ }
+ }
+ sb.append(")");
+ if (includingThrows) {
+ boolean firstThrow = true;
+ for (ReferenceType thr : getThrows()) {
+ if (firstThrow) {
+ firstThrow = false;
+ sb.append(" throws ");
+ } else {
+ sb.append(", ");
+ }
+ sb.append(thr.toStringWithoutComments());
+ }
+ }
+ return sb.toString();
+ }
+
+ @Override
+ public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows) {
+ return getDeclarationAsString(includingModifiers, includingThrows, true);
+ }
+
+ @Override
+ public String getDeclarationAsString() {
+ return getDeclarationAsString(true, true, true);
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ if (getComment() instanceof JavadocComment) {
+ return (JavadocComment) getComment();
+ }
+ return null;
+ }
+
+ @Override
+ public BlockStmt getBody() {
+ return body;
+ }
+
+ @Override
+ public ConstructorDeclaration setBody(BlockStmt body) {
+ this.body = body;
+ setAsParentNodeOf(body);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EmptyMemberDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EmptyMemberDeclaration.java
new file mode 100644
index 000000000..102eb7aa4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EmptyMemberDeclaration.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EmptyMemberDeclaration extends BodyDeclaration<EmptyMemberDeclaration>
+ implements NodeWithJavaDoc<EmptyMemberDeclaration> {
+
+ public EmptyMemberDeclaration() {
+ super(null);
+ }
+
+ public EmptyMemberDeclaration(Range range) {
+ super(range, null);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ if(getComment() instanceof JavadocComment){
+ return (JavadocComment) getComment();
+ }
+ return null;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EmptyTypeDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EmptyTypeDeclaration.java
new file mode 100644
index 000000000..3a774de99
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EmptyTypeDeclaration.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import java.util.EnumSet;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EmptyTypeDeclaration extends TypeDeclaration<EmptyTypeDeclaration> {
+
+ public EmptyTypeDeclaration() {
+ super(null, EnumSet.noneOf(Modifier.class), null, null);
+ }
+
+ public EmptyTypeDeclaration(Range range) {
+ super(range, null, EnumSet.noneOf(Modifier.class), null, null);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EnumConstantDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EnumConstantDeclaration.java
new file mode 100644
index 000000000..646f6c287
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EnumConstantDeclaration.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import static com.github.javaparser.ast.expr.NameExpr.*;
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+import java.util.List;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc;
+import com.github.javaparser.ast.nodeTypes.NodeWithName;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EnumConstantDeclaration extends BodyDeclaration<EnumConstantDeclaration>
+ implements NodeWithJavaDoc<EnumConstantDeclaration>, NodeWithName<EnumConstantDeclaration> {
+
+ private String name;
+
+ private List<Expression> args;
+
+ private List<BodyDeclaration<?>> classBody;
+
+ public EnumConstantDeclaration() {
+ }
+
+ public EnumConstantDeclaration(String name) {
+ setName(name);
+ }
+
+ public EnumConstantDeclaration(List<AnnotationExpr> annotations, String name, List<Expression> args,
+ List<BodyDeclaration<?>> classBody) {
+ super(annotations);
+ setName(name);
+ setArgs(args);
+ setClassBody(classBody);
+ }
+
+ public EnumConstantDeclaration(Range range, List<AnnotationExpr> annotations, String name, List<Expression> args,
+ List<BodyDeclaration<?>> classBody) {
+ super(range, annotations);
+ setName(name);
+ setArgs(args);
+ setClassBody(classBody);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getArgs() {
+ args = ensureNotNull(args);
+ return args;
+ }
+
+ public List<BodyDeclaration<?>> getClassBody() {
+ classBody = ensureNotNull(classBody);
+ return classBody;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ public EnumConstantDeclaration setArgs(List<Expression> args) {
+ this.args = args;
+ setAsParentNodeOf(this.args);
+ return this;
+ }
+
+ public EnumConstantDeclaration setClassBody(List<BodyDeclaration<?>> classBody) {
+ this.classBody = classBody;
+ setAsParentNodeOf(this.classBody);
+ return this;
+ }
+
+ @Override
+ public EnumConstantDeclaration setName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ if(getComment() instanceof JavadocComment){
+ return (JavadocComment) getComment();
+ }
+ return null;
+ }
+
+ public EnumConstantDeclaration addArgument(String valueExpr) {
+ getArgs().add(name(valueExpr));
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EnumDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EnumDeclaration.java
new file mode 100644
index 000000000..0ad3089b6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/EnumDeclaration.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+import java.util.EnumSet;
+import java.util.List;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithImplements;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EnumDeclaration extends TypeDeclaration<EnumDeclaration>
+ implements NodeWithImplements<EnumDeclaration> {
+
+ private List<ClassOrInterfaceType> implementsList;
+
+ private List<EnumConstantDeclaration> entries;
+
+ public EnumDeclaration() {
+ }
+
+ public EnumDeclaration(EnumSet<Modifier> modifiers, String name) {
+ super(modifiers, name);
+ }
+
+ public EnumDeclaration(EnumSet<Modifier> modifiers, List<AnnotationExpr> annotations, String name,
+ List<ClassOrInterfaceType> implementsList, List<EnumConstantDeclaration> entries,
+ List<BodyDeclaration<?>> members) {
+ super(annotations, modifiers, name, members);
+ setImplements(implementsList);
+ setEntries(entries);
+ }
+
+ public EnumDeclaration(Range range, EnumSet<Modifier> modifiers, List<AnnotationExpr> annotations, String name,
+ List<ClassOrInterfaceType> implementsList, List<EnumConstantDeclaration> entries,
+ List<BodyDeclaration<?>> members) {
+ super(range, annotations, modifiers, name, members);
+ setImplements(implementsList);
+ setEntries(entries);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<EnumConstantDeclaration> getEntries() {
+ entries = ensureNotNull(entries);
+ return entries;
+ }
+
+ @Override
+ public List<ClassOrInterfaceType> getImplements() {
+ implementsList = ensureNotNull(implementsList);
+ return implementsList;
+ }
+
+ public EnumDeclaration setEntries(List<EnumConstantDeclaration> entries) {
+ this.entries = entries;
+ setAsParentNodeOf(this.entries);
+ return this;
+ }
+
+ @Override
+ public EnumDeclaration setImplements(List<ClassOrInterfaceType> implementsList) {
+ this.implementsList = implementsList;
+ setAsParentNodeOf(this.implementsList);
+ return this;
+ }
+
+
+
+ public EnumConstantDeclaration addEnumConstant(String name) {
+ EnumConstantDeclaration enumConstant = new EnumConstantDeclaration(name);
+ getEntries().add(enumConstant);
+ enumConstant.setParentNode(this);
+ return enumConstant;
+ }
+
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/FieldDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/FieldDeclaration.java
new file mode 100644
index 000000000..aa04a5230
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/FieldDeclaration.java
@@ -0,0 +1,277 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import static com.github.javaparser.ast.expr.NameExpr.*;
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.List;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.ArrayBracketPair;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.AssignExpr;
+import com.github.javaparser.ast.expr.AssignExpr.Operator;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.nodeTypes.*;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import static com.github.javaparser.ast.Modifier.PUBLIC;
+import static com.github.javaparser.ast.type.VoidType.VOID_TYPE;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class FieldDeclaration extends BodyDeclaration<FieldDeclaration> implements
+ NodeWithJavaDoc<FieldDeclaration>,
+ NodeWithElementType<FieldDeclaration>,
+ NodeWithModifiers<FieldDeclaration>,
+ NodeWithVariables<FieldDeclaration> {
+
+ private EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class);
+
+ private Type elementType;
+
+ private List<VariableDeclarator> variables;
+
+ private List<ArrayBracketPair> arrayBracketPairsAfterElementType;
+
+ public FieldDeclaration() {
+ }
+
+ public FieldDeclaration(EnumSet<Modifier> modifiers, Type elementType, VariableDeclarator variable) {
+ setModifiers(modifiers);
+ setElementType(elementType);
+ List<VariableDeclarator> aux = new ArrayList<>();
+ aux.add(variable);
+ setVariables(aux);
+ }
+
+ public FieldDeclaration(EnumSet<Modifier> modifiers, Type elementType, List<VariableDeclarator> variables) {
+ setModifiers(modifiers);
+ setElementType(elementType);
+ setVariables(variables);
+ }
+
+ public FieldDeclaration(EnumSet<Modifier> modifiers, List<AnnotationExpr> annotations, Type elementType, List<ArrayBracketPair> arrayBracketPairsAfterElementType,
+ List<VariableDeclarator> variables) {
+ super(annotations);
+ setModifiers(modifiers);
+ setElementType(elementType);
+ setVariables(variables);
+ setArrayBracketPairsAfterElementType(arrayBracketPairsAfterElementType);
+ }
+
+ public FieldDeclaration(Range range, EnumSet<Modifier> modifiers, List<AnnotationExpr> annotations, Type elementType,
+ List<VariableDeclarator> variables, List<ArrayBracketPair> arrayBracketPairsAfterElementType) {
+ super(range, annotations);
+ setModifiers(modifiers);
+ setElementType(elementType);
+ setVariables(variables);
+ setArrayBracketPairsAfterElementType(arrayBracketPairsAfterElementType);
+ }
+
+ /**
+ * Creates a {@link FieldDeclaration}.
+ *
+ * @param modifiers
+ * modifiers
+ * @param type
+ * type
+ * @param variable
+ * variable declarator
+ * @return instance of {@link FieldDeclaration}
+ */
+ public static FieldDeclaration create(EnumSet<Modifier> modifiers, Type type,
+ VariableDeclarator variable) {
+ List<VariableDeclarator> variables = new ArrayList<>();
+ variables.add(variable);
+ return new FieldDeclaration(modifiers, type, variables);
+ }
+
+ /**
+ * Creates a {@link FieldDeclaration}.
+ *
+ * @param modifiers
+ * modifiers
+ * @param type
+ * type
+ * @param name
+ * field name
+ * @return instance of {@link FieldDeclaration}
+ */
+ public static FieldDeclaration create(EnumSet<Modifier> modifiers, Type type, String name) {
+ VariableDeclaratorId id = new VariableDeclaratorId(name);
+ VariableDeclarator variable = new VariableDeclarator(id);
+ return create(modifiers, type, variable);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return the modifiers of this member declaration.
+ *
+ * @see Modifier
+ * @return modifiers
+ */
+ @Override
+ public EnumSet<Modifier> getModifiers() {
+ return modifiers;
+ }
+
+ @Override
+ public List<VariableDeclarator> getVariables() {
+ variables = ensureNotNull(variables);
+ return variables;
+ }
+
+ @Override
+ public FieldDeclaration setModifiers(EnumSet<Modifier> modifiers) {
+ this.modifiers = modifiers;
+ return this;
+ }
+
+ @Override
+ public FieldDeclaration setVariables(List<VariableDeclarator> variables) {
+ this.variables = variables;
+ setAsParentNodeOf(this.variables);
+ return this;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ if (getComment() instanceof JavadocComment) {
+ return (JavadocComment) getComment();
+ }
+ return null;
+ }
+
+ /**
+ * Create a getter for this field, <b>will only work if this field declares only 1 identifier and if this field is
+ * already added to a ClassOrInterfaceDeclaration</b>
+ *
+ * @return the {@link MethodDeclaration} created
+ * @throws IllegalStateException if there is more than 1 variable identifier or if this field isn't attached to a
+ * class or enum
+ */
+ public MethodDeclaration createGetter() {
+ if (getVariables().size() != 1)
+ throw new IllegalStateException("You can use this only when the field declares only 1 variable name");
+ ClassOrInterfaceDeclaration parentClass = getParentNodeOfType(ClassOrInterfaceDeclaration.class);
+ EnumDeclaration parentEnum = getParentNodeOfType(EnumDeclaration.class);
+ if ((parentClass == null && parentEnum == null) || (parentClass != null && parentClass.isInterface()))
+ throw new IllegalStateException(
+ "You can use this only when the field is attached to a class or an enum");
+
+ VariableDeclarator variable = getVariables().get(0);
+ String fieldName = variable.getId().getName();
+ String fieldNameUpper = fieldName.toUpperCase().substring(0, 1) + fieldName.substring(1, fieldName.length());
+ final MethodDeclaration getter;
+ if (parentClass != null)
+ getter = parentClass.addMethod("get" + fieldNameUpper, PUBLIC);
+ else
+ getter = parentEnum.addMethod("get" + fieldNameUpper, PUBLIC);
+ getter.setType(variable.getType());
+ BlockStmt blockStmt = new BlockStmt();
+ getter.setBody(blockStmt);
+ blockStmt.addStatement(new ReturnStmt(name(fieldName)));
+ return getter;
+ }
+
+ /**
+ * Create a setter for this field, <b>will only work if this field declares only 1 identifier and if this field is
+ * already added to a ClassOrInterfaceDeclaration</b>
+ *
+ * @return the {@link MethodDeclaration} created
+ * @throws IllegalStateException if there is more than 1 variable identifier or if this field isn't attached to a
+ * class or enum
+ */
+ public MethodDeclaration createSetter() {
+ if (getVariables().size() != 1)
+ throw new IllegalStateException("You can use this only when the field declares only 1 variable name");
+ ClassOrInterfaceDeclaration parentClass = getParentNodeOfType(ClassOrInterfaceDeclaration.class);
+ EnumDeclaration parentEnum = getParentNodeOfType(EnumDeclaration.class);
+ if ((parentClass == null && parentEnum == null) || (parentClass != null && parentClass.isInterface()))
+ throw new IllegalStateException(
+ "You can use this only when the field is attached to a class or an enum");
+
+ VariableDeclarator variable = getVariables().get(0);
+ String fieldName = variable.getId().getName();
+ String fieldNameUpper = fieldName.toUpperCase().substring(0, 1) + fieldName.substring(1, fieldName.length());
+
+ final MethodDeclaration setter;
+ if (parentClass != null)
+ setter = parentClass.addMethod("set" + fieldNameUpper, PUBLIC);
+ else
+ setter = parentEnum.addMethod("set" + fieldNameUpper, PUBLIC);
+ setter.setType(VOID_TYPE);
+ setter.getParameters().add(new Parameter(variable.getType(), new VariableDeclaratorId(fieldName)));
+ BlockStmt blockStmt2 = new BlockStmt();
+ setter.setBody(blockStmt2);
+ blockStmt2.addStatement(new AssignExpr(new NameExpr("this." + fieldName), new NameExpr(fieldName), Operator.assign));
+ return setter;
+ }
+
+
+ @Override
+ public Type getElementType() {
+ return elementType;
+ }
+
+ @Override
+ public FieldDeclaration setElementType(final Type elementType) {
+ this.elementType = elementType;
+ setAsParentNodeOf(this.elementType);
+ return this;
+ }
+
+ /**
+ * @return the array brackets in this position: <code>class C { int[] abc; }</code>
+ */
+ public List<ArrayBracketPair> getArrayBracketPairsAfterElementType() {
+ arrayBracketPairsAfterElementType = ensureNotNull(arrayBracketPairsAfterElementType);
+ return arrayBracketPairsAfterElementType;
+ }
+
+ @Override
+ public FieldDeclaration setArrayBracketPairsAfterElementType(List<ArrayBracketPair> arrayBracketPairsAfterType) {
+ this.arrayBracketPairsAfterElementType = arrayBracketPairsAfterType;
+ setAsParentNodeOf(arrayBracketPairsAfterType);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/InitializerDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/InitializerDeclaration.java
new file mode 100644
index 000000000..adb893f03
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/InitializerDeclaration.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class InitializerDeclaration extends BodyDeclaration<InitializerDeclaration>
+ implements NodeWithJavaDoc<InitializerDeclaration> {
+
+ private boolean isStatic;
+
+ private BlockStmt block;
+
+ public InitializerDeclaration() {
+ }
+
+ public InitializerDeclaration(boolean isStatic, BlockStmt block) {
+ super(null);
+ setStatic(isStatic);
+ setBlock(block);
+ }
+
+ public InitializerDeclaration(Range range, boolean isStatic, BlockStmt block) {
+ super(range, null);
+ setStatic(isStatic);
+ setBlock(block);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public BlockStmt getBlock() {
+ return block;
+ }
+
+ public boolean isStatic() {
+ return isStatic;
+ }
+
+ public InitializerDeclaration setBlock(BlockStmt block) {
+ this.block = block;
+ setAsParentNodeOf(this.block);
+ return this;
+ }
+
+ public InitializerDeclaration setStatic(boolean isStatic) {
+ this.isStatic = isStatic;
+ return this;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ if(getComment() instanceof JavadocComment){
+ return (JavadocComment) getComment();
+ }
+ return null;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/MethodDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/MethodDeclaration.java
new file mode 100644
index 000000000..a89103a3b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/MethodDeclaration.java
@@ -0,0 +1,399 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import static com.github.javaparser.ast.type.ArrayType.*;
+import static com.github.javaparser.ast.type.ArrayType.wrapInArrayTypes;
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+import java.util.EnumSet;
+import java.util.List;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.AccessSpecifier;
+import com.github.javaparser.ast.ArrayBracketPair;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.nodeTypes.*;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.nodeTypes.*;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.type.ReferenceType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+import com.github.javaparser.utils.Pair;
+
+import java.util.EnumSet;
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MethodDeclaration extends BodyDeclaration<MethodDeclaration> implements
+ NodeWithJavaDoc<MethodDeclaration>,
+ NodeWithDeclaration,
+ NodeWithName<MethodDeclaration>,
+ NodeWithType<MethodDeclaration>,
+ NodeWithElementType<MethodDeclaration>,
+ NodeWithModifiers<MethodDeclaration>,
+ NodeWithParameters<MethodDeclaration>,
+ NodeWithThrowable<MethodDeclaration>,
+ NodeWithBlockStmt<MethodDeclaration> {
+
+ private EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class);
+
+ private List<TypeParameter> typeParameters;
+
+ private Type elementType;
+
+ private NameExpr name;
+
+ private List<Parameter> parameters;
+
+ private List<ReferenceType> throws_;
+
+ private BlockStmt body;
+
+ private boolean isDefault = false;
+
+ private List<ArrayBracketPair> arrayBracketPairsAfterType;
+
+ private List<ArrayBracketPair> arrayBracketPairsAfterParameterList;
+
+ public MethodDeclaration() {
+ }
+
+ public MethodDeclaration(final EnumSet<Modifier> modifiers, final Type elementType, final String name) {
+ setModifiers(modifiers);
+ setElementType(elementType);
+ setName(name);
+ }
+
+ public MethodDeclaration(final EnumSet<Modifier> modifiers, final Type elementType, final String name,
+ final List<Parameter> parameters) {
+ setModifiers(modifiers);
+ setElementType(elementType);
+ setName(name);
+ setParameters(parameters);
+ }
+
+ public MethodDeclaration(final EnumSet<Modifier> modifiers,
+ final List<AnnotationExpr> annotations,
+ final List<TypeParameter> typeParameters,
+ final Type elementType,
+ final List<ArrayBracketPair> arrayBracketPairsAfterElementType,
+ final String name,
+ final List<Parameter> parameters,
+ final List<ArrayBracketPair> arrayBracketPairsAfterParameterList,
+ final List<ReferenceType> throws_,
+ final BlockStmt body) {
+ super(annotations);
+ setModifiers(modifiers);
+ setTypeParameters(typeParameters);
+ setElementType(elementType);
+ setName(name);
+ setParameters(parameters);
+ setArrayBracketPairsAfterElementType(arrayBracketPairsAfterElementType);
+ setArrayBracketPairsAfterParameterList(arrayBracketPairsAfterParameterList);
+ setThrows(throws_);
+ setBody(body);
+ }
+
+ public MethodDeclaration(Range range,
+ final EnumSet<Modifier> modifiers,
+ final List<AnnotationExpr> annotations,
+ final List<TypeParameter> typeParameters,
+ final Type elementType,
+ final List<ArrayBracketPair> arrayBracketPairsAfterElementType,
+ final NameExpr nameExpr,
+ final List<Parameter> parameters,
+ final List<ArrayBracketPair> arrayBracketPairsAfterParameterList,
+ final List<ReferenceType> throws_,
+ final BlockStmt body) {
+ super(range, annotations);
+ setModifiers(modifiers);
+ setTypeParameters(typeParameters);
+ setElementType(elementType);
+ setNameExpr(nameExpr);
+ setParameters(parameters);
+ setArrayBracketPairsAfterElementType(arrayBracketPairsAfterElementType);
+ setArrayBracketPairsAfterParameterList(arrayBracketPairsAfterParameterList);
+ setThrows(throws_);
+ setBody(body);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public BlockStmt getBody() {
+ return body;
+ }
+
+ /**
+ * Return the modifiers of this member declaration.
+ *
+ * @see Modifier
+ * @return modifiers
+ */
+ @Override
+ public EnumSet<Modifier> getModifiers() {
+ return modifiers;
+ }
+
+ @Override
+ public String getName() {
+ return name.getName();
+ }
+
+ public NameExpr getNameExpr() {
+ return name;
+ }
+
+ @Override
+ public List<Parameter> getParameters() {
+ parameters = ensureNotNull(parameters);
+ return parameters;
+ }
+
+ @Override
+ public List<ReferenceType> getThrows() {
+ throws_ = ensureNotNull(throws_);
+ return throws_;
+ }
+
+ @Override
+ public Type getType() {
+ return wrapInArrayTypes(getElementType(),
+ getArrayBracketPairsAfterElementType(),
+ getArrayBracketPairsAfterParameterList());
+ }
+
+ @Override
+ public Type getElementType() {
+ return elementType;
+ }
+
+ public List<TypeParameter> getTypeParameters() {
+ typeParameters = ensureNotNull(typeParameters);
+ return typeParameters;
+ }
+
+ @Override
+ public MethodDeclaration setBody(final BlockStmt body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ return this;
+ }
+
+ @Override
+ public MethodDeclaration setModifiers(final EnumSet<Modifier> modifiers) {
+ this.modifiers = modifiers;
+ return this;
+ }
+
+ @Override
+ public MethodDeclaration setName(final String name) {
+ setNameExpr(new NameExpr(name));
+ return this;
+ }
+
+ public MethodDeclaration setNameExpr(final NameExpr name) {
+ this.name = name;
+ setAsParentNodeOf(this.name);
+ return this;
+ }
+
+ @Override
+ public MethodDeclaration setParameters(final List<Parameter> parameters) {
+ this.parameters = parameters;
+ setAsParentNodeOf(this.parameters);
+ return this;
+ }
+
+ @Override
+ public MethodDeclaration setThrows(final List<ReferenceType> throws_) {
+ this.throws_ = throws_;
+ setAsParentNodeOf(this.throws_);
+ return this;
+ }
+
+ @Override
+ public MethodDeclaration setType(final Type type) {
+ Pair<Type, List<ArrayBracketPair>> typeListPair = unwrapArrayTypes(type);
+ setElementType(typeListPair.a);
+ setArrayBracketPairsAfterElementType(typeListPair.b);
+ setArrayBracketPairsAfterParameterList(null);
+ return this;
+ }
+
+ @Override
+ public MethodDeclaration setElementType(final Type elementType) {
+ this.elementType = elementType;
+ setAsParentNodeOf(this.elementType);
+ return this;
+ }
+
+ public MethodDeclaration setTypeParameters(final List<TypeParameter> typeParameters) {
+ this.typeParameters = typeParameters;
+ setAsParentNodeOf(typeParameters);
+ return this;
+ }
+
+ public boolean isDefault() {
+ return isDefault;
+ }
+
+ public MethodDeclaration setDefault(boolean isDefault) {
+ this.isDefault = isDefault;
+ return this;
+ }
+
+ @Override
+ public String getDeclarationAsString() {
+ return getDeclarationAsString(true, true, true);
+ }
+
+ @Override
+ public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows) {
+ return getDeclarationAsString(includingModifiers, includingThrows, true);
+ }
+
+ /**
+ * The declaration returned has this schema:
+ *
+ * [accessSpecifier] [static] [abstract] [final] [native]
+ * [synchronized] returnType methodName ([paramType [paramName]])
+ * [throws exceptionsList]
+ *
+ * @return method declaration as String
+ */
+ @Override
+ public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows,
+ boolean includingParameterName) {
+ StringBuilder sb = new StringBuilder();
+ if (includingModifiers) {
+ AccessSpecifier accessSpecifier = Modifier.getAccessSpecifier(getModifiers());
+ sb.append(accessSpecifier.getCodeRepresenation());
+ sb.append(accessSpecifier == AccessSpecifier.DEFAULT ? "" : " ");
+ if (getModifiers().contains(Modifier.STATIC)) {
+ sb.append("static ");
+ }
+ if (getModifiers().contains(Modifier.ABSTRACT)) {
+ sb.append("abstract ");
+ }
+ if (getModifiers().contains(Modifier.FINAL)) {
+ sb.append("final ");
+ }
+ if (getModifiers().contains(Modifier.NATIVE)) {
+ sb.append("native ");
+ }
+ if (getModifiers().contains(Modifier.SYNCHRONIZED)) {
+ sb.append("synchronized ");
+ }
+ }
+ // TODO verify it does not print comments connected to the type
+ sb.append(getElementType().toStringWithoutComments());
+ sb.append(" ");
+ sb.append(getName());
+ sb.append("(");
+ boolean firstParam = true;
+ for (Parameter param : getParameters()) {
+ if (firstParam) {
+ firstParam = false;
+ } else {
+ sb.append(", ");
+ }
+ if (includingParameterName) {
+ sb.append(param.toStringWithoutComments());
+ } else {
+ sb.append(param.getElementType().toStringWithoutComments());
+ if (param.isVarArgs()) {
+ sb.append("...");
+ }
+ }
+ }
+ sb.append(")");
+ if (includingThrows) {
+ boolean firstThrow = true;
+ for (ReferenceType thr : getThrows()) {
+ if (firstThrow) {
+ firstThrow = false;
+ sb.append(" throws ");
+ } else {
+ sb.append(", ");
+ }
+ sb.append(thr.toStringWithoutComments());
+ }
+ }
+ return sb.toString();
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ if (getComment() instanceof JavadocComment) {
+ return (JavadocComment) getComment();
+ }
+ return null;
+ }
+
+ /**
+ * @return the array brackets in this position: <code>class C { int[] abc; }</code>
+ */
+ public List<ArrayBracketPair> getArrayBracketPairsAfterElementType() {
+ arrayBracketPairsAfterType = ensureNotNull(arrayBracketPairsAfterType);
+ return arrayBracketPairsAfterType;
+ }
+
+ @Override
+ public MethodDeclaration setArrayBracketPairsAfterElementType(List<ArrayBracketPair> arrayBracketPairsAfterType) {
+ this.arrayBracketPairsAfterType = arrayBracketPairsAfterType;
+ setAsParentNodeOf(arrayBracketPairsAfterType);
+ return this;
+ }
+
+ /**
+ * @return the array brackets in this position: <code>int abc()[] {...}</code>
+ */
+ public List<ArrayBracketPair> getArrayBracketPairsAfterParameterList() {
+ arrayBracketPairsAfterParameterList = ensureNotNull(arrayBracketPairsAfterParameterList);
+ return arrayBracketPairsAfterParameterList;
+ }
+
+ public MethodDeclaration setArrayBracketPairsAfterParameterList(List<ArrayBracketPair> arrayBracketPairsAfterParameterList) {
+ this.arrayBracketPairsAfterParameterList = arrayBracketPairsAfterParameterList;
+ setAsParentNodeOf(arrayBracketPairsAfterParameterList);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/Parameter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/Parameter.java
new file mode 100644
index 000000000..d66b39a00
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/Parameter.java
@@ -0,0 +1,227 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.ArrayBracketPair;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.nodeTypes.*;
+import com.github.javaparser.ast.type.ArrayType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+import com.github.javaparser.utils.Pair;
+
+import static com.github.javaparser.ast.type.ArrayType.wrapInArrayTypes;
+import java.util.EnumSet;
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class Parameter extends Node implements
+ NodeWithType<Parameter>,
+ NodeWithElementType<Parameter>,
+ NodeWithAnnotations<Parameter>,
+ NodeWithName<Parameter>,
+ NodeWithModifiers<Parameter> {
+
+ private Type elementType;
+
+ private boolean isVarArgs;
+
+ private EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class);
+
+ private List<AnnotationExpr> annotations;
+
+ private VariableDeclaratorId id;
+
+ private List<ArrayBracketPair> arrayBracketPairsAfterType;
+
+ public Parameter() {
+ }
+
+ public Parameter(Type elementType, VariableDeclaratorId id) {
+ setId(id);
+ setElementType(elementType);
+ }
+
+ /**
+ * Creates a new {@link Parameter}.
+ *
+ * @param elementType
+ * type of the parameter
+ * @param name
+ * name of the parameter
+ * @return instance of {@link Parameter}
+ */
+ public static Parameter create(Type elementType, String name) {
+ return new Parameter(elementType, new VariableDeclaratorId(name));
+ }
+
+ public Parameter(EnumSet<Modifier> modifiers, Type elementType, VariableDeclaratorId id) {
+ setModifiers(modifiers);
+ setId(id);
+ setElementType(elementType);
+ }
+
+ public Parameter(final Range range,
+ EnumSet<Modifier> modifiers,
+ List<AnnotationExpr> annotations,
+ Type elementType,
+ List<ArrayBracketPair> arrayBracketPairsAfterElementType,
+ boolean isVarArgs,
+ VariableDeclaratorId id) {
+ super(range);
+ setModifiers(modifiers);
+ setAnnotations(annotations);
+ setId(id);
+ setElementType(elementType);
+ setVarArgs(isVarArgs);
+ setArrayBracketPairsAfterElementType(arrayBracketPairsAfterElementType);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public Type getType() {
+ return wrapInArrayTypes(elementType,
+ getArrayBracketPairsAfterElementType(),
+ getId().getArrayBracketPairsAfterId());
+ }
+
+ public boolean isVarArgs() {
+ return isVarArgs;
+ }
+
+ @Override
+ public Parameter setType(Type type) {
+ Pair<Type, List<ArrayBracketPair>> unwrapped = ArrayType.unwrapArrayTypes(type);
+ setElementType(unwrapped.a);
+ setArrayBracketPairsAfterElementType(unwrapped.b);
+ getId().setArrayBracketPairsAfterId(null);
+ return this;
+ }
+
+ public Parameter setVarArgs(boolean isVarArgs) {
+ this.isVarArgs = isVarArgs;
+ return this;
+ }
+ /**
+ * @return the list returned could be immutable (in that case it will be empty)
+ */
+ @Override
+ public List<AnnotationExpr> getAnnotations() {
+ annotations = ensureNotNull(annotations);
+ return annotations;
+ }
+
+ public VariableDeclaratorId getId() {
+ return id;
+ }
+
+ @Override
+ public String getName() {
+ return getId().getName();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public Parameter setName(String name) {
+ if (id != null)
+ id.setName(name);
+ else
+ id = new VariableDeclaratorId(name);
+ return this;
+ }
+
+ /**
+ * Return the modifiers of this parameter declaration.
+ *
+ * @see Modifier
+ * @return modifiers
+ */
+ @Override
+ public EnumSet<Modifier> getModifiers() {
+ return modifiers;
+ }
+
+ /**
+ * @param annotations a null value is currently treated as an empty list. This behavior could change
+ * in the future, so please avoid passing null
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Parameter setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ setAsParentNodeOf(this.annotations);
+ return this;
+ }
+
+ public void setId(VariableDeclaratorId id) {
+ this.id = id;
+ setAsParentNodeOf(this.id);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public Parameter setModifiers(EnumSet<Modifier> modifiers) {
+ this.modifiers = modifiers;
+ return this;
+ }
+
+ @Override
+ public Type getElementType() {
+ return elementType;
+ }
+
+ @Override
+ public Parameter setElementType(final Type elementType) {
+ this.elementType = elementType;
+ setAsParentNodeOf(this.elementType);
+ return this;
+ }
+
+ public List<ArrayBracketPair> getArrayBracketPairsAfterElementType() {
+ arrayBracketPairsAfterType = ensureNotNull(arrayBracketPairsAfterType);
+ return arrayBracketPairsAfterType;
+ }
+
+ @Override
+ public Parameter setArrayBracketPairsAfterElementType(List<ArrayBracketPair> arrayBracketPairsAfterType) {
+ this.arrayBracketPairsAfterType = arrayBracketPairsAfterType;
+ setAsParentNodeOf(arrayBracketPairsAfterType);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/TypeDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/TypeDeclaration.java
new file mode 100644
index 000000000..829d37c26
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/TypeDeclaration.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+import static com.github.javaparser.utils.Utils.isNullOrEmpty;
+
+import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.List;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc;
+import com.github.javaparser.ast.nodeTypes.NodeWithMembers;
+import com.github.javaparser.ast.nodeTypes.NodeWithModifiers;
+import com.github.javaparser.ast.nodeTypes.NodeWithName;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class TypeDeclaration<T> extends BodyDeclaration<T>
+ implements NodeWithName<T>, NodeWithJavaDoc<T>, NodeWithModifiers<T>, NodeWithMembers<T> {
+
+ private NameExpr name;
+
+ private EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class);
+
+ private List<BodyDeclaration<?>> members;
+
+ public TypeDeclaration() {
+ }
+
+ public TypeDeclaration(EnumSet<Modifier> modifiers, String name) {
+ setName(name);
+ setModifiers(modifiers);
+ }
+
+ public TypeDeclaration(List<AnnotationExpr> annotations,
+ EnumSet<Modifier> modifiers, String name,
+ List<BodyDeclaration<?>> members) {
+ super(annotations);
+ setName(name);
+ setModifiers(modifiers);
+ setMembers(members);
+ }
+
+ public TypeDeclaration(Range range, List<AnnotationExpr> annotations,
+ EnumSet<Modifier> modifiers, String name,
+ List<BodyDeclaration<?>> members) {
+ super(range, annotations);
+ setName(name);
+ setModifiers(modifiers);
+ setMembers(members);
+ }
+
+ /**
+ * Adds the given declaration to the specified type. The list of members
+ * will be initialized if it is <code>null</code>.
+ *
+ * @param decl
+ * member declaration
+ */
+ public TypeDeclaration<T> addMember(BodyDeclaration<?> decl) {
+ List<BodyDeclaration<?>> members = getMembers();
+ if (isNullOrEmpty(members)) {
+ members = new ArrayList<>();
+ setMembers(members);
+ }
+ members.add(decl);
+ decl.setParentNode(this);
+ return this;
+ }
+
+ @Override
+ public List<BodyDeclaration<?>> getMembers() {
+ members = ensureNotNull(members);
+ return members;
+ }
+
+ /**
+ * Return the modifiers of this type declaration.
+ *
+ * @see Modifier
+ * @return modifiers
+ */
+ @Override
+ public final EnumSet<Modifier> getModifiers() {
+ return modifiers;
+ }
+
+ @Override
+ public final String getName() {
+ return name.getName();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public T setMembers(List<BodyDeclaration<?>> members) {
+ this.members = members;
+ setAsParentNodeOf(this.members);
+ return (T) this;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public T setModifiers(EnumSet<Modifier> modifiers) {
+ this.modifiers = modifiers;
+ return (T) this;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public T setName(String name) {
+ setNameExpr(new NameExpr(name));
+ return (T) this;
+ }
+
+ @SuppressWarnings("unchecked")
+ public T setNameExpr(NameExpr nameExpr) {
+ this.name = nameExpr;
+ setAsParentNodeOf(this.name);
+ return (T) this;
+ }
+
+ public final NameExpr getNameExpr() {
+ return name;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ if(getComment() instanceof JavadocComment){
+ return (JavadocComment) getComment();
+ }
+ return null;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/VariableDeclarator.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/VariableDeclarator.java
new file mode 100644
index 000000000..ff78d6e68
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/VariableDeclarator.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.ArrayBracketPair;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithElementType;
+import com.github.javaparser.ast.nodeTypes.NodeWithType;
+import com.github.javaparser.ast.type.ArrayType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+import com.github.javaparser.utils.Pair;
+
+import java.util.List;
+
+import static com.github.javaparser.ast.type.ArrayType.wrapInArrayTypes;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VariableDeclarator extends Node implements
+ NodeWithType<VariableDeclarator> {
+
+ private VariableDeclaratorId id;
+
+ private Expression init;
+
+ public VariableDeclarator() {
+ }
+
+ public VariableDeclarator(VariableDeclaratorId id) {
+ setId(id);
+ }
+
+ public VariableDeclarator(String variableName) {
+ setId(new VariableDeclaratorId(variableName));
+ }
+
+ /**
+ * Defines the declaration of a variable.
+ *
+ * @param id The identifier for this variable. IE. The variables name.
+ * @param init What this variable should be initialized to.
+ * An {@link com.github.javaparser.ast.expr.AssignExpr} is unnecessary as the <code>=</code> operator is
+ * already added.
+ */
+ public VariableDeclarator(VariableDeclaratorId id, Expression init) {
+ setId(id);
+ setInit(init);
+ }
+
+ public VariableDeclarator(String variableName, Expression init) {
+ setId(new VariableDeclaratorId(variableName));
+ setInit(init);
+ }
+
+ public VariableDeclarator(Range range, VariableDeclaratorId id, Expression init) {
+ super(range);
+ setId(id);
+ setInit(init);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public VariableDeclaratorId getId() {
+ return id;
+ }
+
+ public Expression getInit() {
+ return init;
+ }
+
+ public VariableDeclarator setId(VariableDeclaratorId id) {
+ this.id = id;
+ setAsParentNodeOf(this.id);
+ return this;
+ }
+
+ public VariableDeclarator setInit(Expression init) {
+ this.init = init;
+ setAsParentNodeOf(this.init);
+ return this;
+ }
+
+ /**
+ * Will create a {@link NameExpr} with the init param
+ */
+ public VariableDeclarator setInit(String init) {
+ this.init = new NameExpr(init);
+ setAsParentNodeOf(this.init);
+ return this;
+ }
+
+
+ @Override
+ public Type getType() {
+ NodeWithElementType<?> elementType = getParentNodeOfType(NodeWithElementType.class);
+
+ return wrapInArrayTypes(elementType.getElementType(),
+ elementType.getArrayBracketPairsAfterElementType(),
+ getId().getArrayBracketPairsAfterId());
+ }
+
+ @Override
+ public VariableDeclarator setType(Type type) {
+ Pair<Type, List<ArrayBracketPair>> unwrapped = ArrayType.unwrapArrayTypes(type);
+ NodeWithElementType<?> nodeWithElementType = getParentNodeOfType(NodeWithElementType.class);
+ if (nodeWithElementType == null) {
+ throw new IllegalStateException("Cannot set type without a parent");
+ }
+ nodeWithElementType.setElementType(unwrapped.a);
+ nodeWithElementType.setArrayBracketPairsAfterElementType(null);
+ getId().setArrayBracketPairsAfterId(unwrapped.b);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/VariableDeclaratorId.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/VariableDeclaratorId.java
new file mode 100644
index 000000000..b6dccc2aa
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/body/VariableDeclaratorId.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.ArrayBracketPair;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.nodeTypes.NodeWithName;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VariableDeclaratorId extends Node implements NodeWithName<VariableDeclaratorId> {
+
+ private String name;
+
+ private List<ArrayBracketPair> arrayBracketPairsAfterId;
+
+ public VariableDeclaratorId() {
+ }
+
+ public VariableDeclaratorId(String name) {
+ setName(name);
+ }
+
+ public VariableDeclaratorId(Range range, String name, List<ArrayBracketPair> arrayBracketPairsAfterId) {
+ super(range);
+ setName(name);
+ setArrayBracketPairsAfterId(arrayBracketPairsAfterId);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public VariableDeclaratorId setName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public List<ArrayBracketPair> getArrayBracketPairsAfterId() {
+ arrayBracketPairsAfterId = ensureNotNull(arrayBracketPairsAfterId);
+ return arrayBracketPairsAfterId;
+ }
+
+ public VariableDeclaratorId setArrayBracketPairsAfterId(List<ArrayBracketPair> arrayBracketPairsAfterId) {
+ this.arrayBracketPairsAfterId = arrayBracketPairsAfterId;
+ setAsParentNodeOf(arrayBracketPairsAfterId);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/BlockComment.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/BlockComment.java
new file mode 100644
index 000000000..77157d595
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/BlockComment.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * <p>
+ * AST node that represent block comments.
+ * </p>
+ * Block comments can has multi lines and are delimited by "/&#42;" and
+ * "&#42;/".
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class BlockComment extends Comment {
+
+ public BlockComment() {
+ }
+
+ public BlockComment(String content) {
+ super(content);
+ }
+
+ public BlockComment(Range range, String content) {
+ super(range, content);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/Comment.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/Comment.java
new file mode 100644
index 000000000..9da994ec4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/Comment.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Node;
+
+/**
+ * Abstract class for all AST nodes that represent comments.
+ *
+ * @see BlockComment
+ * @see LineComment
+ * @see JavadocComment
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Comment extends Node {
+
+ private String content;
+ private Node commentedNode;
+
+ public Comment() {
+ }
+
+ public Comment(String content) {
+ this.content = content;
+ }
+
+ public Comment(Range range, String content) {
+ super(range);
+ this.content = content;
+ }
+
+ /**
+ * Return the text of the comment.
+ *
+ * @return text of the comment
+ */
+ public final String getContent() {
+ return content;
+ }
+
+ /**
+ * Sets the text of the comment.
+ *
+ * @param content
+ * the text of the comment to set
+ */
+ public Comment setContent(String content) {
+ this.content = content;
+ return this;
+ }
+
+ public boolean isLineComment()
+ {
+ return false;
+ }
+
+ public LineComment asLineComment() {
+ if (isLineComment()) {
+ return (LineComment) this;
+ } else {
+ throw new UnsupportedOperationException("Not a line comment");
+ }
+ }
+
+ public Node getCommentedNode()
+ {
+ return this.commentedNode;
+ }
+
+ public Comment setCommentedNode(Node commentedNode)
+ {
+ if (commentedNode==null) {
+ this.commentedNode = null;
+ return this;
+ }
+ if (commentedNode==this) {
+ throw new IllegalArgumentException();
+ }
+ if (commentedNode instanceof Comment) {
+ throw new IllegalArgumentException();
+ }
+ this.commentedNode = commentedNode;
+ return this;
+ }
+
+ public boolean isOrphan()
+ {
+ return this.commentedNode == null;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/CommentsCollection.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/CommentsCollection.java
new file mode 100644
index 000000000..d02c7a5f0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/CommentsCollection.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.stream.Collectors;
+
+import static com.github.javaparser.ast.Node.NODE_BY_BEGIN_POSITION;
+
+/**
+ * The comments contained in a certain parsed piece of source code.
+ */
+public class CommentsCollection {
+ private final TreeSet<Comment> comments = new TreeSet<>(NODE_BY_BEGIN_POSITION);
+
+ public CommentsCollection() {
+ }
+
+ public CommentsCollection(Collection<Comment> commentsToCopy) {
+ comments.addAll(commentsToCopy);
+ }
+
+ public Set<LineComment> getLineComments() {
+ return comments.stream()
+ .filter(comment -> comment instanceof LineComment)
+ .map(comment -> (LineComment) comment)
+ .collect(Collectors.toCollection(() -> new TreeSet<>(NODE_BY_BEGIN_POSITION)));
+ }
+
+ public Set<BlockComment> getBlockComments() {
+ return comments.stream()
+ .filter(comment -> comment instanceof BlockComment)
+ .map(comment -> (BlockComment) comment)
+ .collect(Collectors.toCollection(() -> new TreeSet<>(NODE_BY_BEGIN_POSITION)));
+ }
+
+ public Set<JavadocComment> getJavadocComments() {
+ return comments.stream()
+ .filter(comment -> comment instanceof JavadocComment)
+ .map(comment -> (JavadocComment) comment)
+ .collect(Collectors.toCollection(() -> new TreeSet<>(NODE_BY_BEGIN_POSITION)));
+ }
+
+ public void addComment(Comment comment) {
+ comments.add(comment);
+ }
+
+ public boolean contains(Comment comment) {
+ for (Comment c : getComments()) {
+ // we tolerate a difference of one element in the end column:
+ // it depends how \r and \n are calculated...
+ if (c.getBegin().line == comment.getBegin().line &&
+ c.getBegin().column == comment.getBegin().column &&
+ c.getEnd().line == comment.getEnd().line &&
+ Math.abs(c.getEnd().column - comment.getEnd().column) < 2) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public TreeSet<Comment> getComments() {
+ return comments;
+ }
+
+ public int size() {
+ return comments.size();
+ }
+
+ public CommentsCollection minus(CommentsCollection other) {
+ CommentsCollection result = new CommentsCollection();
+ result.comments.addAll(
+ comments.stream()
+ .filter(comment -> !other.contains(comment))
+ .collect(Collectors.toList()));
+ return result;
+ }
+
+ public CommentsCollection copy() {
+ return new CommentsCollection(comments);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/JavadocComment.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/JavadocComment.java
new file mode 100644
index 000000000..18b77af28
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/JavadocComment.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class JavadocComment extends Comment {
+
+ public JavadocComment() {
+ }
+
+ public JavadocComment(String content) {
+ super(content);
+ }
+
+ public JavadocComment(Range range, String content) {
+ super(range, content);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/LineComment.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/LineComment.java
new file mode 100644
index 000000000..56b8054d3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/comments/LineComment.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * <p>
+ * AST node that represent line comments.
+ * </p>
+ * Line comments are started with "//" and finish at the end of the line ("\n").
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class LineComment extends Comment {
+
+ public LineComment() {
+ }
+
+ public LineComment(String content) {
+ super(content);
+ }
+
+ public LineComment(Range range, String content) {
+ super(range, content);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public boolean isLineComment()
+ {
+ return true;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/AnnotationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/AnnotationExpr.java
new file mode 100644
index 000000000..a1cad1cdb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/AnnotationExpr.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class AnnotationExpr extends Expression {
+
+ protected NameExpr name;
+
+ public AnnotationExpr() {}
+
+ public AnnotationExpr(Range range) {
+ super(range);
+ }
+
+ public NameExpr getName() {
+ return name;
+ }
+
+ public AnnotationExpr setName(NameExpr name) {
+ this.name = name;
+ setAsParentNodeOf(name);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayAccessExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayAccessExpr.java
new file mode 100644
index 000000000..b461ea87b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayAccessExpr.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ArrayAccessExpr extends Expression {
+
+ private Expression name;
+
+ private Expression index;
+
+ public ArrayAccessExpr() {
+ }
+
+ public ArrayAccessExpr(Expression name, Expression index) {
+ setName(name);
+ setIndex(index);
+ }
+
+ public ArrayAccessExpr(Range range, Expression name, Expression index) {
+ super(range);
+ setName(name);
+ setIndex(index);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getIndex() {
+ return index;
+ }
+
+ public Expression getName() {
+ return name;
+ }
+
+ public ArrayAccessExpr setIndex(Expression index) {
+ this.index = index;
+ setAsParentNodeOf(this.index);
+ return this;
+ }
+
+ public ArrayAccessExpr setName(Expression name) {
+ this.name = name;
+ setAsParentNodeOf(this.name);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayCreationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayCreationExpr.java
new file mode 100644
index 000000000..79d55a56c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayCreationExpr.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithType;
+import com.github.javaparser.ast.ArrayCreationLevel;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ArrayCreationExpr extends Expression implements NodeWithType<ArrayCreationExpr> {
+
+ private List<ArrayCreationLevel> levels;
+
+ private Type type;
+
+ private ArrayInitializerExpr initializer;
+
+ public ArrayCreationExpr() {
+ }
+
+ public ArrayCreationExpr(Type type, List<ArrayCreationLevel> levels, ArrayInitializerExpr initializer) {
+ setLevels(levels);
+ setType(type);
+ setInitializer(initializer);
+ }
+
+ public ArrayCreationExpr(Range range, Type type, List<ArrayCreationLevel> levels, ArrayInitializerExpr initializer) {
+ super(range);
+ setLevels(levels);
+ setType(type);
+ setInitializer(initializer);
+ }
+
+ public ArrayCreationExpr(Type type) {
+ setType(type);
+ setInitializer(null);
+ }
+
+ public ArrayCreationExpr(Range range, Type type) {
+ super(range);
+ setType(type);
+ setInitializer(null);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public ArrayInitializerExpr getInitializer() {
+ return initializer;
+ }
+
+ @Override
+ public Type getType() {
+ return type;
+ }
+
+ public ArrayCreationExpr setInitializer(ArrayInitializerExpr initializer) {
+ this.initializer = initializer;
+ setAsParentNodeOf(this.initializer);
+ return this;
+ }
+
+ @Override
+ public ArrayCreationExpr setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ return this;
+ }
+
+ public List<ArrayCreationLevel> getLevels() {
+ levels = ensureNotNull(levels);
+ return levels;
+ }
+
+ public ArrayCreationExpr setLevels(List<ArrayCreationLevel> levels) {
+ this.levels = levels;
+ setAsParentNodeOf(levels);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayInitializerExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayInitializerExpr.java
new file mode 100644
index 000000000..67c10739b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ArrayInitializerExpr.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ArrayInitializerExpr extends Expression {
+
+ private List<Expression> values;
+
+ public ArrayInitializerExpr() {
+ }
+
+ public ArrayInitializerExpr(List<Expression> values) {
+ setValues(values);
+ }
+
+ public ArrayInitializerExpr(Range range, List<Expression> values) {
+ super(range);
+ setValues(values);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getValues() {
+ values = ensureNotNull(values);
+ return values;
+ }
+
+ public ArrayInitializerExpr setValues(List<Expression> values) {
+ this.values = values;
+ setAsParentNodeOf(this.values);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/AssignExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/AssignExpr.java
new file mode 100644
index 000000000..cf16c6fff
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/AssignExpr.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AssignExpr extends Expression {
+
+ public enum Operator {
+ assign, // =
+ plus, // +=
+ minus, // -=
+ star, // *=
+ slash, // /=
+ and, // &=
+ or, // |=
+ xor, // ^=
+ rem, // %=
+ lShift, // <<=
+ rSignedShift, // >>=
+ rUnsignedShift, // >>>=
+ }
+
+ private Expression target;
+
+ private Expression value;
+
+ private Operator op;
+
+ public AssignExpr() {
+ }
+
+ public AssignExpr(Expression target, Expression value, Operator op) {
+ setTarget(target);
+ setValue(value);
+ setOperator(op);
+ }
+
+ public AssignExpr(Range range, Expression target, Expression value, Operator op) {
+ super(range);
+ setTarget(target);
+ setValue(value);
+ setOperator(op);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Operator getOperator() {
+ return op;
+ }
+
+ public Expression getTarget() {
+ return target;
+ }
+
+ public Expression getValue() {
+ return value;
+ }
+
+ public AssignExpr setOperator(Operator op) {
+ this.op = op;
+ return this;
+ }
+
+ public AssignExpr setTarget(Expression target) {
+ this.target = target;
+ setAsParentNodeOf(this.target);
+ return this;
+ }
+
+ public AssignExpr setValue(Expression value) {
+ this.value = value;
+ setAsParentNodeOf(this.value);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/BinaryExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/BinaryExpr.java
new file mode 100644
index 000000000..83675c8c4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/BinaryExpr.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BinaryExpr extends Expression {
+
+ public enum Operator {
+ or, // ||
+ and, // &&
+ binOr, // |
+ binAnd, // &
+ xor, // ^
+ equals, // ==
+ notEquals, // !=
+ less, // <
+ greater, // >
+ lessEquals, // <=
+ greaterEquals, // >=
+ lShift, // <<
+ rSignedShift, // >>
+ rUnsignedShift, // >>>
+ plus, // +
+ minus, // -
+ times, // *
+ divide, // /
+ remainder, // %
+ }
+
+ private Expression left;
+
+ private Expression right;
+
+ private Operator op;
+
+ public BinaryExpr() {
+ }
+
+ public BinaryExpr(Expression left, Expression right, Operator op) {
+ setLeft(left);
+ setRight(right);
+ setOperator(op);
+ }
+
+ public BinaryExpr(Range range, Expression left, Expression right, Operator op) {
+ super(range);
+ setLeft(left);
+ setRight(right);
+ setOperator(op);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getLeft() {
+ return left;
+ }
+
+ public Operator getOperator() {
+ return op;
+ }
+
+ public Expression getRight() {
+ return right;
+ }
+
+ public BinaryExpr setLeft(Expression left) {
+ this.left = left;
+ setAsParentNodeOf(this.left);
+ return this;
+ }
+
+ public BinaryExpr setOperator(Operator op) {
+ this.op = op;
+ return this;
+ }
+
+ public BinaryExpr setRight(Expression right) {
+ this.right = right;
+ setAsParentNodeOf(this.right);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/BooleanLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/BooleanLiteralExpr.java
new file mode 100644
index 000000000..a42c8c722
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/BooleanLiteralExpr.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BooleanLiteralExpr extends LiteralExpr {
+
+ private boolean value;
+
+ public BooleanLiteralExpr() {
+ }
+
+ public BooleanLiteralExpr(boolean value) {
+ setValue(value);
+ }
+
+ public BooleanLiteralExpr(Range range, boolean value) {
+ super(range);
+ setValue(value);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public boolean getValue() {
+ return value;
+ }
+
+ public BooleanLiteralExpr setValue(boolean value) {
+ this.value = value;
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/CastExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/CastExpr.java
new file mode 100644
index 000000000..d2a54bc08
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/CastExpr.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class CastExpr extends Expression implements NodeWithType<CastExpr> {
+
+ private Type type;
+
+ private Expression expr;
+
+ public CastExpr() {
+ }
+
+ public CastExpr(Type type, Expression expr) {
+ setType(type);
+ setExpr(expr);
+ }
+
+ public CastExpr(Range range, Type type, Expression expr) {
+ super(range);
+ setType(type);
+ setExpr(expr);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ @Override
+ public Type getType() {
+ return type;
+ }
+
+ public CastExpr setExpr(Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ return this;
+ }
+
+ @Override
+ public CastExpr setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/CharLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/CharLiteralExpr.java
new file mode 100644
index 000000000..e799e887c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/CharLiteralExpr.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.utils.Utils;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class CharLiteralExpr extends StringLiteralExpr {
+
+ public CharLiteralExpr() {
+ }
+
+ public CharLiteralExpr(String value) {
+ super(value);
+ }
+
+ public CharLiteralExpr(Range range, String value) {
+ super(range, value);
+ }
+
+ /**
+ * Utility method that creates a new StringLiteralExpr. Escapes EOL characters.
+ */
+ public static CharLiteralExpr escape(String string) {
+ return new CharLiteralExpr(Utils.escapeEndOfLines(string));
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ClassExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ClassExpr.java
new file mode 100644
index 000000000..a6dc9058d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ClassExpr.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * Defines an expression that accesses the class of a type.
+ * Example:
+ * <code>
+ * Object.class
+ * </code>
+ * @author Julio Vilmar Gesser
+ */
+public final class ClassExpr extends Expression implements NodeWithType<ClassExpr> {
+
+ private Type type;
+
+ public ClassExpr() {
+ }
+
+ public ClassExpr(Type type) {
+ setType(type);
+ }
+
+ public ClassExpr(Range range, Type type) {
+ super(range);
+ setType(type);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public Type getType() {
+ return type;
+ }
+
+ @Override
+ public ClassExpr setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ConditionalExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ConditionalExpr.java
new file mode 100644
index 000000000..4dd4c4b0f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ConditionalExpr.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ConditionalExpr extends Expression {
+
+ private Expression condition;
+
+ private Expression thenExpr;
+
+ private Expression elseExpr;
+
+ public ConditionalExpr() {
+ }
+
+ public ConditionalExpr(Expression condition, Expression thenExpr, Expression elseExpr) {
+ setCondition(condition);
+ setThenExpr(thenExpr);
+ setElseExpr(elseExpr);
+ }
+
+ public ConditionalExpr(Range range, Expression condition, Expression thenExpr, Expression elseExpr) {
+ super(range);
+ setCondition(condition);
+ setThenExpr(thenExpr);
+ setElseExpr(elseExpr);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ public Expression getElseExpr() {
+ return elseExpr;
+ }
+
+ public Expression getThenExpr() {
+ return thenExpr;
+ }
+
+ public ConditionalExpr setCondition(Expression condition) {
+ this.condition = condition;
+ setAsParentNodeOf(this.condition);
+ return this;
+ }
+
+ public ConditionalExpr setElseExpr(Expression elseExpr) {
+ this.elseExpr = elseExpr;
+ setAsParentNodeOf(this.elseExpr);
+ return this;
+ }
+
+ public ConditionalExpr setThenExpr(Expression thenExpr) {
+ this.thenExpr = thenExpr;
+ setAsParentNodeOf(this.thenExpr);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/DoubleLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/DoubleLiteralExpr.java
new file mode 100644
index 000000000..b78923851
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/DoubleLiteralExpr.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class DoubleLiteralExpr extends StringLiteralExpr {
+
+ public DoubleLiteralExpr() {
+ }
+
+ public DoubleLiteralExpr(final String value) {
+ super(value);
+ }
+
+ public DoubleLiteralExpr(final Range range, final String value) {
+ super(range, value);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/EnclosedExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/EnclosedExpr.java
new file mode 100644
index 000000000..a7c40febc
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/EnclosedExpr.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EnclosedExpr extends Expression {
+
+ private Expression inner;
+
+ public EnclosedExpr() {
+ }
+
+ public EnclosedExpr(final Expression inner) {
+ setInner(inner);
+ }
+
+ public EnclosedExpr(final Range range, final Expression inner) {
+ super(range);
+ setInner(inner);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getInner() {
+ return inner;
+ }
+
+ public EnclosedExpr setInner(final Expression inner) {
+ this.inner = inner;
+ setAsParentNodeOf(this.inner);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/Expression.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/Expression.java
new file mode 100644
index 000000000..f9745646f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/Expression.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Node;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Expression extends Node {
+
+ public Expression() {
+ }
+
+ public Expression(Range range) {
+ super(range);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/FieldAccessExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/FieldAccessExpr.java
new file mode 100644
index 000000000..0a4badf5c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/FieldAccessExpr.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class FieldAccessExpr extends Expression implements NodeWithTypeArguments<FieldAccessExpr> {
+
+ private Expression scope;
+
+ private List<Type<?>> typeArguments;
+
+ private NameExpr field;
+
+ public FieldAccessExpr() {
+ }
+
+ public FieldAccessExpr(final Expression scope, final String field) {
+ setScope(scope);
+ setField(field);
+ }
+
+ public FieldAccessExpr(final Range range, final Expression scope, final List<Type<?>> typeArguments, final String field) {
+ super(range);
+ setScope(scope);
+ setTypeArguments(typeArguments);
+ setField(field);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getField() {
+ return field.getName();
+ }
+
+ public NameExpr getFieldExpr() {
+ return field;
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ public FieldAccessExpr setField(final String field) {
+ setFieldExpr(new NameExpr(field));
+ return this;
+ }
+
+ public FieldAccessExpr setFieldExpr(NameExpr field) {
+ this.field = field;
+ setAsParentNodeOf(this.field);
+ return this;
+ }
+
+ public FieldAccessExpr setScope(final Expression scope) {
+ this.scope = scope;
+ setAsParentNodeOf(this.scope);
+ return this;
+ }
+
+
+ @Override
+ public List<Type<?>> getTypeArguments() {
+ return typeArguments;
+ }
+
+ @Override
+ public FieldAccessExpr setTypeArguments(final List<Type<?>> types) {
+ this.typeArguments = types;
+ setAsParentNodeOf(this.typeArguments);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/InstanceOfExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/InstanceOfExpr.java
new file mode 100644
index 000000000..ffc248ce6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/InstanceOfExpr.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class InstanceOfExpr extends Expression implements NodeWithType<InstanceOfExpr> {
+
+ private Expression expr;
+
+ private Type type;
+
+ public InstanceOfExpr() {
+ }
+
+ public InstanceOfExpr(final Expression expr, final Type type) {
+ setExpr(expr);
+ setType(type);
+ }
+
+ public InstanceOfExpr(final Range range, final Expression expr, final Type type) {
+ super(range);
+ setExpr(expr);
+ setType(type);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ @Override
+ public Type getType() {
+ return type;
+ }
+
+ public InstanceOfExpr setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ return this;
+ }
+
+ @Override
+ public InstanceOfExpr setType(final Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/IntegerLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/IntegerLiteralExpr.java
new file mode 100644
index 000000000..91f5dec77
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/IntegerLiteralExpr.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class IntegerLiteralExpr extends StringLiteralExpr {
+
+ private static final String UNSIGNED_MIN_VALUE = "2147483648";
+
+ protected static final String MIN_VALUE = "-" + UNSIGNED_MIN_VALUE;
+
+ public IntegerLiteralExpr() {
+ }
+
+ public IntegerLiteralExpr(final String value) {
+ super(value);
+ }
+
+ public IntegerLiteralExpr(final Range range, final String value) {
+ super(range, value);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public final boolean isMinValue() {
+ return value != null && //
+ value.length() == 10 && //
+ value.equals(UNSIGNED_MIN_VALUE);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/IntegerLiteralMinValueExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/IntegerLiteralMinValueExpr.java
new file mode 100644
index 000000000..2665aafe3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/IntegerLiteralMinValueExpr.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class IntegerLiteralMinValueExpr extends IntegerLiteralExpr {
+
+ public IntegerLiteralMinValueExpr() {
+ super(MIN_VALUE);
+ }
+
+ public IntegerLiteralMinValueExpr(final Range range) {
+ super(range, MIN_VALUE);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LambdaExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LambdaExpr.java
new file mode 100644
index 000000000..4db1b0dfb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LambdaExpr.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.stmt.Statement;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.*;
+
+/**
+ * Lambda expression.
+ *
+ * @author Raquel Pau
+ */
+public class LambdaExpr extends Expression {
+
+ private List<Parameter> parameters;
+
+ private boolean parametersEnclosed;
+
+ private Statement body;
+
+ public LambdaExpr() {
+ }
+
+ public LambdaExpr(Range range, List<Parameter> parameters, Statement body,
+ boolean parametersEnclosed) {
+
+ super(range);
+ setParameters(parameters);
+ setBody(body);
+ setParametersEnclosed(parametersEnclosed);
+ }
+
+ public List<Parameter> getParameters() {
+ parameters = ensureNotNull(parameters);
+ return parameters;
+ }
+
+ public LambdaExpr setParameters(List<Parameter> parameters) {
+ this.parameters = parameters;
+ setAsParentNodeOf(this.parameters);
+ return this;
+ }
+
+ public Statement getBody() {
+ return body;
+ }
+
+ public LambdaExpr setBody(Statement body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ return this;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public boolean isParametersEnclosed() {
+ return parametersEnclosed;
+ }
+
+ public LambdaExpr setParametersEnclosed(boolean parametersEnclosed) {
+ this.parametersEnclosed = parametersEnclosed;
+ return this;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LiteralExpr.java
new file mode 100644
index 000000000..9cafefdc4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LiteralExpr.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class LiteralExpr extends Expression {
+
+ public LiteralExpr() {
+ }
+
+ public LiteralExpr(Range range) {
+ super(range);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LongLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LongLiteralExpr.java
new file mode 100644
index 000000000..0e2e8f299
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LongLiteralExpr.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class LongLiteralExpr extends StringLiteralExpr {
+
+ private static final String UNSIGNED_MIN_VALUE = "9223372036854775808";
+
+ protected static final String MIN_VALUE = "-" + UNSIGNED_MIN_VALUE + "L";
+
+ public LongLiteralExpr() {
+ }
+
+ public LongLiteralExpr(final String value) {
+ super(value);
+ }
+
+ public LongLiteralExpr(final Range range, final String value) {
+ super(range, value);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public final boolean isMinValue() {
+ return value != null && //
+ value.length() == 20 && //
+ value.startsWith(UNSIGNED_MIN_VALUE) && //
+ (value.charAt(19) == 'L' || value.charAt(19) == 'l');
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LongLiteralMinValueExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LongLiteralMinValueExpr.java
new file mode 100644
index 000000000..d46145a4a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/LongLiteralMinValueExpr.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class LongLiteralMinValueExpr extends LongLiteralExpr {
+
+ public LongLiteralMinValueExpr() {
+ super(MIN_VALUE);
+ }
+
+ public LongLiteralMinValueExpr(final Range range) {
+ super(range, MIN_VALUE);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java
new file mode 100644
index 000000000..1a117ff97
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MarkerAnnotationExpr extends AnnotationExpr {
+
+ public MarkerAnnotationExpr() {
+ }
+
+ public MarkerAnnotationExpr(final NameExpr name) {
+ setName(name);
+ }
+
+ public MarkerAnnotationExpr(final Range range, final NameExpr name) {
+ super(range);
+ setName(name);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MemberValuePair.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MemberValuePair.java
new file mode 100644
index 000000000..f87af5dbb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MemberValuePair.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.nodeTypes.NodeWithName;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MemberValuePair extends Node implements NodeWithName<MemberValuePair> {
+
+ private String name;
+
+ private Expression value;
+
+ public MemberValuePair() {
+ }
+
+ public MemberValuePair(final String name, final Expression value) {
+ setName(name);
+ setValue(value);
+ }
+
+ public MemberValuePair(final Range range, final String name, final Expression value) {
+ super(range);
+ setName(name);
+ setValue(value);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ public Expression getValue() {
+ return value;
+ }
+
+ @Override
+ public MemberValuePair setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public MemberValuePair setValue(final Expression value) {
+ this.value = value;
+ setAsParentNodeOf(this.value);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MethodCallExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MethodCallExpr.java
new file mode 100644
index 000000000..98a246455
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MethodCallExpr.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MethodCallExpr extends Expression implements NodeWithTypeArguments<MethodCallExpr> {
+
+ private Expression scope;
+
+ private List<Type<?>> typeArguments;
+
+ private NameExpr name;
+
+ private List<Expression> args;
+
+ public MethodCallExpr() {
+ }
+
+ public MethodCallExpr(final Expression scope, final String name) {
+ setScope(scope);
+ setName(name);
+ }
+
+ public MethodCallExpr(final Expression scope, final String name, final List<Expression> args) {
+ setScope(scope);
+ setName(name);
+ setArgs(args);
+ }
+
+ public MethodCallExpr(final Range range, final Expression scope, final List<Type<?>> typeArguments, final String name, final List<Expression> args) {
+ super(range);
+ setScope(scope);
+ setTypeArguments(typeArguments);
+ setName(name);
+ setArgs(args);
+ }
+
+ /**
+ * Adds the given argument to the method call.
+ *
+ * @param arg
+ * argument value
+ */
+ public MethodCallExpr addArgument(Expression arg) {
+ getArgs().add(arg);
+ arg.setParentNode(this);
+ return this;
+ }
+
+ public void addArgument(String arg) {
+ addArgument(new NameExpr(arg));
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getArgs() {
+ args = ensureNotNull(args);
+ return args;
+ }
+
+ public String getName() {
+ return name.getName();
+ }
+
+ public NameExpr getNameExpr() {
+ return name;
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ public void setArgs(final List<Expression> args) {
+ this.args = args;
+ setAsParentNodeOf(this.args);
+ }
+
+ public MethodCallExpr setName(final String name) {
+ setNameExpr(new NameExpr(name));
+ return this;
+ }
+
+ public MethodCallExpr setNameExpr(NameExpr name) {
+ this.name = name;
+ setAsParentNodeOf(this.name);
+ return this;
+ }
+
+ public MethodCallExpr setScope(final Expression scope) {
+ this.scope = scope;
+ setAsParentNodeOf(this.scope);
+ return this;
+ }
+
+ @Override
+ public List<Type<?>> getTypeArguments() {
+ return typeArguments;
+ }
+
+ @Override
+ public MethodCallExpr setTypeArguments(final List<Type<?>> types) {
+ this.typeArguments = types;
+ setAsParentNodeOf(this.typeArguments);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MethodReferenceExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MethodReferenceExpr.java
new file mode 100644
index 000000000..d048ca16a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/MethodReferenceExpr.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * Method reference expressions introduced in Java 8 specifically designed to simplify lambda Expressions.
+ * These are some examples:
+ *
+ * System.out::println;
+ *
+ * (test ? stream.map(String::trim) : stream)::toArray;
+ * @author Raquel Pau
+ *
+ */
+public class MethodReferenceExpr extends Expression implements NodeWithTypeArguments<MethodReferenceExpr> {
+
+ private Expression scope;
+
+ private List<Type<?>> typeArguments;
+
+ private String identifier;
+
+ public MethodReferenceExpr() {
+ }
+
+ public MethodReferenceExpr(Range range, Expression scope,
+ List<Type<?>> typeArguments, String identifier) {
+ super(range);
+ setIdentifier(identifier);
+ setScope(scope);
+ setTypeArguments(typeArguments);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ public MethodReferenceExpr setScope(Expression scope) {
+ this.scope = scope;
+ setAsParentNodeOf(this.scope);
+ return this;
+ }
+
+ @Override
+ public List<Type<?>> getTypeArguments() {
+ return typeArguments;
+ }
+
+ @Override
+ public MethodReferenceExpr setTypeArguments(final List<Type<?>> types) {
+ this.typeArguments = types;
+ setAsParentNodeOf(this.typeArguments);
+ return this;
+ }
+
+ public String getIdentifier() {
+ return identifier;
+ }
+
+ public MethodReferenceExpr setIdentifier(String identifier) {
+ this.identifier = identifier;
+ return this;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NameExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NameExpr.java
new file mode 100644
index 000000000..331fa2af3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NameExpr.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithName;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class NameExpr extends Expression implements NodeWithName<NameExpr> {
+
+ private String name;
+
+ public NameExpr() {
+ }
+
+ public NameExpr(final String name) {
+ this.name = name;
+ }
+
+ public NameExpr(Range range, final String name) {
+ super(range);
+ this.name = name;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public final String getName() {
+ return name;
+ }
+
+ @Override
+ public NameExpr setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+
+ /**
+ * Creates a new {@link NameExpr} from a qualified name.<br>
+ * The qualified name can contains "." (dot) characters.
+ *
+ * @param qualifiedName
+ * qualified name
+ * @return instanceof {@link NameExpr}
+ */
+ public static NameExpr name(String qualifiedName) {
+ String[] split = qualifiedName.split("\\.");
+ NameExpr ret = new NameExpr(split[0]);
+ for (int i = 1; i < split.length; i++) {
+ ret = new QualifiedNameExpr(ret, split[i]);
+ }
+ return ret;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NormalAnnotationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NormalAnnotationExpr.java
new file mode 100644
index 000000000..502b11dbd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NormalAnnotationExpr.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import static com.github.javaparser.ast.expr.NameExpr.*;
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+import java.util.List;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class NormalAnnotationExpr extends AnnotationExpr {
+
+ private List<MemberValuePair> pairs;
+
+ public NormalAnnotationExpr() {
+ }
+
+ public NormalAnnotationExpr(final NameExpr name, final List<MemberValuePair> pairs) {
+ setName(name);
+ setPairs(pairs);
+ }
+
+ public NormalAnnotationExpr(final Range range, final NameExpr name, final List<MemberValuePair> pairs) {
+ super(range);
+ setName(name);
+ setPairs(pairs);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<MemberValuePair> getPairs() {
+ pairs = ensureNotNull(pairs);
+ return pairs;
+ }
+
+ public NormalAnnotationExpr setPairs(final List<MemberValuePair> pairs) {
+ this.pairs = pairs;
+ setAsParentNodeOf(this.pairs);
+ return this;
+ }
+
+ /**
+ * adds a pair to this annotation
+ *
+ * @return this, the {@link NormalAnnotationExpr}
+ */
+ public NormalAnnotationExpr addPair(String key, String value) {
+ return addPair(key, name(value));
+ }
+
+ /**
+ * adds a pair to this annotation
+ *
+ * @return this, the {@link NormalAnnotationExpr}
+ */
+ public NormalAnnotationExpr addPair(String key, NameExpr value) {
+ MemberValuePair memberValuePair = new MemberValuePair(key, value);
+ getPairs().add(memberValuePair);
+ memberValuePair.setParentNode(this);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NullLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NullLiteralExpr.java
new file mode 100644
index 000000000..cb0a92b83
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/NullLiteralExpr.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class NullLiteralExpr extends LiteralExpr {
+
+ public NullLiteralExpr() {
+ }
+
+ public NullLiteralExpr(final Range range) {
+ super(range);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ObjectCreationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ObjectCreationExpr.java
new file mode 100644
index 000000000..4d06ff8db
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ObjectCreationExpr.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments;
+import com.github.javaparser.ast.nodeTypes.NodeWithType;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * Defines constructor call expression.
+ * Example:
+ * <code>
+ * new Object()
+ * </code>
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class ObjectCreationExpr extends Expression implements
+ NodeWithTypeArguments<ObjectCreationExpr>,
+ NodeWithType<ObjectCreationExpr> {
+
+ private Expression scope;
+
+ private ClassOrInterfaceType type;
+
+ private List<Type<?>> typeArguments;
+
+ private List<Expression> args;
+
+ // This can be null, to indicate there is no body
+ private List<BodyDeclaration<?>> anonymousClassBody;
+
+ public ObjectCreationExpr() {
+ }
+
+ /**
+ * Defines a call to a constructor.
+ *
+ * @param scope may be null
+ * @param type this is the class that the constructor is being called for.
+ * @param args Any arguments to pass to the constructor
+ */
+ public ObjectCreationExpr(final Expression scope, final ClassOrInterfaceType type, final List<Expression> args) {
+ setScope(scope);
+ setType(type);
+ setArgs(args);
+ }
+
+ public ObjectCreationExpr(final Range range,
+ final Expression scope, final ClassOrInterfaceType type, final List<Type<?>> typeArguments,
+ final List<Expression> args, final List<BodyDeclaration<?>> anonymousBody) {
+ super(range);
+ setScope(scope);
+ setType(type);
+ setTypeArguments(typeArguments);
+ setArgs(args);
+ setAnonymousClassBody(anonymousBody);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * This can be null, to indicate there is no body
+ */
+ public List<BodyDeclaration<?>> getAnonymousClassBody() {
+ return anonymousClassBody;
+ }
+
+ public void addAnonymousClassBody(BodyDeclaration<?> body) {
+ if (anonymousClassBody == null)
+ anonymousClassBody = new ArrayList<>();
+ anonymousClassBody.add(body);
+ body.setParentNode(this);
+ }
+
+ public List<Expression> getArgs() {
+ args = ensureNotNull(args);
+ return args;
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ @Override
+ public ClassOrInterfaceType getType() {
+ return type;
+ }
+
+ public ObjectCreationExpr setAnonymousClassBody(final List<BodyDeclaration<?>> anonymousClassBody) {
+ this.anonymousClassBody = anonymousClassBody;
+ setAsParentNodeOf(this.anonymousClassBody);
+ return this;
+ }
+
+ public ObjectCreationExpr setArgs(final List<Expression> args) {
+ this.args = args;
+ setAsParentNodeOf(this.args);
+ return this;
+ }
+
+ public ObjectCreationExpr setScope(final Expression scope) {
+ this.scope = scope;
+ setAsParentNodeOf(this.scope);
+ return this;
+ }
+
+ @Override
+ public ObjectCreationExpr setType(final Type<?> type) {
+ if (!(type instanceof ClassOrInterfaceType))// needed so we can use NodeWithType
+ throw new RuntimeException("You can only add ClassOrInterfaceType to an ObjectCreationExpr");
+ this.type = (ClassOrInterfaceType) type;
+ setAsParentNodeOf(this.type);
+ return this;
+ }
+
+ @Override
+ public List<Type<?>> getTypeArguments() {
+ return typeArguments;
+ }
+
+ @Override
+ public ObjectCreationExpr setTypeArguments(final List<Type<?>> types) {
+ this.typeArguments = types;
+ setAsParentNodeOf(this.typeArguments);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/QualifiedNameExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/QualifiedNameExpr.java
new file mode 100644
index 000000000..dd906310d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/QualifiedNameExpr.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class QualifiedNameExpr extends NameExpr {
+
+ private NameExpr qualifier;
+
+ public QualifiedNameExpr() {
+ }
+
+ public QualifiedNameExpr(final NameExpr scope, final String name) {
+ super(name);
+ setQualifier(scope);
+ }
+
+ public QualifiedNameExpr(final Range range, final NameExpr scope, final String name) {
+ super(range, name);
+ setQualifier(scope);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public NameExpr getQualifier() {
+ return qualifier;
+ }
+
+ public QualifiedNameExpr setQualifier(final NameExpr qualifier) {
+ this.qualifier = qualifier;
+ setAsParentNodeOf(this.qualifier);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java
new file mode 100644
index 000000000..bd6692c83
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SingleMemberAnnotationExpr extends AnnotationExpr {
+
+ private Expression memberValue;
+
+ public SingleMemberAnnotationExpr() {
+ }
+
+ public SingleMemberAnnotationExpr(final NameExpr name, final Expression memberValue) {
+ setName(name);
+ setMemberValue(memberValue);
+ }
+
+ public SingleMemberAnnotationExpr(final Range range, final NameExpr name, final Expression memberValue) {
+ super(range);
+ setName(name);
+ setMemberValue(memberValue);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getMemberValue() {
+ return memberValue;
+ }
+
+ public SingleMemberAnnotationExpr setMemberValue(final Expression memberValue) {
+ this.memberValue = memberValue;
+ setAsParentNodeOf(this.memberValue);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/StringLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/StringLiteralExpr.java
new file mode 100644
index 000000000..f66a594da
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/StringLiteralExpr.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.utils.Utils;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * Java® Language Specification 3.10.5 String Literals
+ * @author Julio Vilmar Gesser
+ */
+public class StringLiteralExpr extends LiteralExpr {
+
+ protected String value;
+
+ public StringLiteralExpr() {
+ this.value = "";
+ }
+
+ public StringLiteralExpr(final String value) {
+ if (value.contains("\n") || value.contains("\r")) {
+ throw new IllegalArgumentException("Illegal literal expression: newlines (line feed or carriage return) have to be escaped");
+ }
+ this.value = value;
+ }
+
+ /**
+ * Utility method that creates a new StringLiteralExpr. Escapes EOL characters.
+ */
+ public static StringLiteralExpr escape(String string) {
+ return new StringLiteralExpr(Utils.escapeEndOfLines(string));
+ }
+
+ public StringLiteralExpr(final Range range, final String value) {
+ super(range);
+ this.value = value;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public final String getValue() {
+ return value;
+ }
+
+ public final StringLiteralExpr setValue(final String value) {
+ this.value = value;
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/SuperExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/SuperExpr.java
new file mode 100644
index 000000000..3f5e1866c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/SuperExpr.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SuperExpr extends Expression {
+
+ private Expression classExpr;
+
+ public SuperExpr() {
+ }
+
+ public SuperExpr(final Expression classExpr) {
+ setClassExpr(classExpr);
+ }
+
+ public SuperExpr(final Range range, final Expression classExpr) {
+ super(range);
+ setClassExpr(classExpr);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getClassExpr() {
+ return classExpr;
+ }
+
+ public SuperExpr setClassExpr(final Expression classExpr) {
+ this.classExpr = classExpr;
+ setAsParentNodeOf(this.classExpr);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ThisExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ThisExpr.java
new file mode 100644
index 000000000..117fed53d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/ThisExpr.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ThisExpr extends Expression {
+
+ private Expression classExpr;
+
+ public ThisExpr() {
+ }
+
+ public ThisExpr(final Expression classExpr) {
+ setClassExpr(classExpr);
+ }
+
+ public ThisExpr(final Range range, final Expression classExpr) {
+ super(range);
+ setClassExpr(classExpr);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getClassExpr() {
+ return classExpr;
+ }
+
+ public ThisExpr setClassExpr(final Expression classExpr) {
+ this.classExpr = classExpr;
+ setAsParentNodeOf(this.classExpr);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/TypeExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/TypeExpr.java
new file mode 100644
index 000000000..28b14e19f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/TypeExpr.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * This class is just instantiated as scopes for MethodReferenceExpr nodes to encapsulate Types.
+ * @author Raquel Pau
+ *
+ */
+public class TypeExpr extends Expression implements NodeWithType<TypeExpr> {
+
+ private Type<?> type;
+
+ public TypeExpr(){}
+
+ public TypeExpr(Range range, Type<?> type) {
+ super(range);
+ setType(type);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public Type<?> getType() {
+ return type;
+ }
+
+ @Override
+ public TypeExpr setType(Type<?> type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ return this;
+ }
+
+
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/UnaryExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/UnaryExpr.java
new file mode 100644
index 000000000..eef9101ee
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/UnaryExpr.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class UnaryExpr extends Expression {
+
+ public enum Operator {
+ positive, // +
+ negative, // -
+ preIncrement, // ++
+ preDecrement, // --
+ not, // !
+ inverse, // ~
+ posIncrement, // ++
+ posDecrement, // --
+ }
+
+ private Expression expr;
+
+ private Operator op;
+
+ public UnaryExpr() {
+ }
+
+ public UnaryExpr(final Expression expr, final Operator op) {
+ setExpr(expr);
+ setOperator(op);
+ }
+
+ public UnaryExpr(final Range range, final Expression expr, final Operator op) {
+ super(range);
+ setExpr(expr);
+ setOperator(op);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public Operator getOperator() {
+ return op;
+ }
+
+ public UnaryExpr setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ return this;
+ }
+
+ public UnaryExpr setOperator(final Operator op) {
+ this.op = op;
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/VariableDeclarationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/VariableDeclarationExpr.java
new file mode 100644
index 000000000..5bb0f6299
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/expr/VariableDeclarationExpr.java
@@ -0,0 +1,200 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+import static java.util.Collections.*;
+
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.ArrayBracketPair;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.nodeTypes.NodeWithElementType;
+import com.github.javaparser.ast.nodeTypes.NodeWithModifiers;
+import com.github.javaparser.ast.nodeTypes.NodeWithVariables;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VariableDeclarationExpr extends Expression implements
+ NodeWithElementType<VariableDeclarationExpr>,
+ NodeWithModifiers<VariableDeclarationExpr>,
+ NodeWithAnnotations<VariableDeclarationExpr>,
+ NodeWithVariables<VariableDeclarationExpr> {
+
+ private EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class);
+
+ private List<AnnotationExpr> annotations;
+
+ private Type elementType;
+
+ private List<VariableDeclarator> variables;
+
+ private List<ArrayBracketPair> arrayBracketPairsAfterType;
+
+ public VariableDeclarationExpr() {
+ }
+
+ public VariableDeclarationExpr(final Type elementType, String variableName) {
+ setElementType(elementType);
+ setVariables(singletonList(new VariableDeclarator(variableName)));
+ }
+
+ public VariableDeclarationExpr(final Type elementType, VariableDeclarator var) {
+ setElementType(elementType);
+ setVariables(singletonList(var));
+ }
+
+ public VariableDeclarationExpr(final Type elementType, String variableName, Modifier... modifiers) {
+ setElementType(elementType);
+ setVariables(singletonList(new VariableDeclarator(variableName)));
+ setModifiers(Arrays.stream(modifiers)
+ .collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))));
+ }
+
+ public VariableDeclarationExpr(final Type elementType, VariableDeclarator var, Modifier... modifiers) {
+ setElementType(elementType);
+ setVariables(singletonList(var));
+ setModifiers(Arrays.stream(modifiers)
+ .collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))));
+ }
+
+ public VariableDeclarationExpr(final Type elementType, final List<VariableDeclarator> variables) {
+ setElementType(elementType);
+ setVariables(variables);
+ }
+
+ public VariableDeclarationExpr(final EnumSet<Modifier> modifiers, final Type elementType,
+ final List<VariableDeclarator> variables) {
+ setModifiers(modifiers);
+ setElementType(elementType);
+ setVariables(variables);
+ }
+
+ public VariableDeclarationExpr(final Range range,
+ final EnumSet<Modifier> modifiers, final List<AnnotationExpr> annotations,
+ final Type elementType,
+ final List<VariableDeclarator> variables,
+ final List<ArrayBracketPair> arrayBracketPairsAfterType) {
+ super(range);
+ setModifiers(modifiers);
+ setAnnotations(annotations);
+ setElementType(elementType);
+ setVariables(variables);
+ setArrayBracketPairsAfterElementType(arrayBracketPairsAfterType);
+ }
+
+ /**
+ * Creates a {@link VariableDeclarationExpr}.
+ *
+ * @return instance of {@link VariableDeclarationExpr}
+ */
+ public static VariableDeclarationExpr create(Type type, String name) {
+ return new VariableDeclarationExpr(type, name);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public List<AnnotationExpr> getAnnotations() {
+ annotations = ensureNotNull(annotations);
+ return annotations;
+ }
+
+ /**
+ * Return the modifiers of this variable declaration.
+ *
+ * @see Modifier
+ * @return modifiers
+ */
+ @Override
+ public EnumSet<Modifier> getModifiers() {
+ return modifiers;
+ }
+
+ @Override
+ public Type getElementType() {
+ return elementType;
+ }
+
+ @Override
+ public List<VariableDeclarator> getVariables() {
+ variables = ensureNotNull(variables);
+ return variables;
+ }
+
+ @Override
+ public VariableDeclarationExpr setAnnotations(final List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ setAsParentNodeOf(this.annotations);
+ return this;
+ }
+
+ @Override
+ public VariableDeclarationExpr setModifiers(final EnumSet<Modifier> modifiers) {
+ this.modifiers = modifiers;
+ return this;
+ }
+
+ @Override
+ public VariableDeclarationExpr setElementType(final Type elementType) {
+ this.elementType = elementType;
+ setAsParentNodeOf(this.elementType);
+ return this;
+ }
+
+ @Override
+ public VariableDeclarationExpr setVariables(final List<VariableDeclarator> variables) {
+ this.variables = variables;
+ setAsParentNodeOf(this.variables);
+ return this;
+ }
+
+ public List<ArrayBracketPair> getArrayBracketPairsAfterElementType() {
+ arrayBracketPairsAfterType = ensureNotNull(arrayBracketPairsAfterType);
+ return arrayBracketPairsAfterType;
+ }
+
+ @Override
+ public VariableDeclarationExpr setArrayBracketPairsAfterElementType(List<ArrayBracketPair> arrayBracketPairsAfterType) {
+ this.arrayBracketPairsAfterType = arrayBracketPairsAfterType;
+ setAsParentNodeOf(arrayBracketPairsAfterType);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithAnnotations.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithAnnotations.java
new file mode 100644
index 000000000..71ff7179b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithAnnotations.java
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.nodeTypes;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.MarkerAnnotationExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.expr.NormalAnnotationExpr;
+import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr;
+
+import static com.github.javaparser.ast.expr.NameExpr.*;
+
+/**
+ * An element which can be the target of annotations.
+ *
+ * @author Federico Tomassetti
+ * @since July 2014
+ */
+public interface NodeWithAnnotations<T> {
+ List<AnnotationExpr> getAnnotations();
+
+ T setAnnotations(List<AnnotationExpr> annotations);
+
+ /**
+ * Annotates this
+ *
+ * @param name the name of the annotation
+ * @return the {@link NormalAnnotationExpr} added
+ */
+ public default NormalAnnotationExpr addAnnotation(String name) {
+ NormalAnnotationExpr normalAnnotationExpr = new NormalAnnotationExpr(
+ name(name), null);
+ getAnnotations().add(normalAnnotationExpr);
+ normalAnnotationExpr.setParentNode((Node) this);
+ return normalAnnotationExpr;
+ }
+
+ /**
+ * Annotates this and automatically add the import
+ *
+ * @param clazz the class of the annotation
+ * @return the {@link NormalAnnotationExpr} added
+ */
+ public default NormalAnnotationExpr addAnnotation(Class<? extends Annotation> clazz) {
+ ((Node) this).tryAddImportToParentCompilationUnit(clazz);
+ return addAnnotation(clazz.getSimpleName());
+ }
+
+ /**
+ * Annotates this with a marker annotation
+ *
+ * @param name the name of the annotation
+ * @return this
+ */
+ @SuppressWarnings("unchecked")
+ public default T addMarkerAnnotation(String name) {
+ MarkerAnnotationExpr markerAnnotationExpr = new MarkerAnnotationExpr(
+ name(name));
+ getAnnotations().add(markerAnnotationExpr);
+ markerAnnotationExpr.setParentNode((Node) this);
+ return (T) this;
+ }
+
+ /**
+ * Annotates this with a marker annotation and automatically add the import
+ *
+ * @param clazz the class of the annotation
+ * @return this
+ */
+ public default T addMarkerAnnotation(Class<? extends Annotation> clazz) {
+ ((Node) this).tryAddImportToParentCompilationUnit(clazz);
+ return addMarkerAnnotation(clazz.getSimpleName());
+ }
+
+ /**
+ * Annotates this with a single member annotation
+ *
+ * @param name the name of the annotation
+ * @param value the value, don't forget to add \"\" for a string value
+ * @return this
+ */
+ @SuppressWarnings("unchecked")
+ public default T addSingleMemberAnnotation(String name, String value) {
+ SingleMemberAnnotationExpr singleMemberAnnotationExpr = new SingleMemberAnnotationExpr(
+ name(name), name(value));
+ getAnnotations().add(singleMemberAnnotationExpr);
+ singleMemberAnnotationExpr.setParentNode((Node) this);
+ return (T) this;
+ }
+
+ /**
+ * Annotates this with a single member annotation and automatically add the import
+ *
+ * @param clazz the class of the annotation
+ * @param value the value, don't forget to add \"\" for a string value
+ * @return this
+ */
+ public default T addSingleMemberAnnotation(Class<? extends Annotation> clazz,
+ String value) {
+ ((Node) this).tryAddImportToParentCompilationUnit(clazz);
+ return addSingleMemberAnnotation(clazz.getSimpleName(), value);
+ }
+
+ /**
+ * Check whether an annotation with this name is present on this element
+ *
+ * @param annotationName the name of the annotation
+ * @return true if found, false if not
+ */
+ public default boolean isAnnotationPresent(String annotationName) {
+ return getAnnotations().stream().anyMatch(a -> a.getName().getName().equals(annotationName));
+ }
+
+ /**
+ * Check whether an annotation with this class is present on this element
+ *
+ * @param annotationClass the class of the annotation
+ * @return true if found, false if not
+ */
+ public default boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) {
+ return isAnnotationPresent(annotationClass.getSimpleName());
+ }
+
+ /**
+ * Try to find an annotation by its name
+ *
+ * @param annotationName the name of the annotation
+ * @return null if not found, the annotation otherwise
+ */
+ public default AnnotationExpr getAnnotationByName(String annotationName) {
+ return getAnnotations().stream().filter(a -> a.getName().getName().equals(annotationName)).findFirst()
+ .orElse(null);
+ }
+
+ /**
+ * Try to find an annotation by its class
+ *
+ * @param annotationClass the class of the annotation
+ * @return null if not found, the annotation otherwise
+ */
+ public default AnnotationExpr getAnnotationByClass(Class<? extends Annotation> annotationClass) {
+ return getAnnotationByName(annotationClass.getSimpleName());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithBlockStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithBlockStmt.java
new file mode 100644
index 000000000..381318b66
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithBlockStmt.java
@@ -0,0 +1,18 @@
+package com.github.javaparser.ast.nodeTypes;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.stmt.BlockStmt;
+
+public interface NodeWithBlockStmt<T> {
+ BlockStmt getBody();
+
+ T setBody(BlockStmt block);
+
+ default BlockStmt createBody() {
+ BlockStmt block = new BlockStmt();
+ setBody(block);
+ block.setParentNode((Node) this);
+
+ return block;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithBody.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithBody.java
new file mode 100644
index 000000000..2adfe8664
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithBody.java
@@ -0,0 +1,18 @@
+package com.github.javaparser.ast.nodeTypes;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.Statement;
+
+public interface NodeWithBody<T> {
+ public Statement getBody();
+
+ public T setBody(final Statement body);
+
+ public default BlockStmt createBlockStatementAsBody() {
+ BlockStmt b = new BlockStmt();
+ b.setParentNode((Node) this);
+ setBody(b);
+ return b;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithDeclaration.java
new file mode 100644
index 000000000..875d28de0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithDeclaration.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.nodeTypes;
+
+/**
+ * Element with a declaration representable as a String.
+ *
+ * @author Federico Tomassetti
+ * @since July 2014
+ */
+public interface NodeWithDeclaration {
+
+ /**
+ * As {@link NodeWithDeclaration#getDeclarationAsString(boolean, boolean, boolean)} including
+ * the modifiers, the throws clause and the parameters with both type and name.
+ * @return String representation of declaration
+ */
+ String getDeclarationAsString();
+
+ /**
+ * As {@link NodeWithDeclaration#getDeclarationAsString(boolean, boolean, boolean)} including
+ * the parameters with both type and name.
+ * @param includingModifiers flag to include the modifiers (if present) in the string produced
+ * @param includingThrows flag to include the throws clause (if present) in the string produced
+ * @return String representation of declaration based on parameter flags
+ */
+ String getDeclarationAsString(boolean includingModifiers, boolean includingThrows);
+
+ /**
+ * A simple representation of the element declaration.
+ * It should fit one string.
+ * @param includingModifiers flag to include the modifiers (if present) in the string produced
+ * @param includingThrows flag to include the throws clause (if present) in the string produced
+ * @param includingParameterName flag to include the parameter name (while the parameter type is always included) in the string produced
+ * @return String representation of declaration based on parameter flags
+ */
+ String getDeclarationAsString(boolean includingModifiers, boolean includingThrows, boolean includingParameterName);
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithElementType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithElementType.java
new file mode 100644
index 000000000..21a41bad8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithElementType.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.nodeTypes;
+
+import com.github.javaparser.ast.ArrayBracketPair;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.type.Type;
+
+import java.util.List;
+
+/**
+ * A node having an element type.
+ * In most cases, the element type is simply the type.
+ * In case of arrays, the element type is the type that is inside the deepest nesting:
+ * for int[][][], the element type is int.
+ *
+ * The main reason for this interface is to permit users to manipulate homogeneously all nodes with getElementType/setElementType
+ * methods
+ */
+public interface NodeWithElementType<T> {
+ /**
+ * @return the element type
+ */
+ Type<?> getElementType();
+
+ /**
+ * @param elementType the element elementType
+ * @return this
+ */
+ T setElementType(Type<?> elementType);
+
+ List<ArrayBracketPair> getArrayBracketPairsAfterElementType();
+
+ T setArrayBracketPairsAfterElementType(List<ArrayBracketPair> arrayBracketPairsAfterType);
+
+ /**
+ * Sets this type to this class and try to import it to the {@link CompilationUnit} if needed
+ *
+ * @param typeClass the type
+ * @return this
+ */
+ default T setElementType(Class<?> typeClass) {
+ ((Node) this).tryAddImportToParentCompilationUnit(typeClass);
+ return setElementType(new ClassOrInterfaceType(typeClass.getSimpleName()));
+ }
+
+ default T setElementType(final String type) {
+ ClassOrInterfaceType classOrInterfaceType = new ClassOrInterfaceType(type);
+ return setElementType(classOrInterfaceType);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithExtends.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithExtends.java
new file mode 100644
index 000000000..083fc01b1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithExtends.java
@@ -0,0 +1,37 @@
+package com.github.javaparser.ast.nodeTypes;
+
+import java.util.List;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+
+public interface NodeWithExtends<T> {
+ public List<ClassOrInterfaceType> getExtends();
+
+ public T setExtends(final List<ClassOrInterfaceType> extendsList);
+
+ /**
+ * Add an extends to this and automatically add the import
+ *
+ * @param clazz the class to extand from
+ * @return this
+ */
+ public default T addExtends(Class<?> clazz) {
+ ((Node) this).tryAddImportToParentCompilationUnit(clazz);
+ return addExtends(clazz.getSimpleName());
+ }
+
+ /**
+ * Add an extends to this
+ *
+ * @param name the name of the type to extends from
+ * @return this
+ */
+ @SuppressWarnings("unchecked")
+ public default T addExtends(String name) {
+ ClassOrInterfaceType classOrInterfaceType = new ClassOrInterfaceType(name);
+ getExtends().add(classOrInterfaceType);
+ classOrInterfaceType.setParentNode((Node) this);
+ return (T) this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java
new file mode 100644
index 000000000..3f5192587
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java
@@ -0,0 +1,37 @@
+package com.github.javaparser.ast.nodeTypes;
+
+import java.util.List;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+
+public interface NodeWithImplements<T> {
+ public List<ClassOrInterfaceType> getImplements();
+
+ public T setImplements(List<ClassOrInterfaceType> implementsList);
+
+ /**
+ * Add an implements to this
+ *
+ * @param name the name of the type to extends from
+ * @return this
+ */
+ @SuppressWarnings("unchecked")
+ public default T addImplements(String name) {
+ ClassOrInterfaceType classOrInterfaceType = new ClassOrInterfaceType(name);
+ getImplements().add(classOrInterfaceType);
+ classOrInterfaceType.setParentNode((Node) this);
+ return (T) this;
+ }
+
+ /**
+ * Add an implements to this and automatically add the import
+ *
+ * @param clazz the type to implements from
+ * @return this
+ */
+ public default T addImplements(Class<?> clazz) {
+ ((Node) this).tryAddImportToParentCompilationUnit(clazz);
+ return addImplements(clazz.getSimpleName());
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithJavaDoc.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithJavaDoc.java
new file mode 100644
index 000000000..b00cffa5d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithJavaDoc.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.nodeTypes;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.comments.JavadocComment;
+
+/**
+ * Node which can be documented through a Javadoc comment.
+ */
+public interface NodeWithJavaDoc<T> {
+ /**
+ * Gets the JavaDoc for this node. You can set the JavaDoc by calling setComment with a JavadocComment.
+ *
+ * @return The JavaDoc for this node if it exists, null if it doesn't.
+ */
+ JavadocComment getJavaDoc();
+
+ /**
+ * Use this to store additional information to this node.
+ *
+ * @param comment to be set
+ */
+ @SuppressWarnings("unchecked")
+ public default T setJavaDocComment(String comment) {
+ ((Node) this).setComment(new JavadocComment(comment));
+ return (T) this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithMembers.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithMembers.java
new file mode 100644
index 000000000..827e5edee
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithMembers.java
@@ -0,0 +1,284 @@
+package com.github.javaparser.ast.nodeTypes;
+
+import static com.github.javaparser.ast.type.VoidType.VOID_TYPE;
+import static java.util.Collections.unmodifiableList;
+import static java.util.stream.Collectors.toCollection;
+import static java.util.stream.Collectors.toList;
+import static java.util.stream.Collectors.toSet;
+
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.stream.Stream;
+
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.type.Type;
+
+/**
+ * A node having members.
+ *
+ * The main reason for this interface is to permit users to manipulate homogeneously all nodes with a getMembers
+ * method.
+ *
+ */
+public interface NodeWithMembers<T> {
+ List<BodyDeclaration<?>> getMembers();
+
+ T setMembers(List<BodyDeclaration<?>> members);
+
+ /**
+ * Add a field to this and automatically add the import of the type if needed
+ *
+ * @param typeClass the type of the field
+ * @param name the name of the field
+ * @param modifiers the modifiers like {@link Modifier#PUBLIC}
+ * @return the {@link FieldDeclaration} created
+ */
+ default FieldDeclaration addField(Class<?> typeClass, String name, Modifier... modifiers) {
+ ((Node) this).tryAddImportToParentCompilationUnit(typeClass);
+ return addField(typeClass.getSimpleName(), name, modifiers);
+ }
+
+ /**
+ * Add a field to this
+ *
+ * @param type the type of the field
+ * @param name the name of the field
+ * @param modifiers the modifiers like {@link Modifier#PUBLIC}
+ * @return the {@link FieldDeclaration} created
+ */
+ default FieldDeclaration addField(String type, String name, Modifier... modifiers) {
+ return addField(new ClassOrInterfaceType(type), name, modifiers);
+ }
+
+ /**
+ * Add a field to this
+ *
+ * @param type the type of the field
+ * @param name the name of the field
+ * @param modifiers the modifiers like {@link Modifier#PUBLIC}
+ * @return the {@link FieldDeclaration} created
+ */
+ default FieldDeclaration addField(Type<?> type, String name, Modifier... modifiers) {
+ FieldDeclaration fieldDeclaration = new FieldDeclaration();
+ fieldDeclaration.setParentNode((Node) this);
+ VariableDeclarator variable = new VariableDeclarator(new VariableDeclaratorId(name));
+ fieldDeclaration.getVariables().add(variable);
+ variable.setParentNode(fieldDeclaration);
+ fieldDeclaration.setModifiers(Arrays.stream(modifiers)
+ .collect(toCollection(() -> EnumSet.noneOf(Modifier.class))));
+ variable.setType(type);
+ getMembers().add(fieldDeclaration);
+ return fieldDeclaration;
+ }
+
+ /**
+ * Add a private field to this
+ *
+ * @param typeClass the type of the field
+ * @param name the name of the field
+ * @return the {@link FieldDeclaration} created
+ */
+ default FieldDeclaration addPrivateField(Class<?> typeClass, String name) {
+ return addField(typeClass, name, Modifier.PRIVATE);
+ }
+
+ /**
+ * Add a private field to this and automatically add the import of the type if
+ * needed
+ *
+ * @param type the type of the field
+ * @param name the name of the field
+ * @return the {@link FieldDeclaration} created
+ */
+ default FieldDeclaration addPrivateField(String type, String name) {
+ return addField(type, name, Modifier.PRIVATE);
+ }
+
+ /**
+ * Add a public field to this
+ *
+ * @param typeClass the type of the field
+ * @param name the name of the field
+ * @return the {@link FieldDeclaration} created
+ */
+ default FieldDeclaration addPublicField(Class<?> typeClass, String name) {
+ return addField(typeClass, name, Modifier.PUBLIC);
+ }
+
+ /**
+ * Add a public field to this and automatically add the import of the type if
+ * needed
+ *
+ * @param type the type of the field
+ * @param name the name of the field
+ * @return the {@link FieldDeclaration} created
+ */
+ default FieldDeclaration addPublicField(String type, String name) {
+ return addField(type, name, Modifier.PUBLIC);
+ }
+
+ /**
+ * Add a protected field to this
+ *
+ * @param typeClass the type of the field
+ * @param name the name of the field
+ * @return the {@link FieldDeclaration} created
+ */
+ default FieldDeclaration addProtectedField(Class<?> typeClass, String name) {
+ return addField(typeClass, name, Modifier.PROTECTED);
+ }
+
+ /**
+ * Add a protected field to this and automatically add the import of the type
+ * if needed
+ *
+ * @param type the type of the field
+ * @param name the name of the field
+ * @return the {@link FieldDeclaration} created
+ */
+ default FieldDeclaration addProtectedField(String type, String name) {
+ return addField(type, name, Modifier.PROTECTED);
+ }
+
+ /**
+ * Adds a methods with void return by default to this
+ *
+ * @param methodName the method name
+ * @param modifiers the modifiers like {@link Modifier#PUBLIC}
+ * @return the {@link MethodDeclaration} created
+ */
+ default MethodDeclaration addMethod(String methodName, Modifier... modifiers) {
+ MethodDeclaration methodDeclaration = new MethodDeclaration();
+ methodDeclaration.setName(methodName);
+ methodDeclaration.setType(VOID_TYPE);
+ methodDeclaration.setModifiers(Arrays.stream(modifiers)
+ .collect(toCollection(() -> EnumSet.noneOf(Modifier.class))));
+ getMembers().add(methodDeclaration);
+ methodDeclaration.setParentNode((Node) this);
+ return methodDeclaration;
+ }
+
+ /**
+ * Adds a constructor to this
+ *
+ * @param modifiers the modifiers like {@link Modifier#PUBLIC}
+ * @return the {@link MethodDeclaration} created
+ */
+ default ConstructorDeclaration addCtor(Modifier... modifiers) {
+ ConstructorDeclaration constructorDeclaration = new ConstructorDeclaration();
+ constructorDeclaration.setModifiers(Arrays.stream(modifiers)
+ .collect(toCollection(() -> EnumSet.noneOf(Modifier.class))));
+ constructorDeclaration.setName(((TypeDeclaration<?>) this).getName());
+ getMembers().add(constructorDeclaration);
+ constructorDeclaration.setParentNode((Node) this);
+ return constructorDeclaration;
+ }
+
+ default BlockStmt addInitializer() {
+ BlockStmt block = new BlockStmt();
+ InitializerDeclaration initializerDeclaration = new InitializerDeclaration(false, block);
+ getMembers().add(initializerDeclaration);
+ initializerDeclaration.setParentNode((Node) this);
+ return block;
+ }
+
+ default BlockStmt addStaticInitializer() {
+ BlockStmt block = new BlockStmt();
+ InitializerDeclaration initializerDeclaration = new InitializerDeclaration(true, block);
+ getMembers().add(initializerDeclaration);
+ initializerDeclaration.setParentNode((Node) this);
+ return block;
+ }
+
+ /**
+ * Try to find a {@link MethodDeclaration} by its name
+ *
+ * @param name the name of the method
+ * @return the methods found (multiple in case of polymorphism)
+ */
+ default List<MethodDeclaration> getMethodsByName(String name) {
+ return getMembers().stream()
+ .filter(m -> m instanceof MethodDeclaration && ((MethodDeclaration) m).getName().equals(name))
+ .map(m -> (MethodDeclaration) m).collect(toList());
+ }
+
+ /**
+ * Find all methods in the members of this node.
+ *
+ * @return the methods found. This list is immutable.
+ */
+ default List<MethodDeclaration> getMethods() {
+ return unmodifiableList(getMembers().stream()
+ .filter(m -> m instanceof MethodDeclaration)
+ .map(m -> (MethodDeclaration) m)
+ .collect(toList()));
+ }
+
+ /**
+ * Try to find a {@link MethodDeclaration} by its parameters types
+ *
+ * @param paramTypes the types of parameters like "Map&lt;Integer,String&gt;","int" to match<br>
+ * void foo(Map&lt;Integer,String&gt; myMap,int number)
+ * @return the methods found (multiple in case of polymorphism)
+ */
+ default List<MethodDeclaration> getMethodsByParameterTypes(String... paramTypes) {
+ return getMembers().stream()
+ .filter(m -> m instanceof MethodDeclaration
+ && ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString())
+ .collect(toSet()).equals(Stream.of(paramTypes).collect(toSet())))
+ .map(m -> (MethodDeclaration) m).collect(toList());
+ }
+
+ /**
+ * Try to find a {@link MethodDeclaration} by its parameters types
+ *
+ * @param paramTypes the types of parameters like "Map&lt;Integer,String&gt;","int" to match<br>
+ * void foo(Map&lt;Integer,String&gt; myMap,int number)
+ * @return the methods found (multiple in case of polymorphism)
+ */
+ default List<MethodDeclaration> getMethodsByParameterTypes(Class<?>... paramTypes) {
+ return getMembers().stream()
+ .filter(m -> m instanceof MethodDeclaration
+ && ((MethodDeclaration) m).getParameters().stream().map(p -> p.getType().toString())
+ .collect(toSet())
+ .equals(Stream.of(paramTypes).map(Class::getSimpleName).collect(toSet())))
+ .map(m -> (MethodDeclaration) m).collect(toList());
+ }
+
+ /**
+ * Try to find a {@link FieldDeclaration} by its name
+ *
+ * @param name the name of the field
+ * @return null if not found, the FieldDeclaration otherwise
+ */
+ default FieldDeclaration getFieldByName(String name) {
+ return (FieldDeclaration) getMembers().stream()
+ .filter(m -> m instanceof FieldDeclaration && ((FieldDeclaration) m).getVariables().stream()
+ .anyMatch(var -> var.getId().getName().equals(name)))
+ .findFirst().orElse(null);
+ }
+
+ /**
+ * Find all fields in the members of this node.
+ *
+ * @return the fields found. This list is immutable.
+ */
+ default List<FieldDeclaration> getFields() {
+ return unmodifiableList(getMembers().stream()
+ .filter(m -> m instanceof FieldDeclaration )
+ .map(m -> (FieldDeclaration) m)
+ .collect(toList()));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithModifiers.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithModifiers.java
new file mode 100644
index 000000000..6a1959ecf
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithModifiers.java
@@ -0,0 +1,73 @@
+package com.github.javaparser.ast.nodeTypes;
+
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.stream.Collectors;
+
+import com.github.javaparser.ast.Modifier;
+
+/**
+ * A Node with Modifiers.
+ */
+public interface NodeWithModifiers<T> {
+ /**
+ * Return the modifiers of this variable declaration.
+ *
+ * @see Modifier
+ * @return modifiers
+ */
+ EnumSet<Modifier> getModifiers();
+
+ T setModifiers(EnumSet<Modifier> modifiers);
+
+ @SuppressWarnings("unchecked")
+ default T addModifier(Modifier... modifiers) {
+ getModifiers().addAll(Arrays.stream(modifiers)
+ .collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))));
+ return (T) this;
+ }
+
+ default boolean isStatic() {
+ return getModifiers().contains(Modifier.STATIC);
+ }
+
+ default boolean isAbstract() {
+ return getModifiers().contains(Modifier.ABSTRACT);
+ }
+
+ default boolean isFinal() {
+ return getModifiers().contains(Modifier.FINAL);
+ }
+
+ default boolean isNative() {
+ return getModifiers().contains(Modifier.NATIVE);
+ }
+
+ default boolean isPrivate() {
+ return getModifiers().contains(Modifier.PRIVATE);
+ }
+
+ default boolean isProtected() {
+ return getModifiers().contains(Modifier.PROTECTED);
+ }
+
+ default boolean isPublic() {
+ return getModifiers().contains(Modifier.PUBLIC);
+ }
+
+ default boolean isStrictfp() {
+ return getModifiers().contains(Modifier.STRICTFP);
+ }
+
+ default boolean isSynchronized() {
+ return getModifiers().contains(Modifier.SYNCHRONIZED);
+ }
+
+ default boolean isTransient() {
+ return getModifiers().contains(Modifier.TRANSIENT);
+ }
+
+ default boolean isVolatile() {
+ return getModifiers().contains(Modifier.VOLATILE);
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithName.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithName.java
new file mode 100644
index 000000000..edcff5cff
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithName.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.nodeTypes;
+
+/**
+ * A node having a name.
+ *
+ * The main reason for this interface is to permit users to manipulate homogeneously all nodes with a getName method.
+ *
+ * @since 2.0.1
+ */
+public interface NodeWithName<T> {
+ String getName();
+
+ T setName(String name);
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithParameters.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithParameters.java
new file mode 100644
index 000000000..fb8697f3c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithParameters.java
@@ -0,0 +1,100 @@
+package com.github.javaparser.ast.nodeTypes;
+
+import java.util.List;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.type.Type;
+
+public interface NodeWithParameters<T> {
+ List<Parameter> getParameters();
+
+ T setParameters(List<Parameter> parameters);
+
+ default T addParameter(Type type, String name) {
+ return addParameter(new Parameter(type, new VariableDeclaratorId(name)));
+ }
+
+ default T addParameter(Class<?> paramClass, String name) {
+ ((Node) this).tryAddImportToParentCompilationUnit(paramClass);
+ return addParameter(new ClassOrInterfaceType(paramClass.getSimpleName()), name);
+ }
+
+ /**
+ * Remember to import the class in the compilation unit yourself
+ *
+ * @param className the name of the class, ex : org.test.Foo or Foo if you added manually the import
+ * @param name the name of the parameter
+ */
+ default T addParameter(String className, String name) {
+ return addParameter(new ClassOrInterfaceType(className), name);
+ }
+
+ @SuppressWarnings("unchecked")
+ default T addParameter(Parameter parameter) {
+ getParameters().add(parameter);
+ parameter.setParentNode((Node) this);
+ return (T) this;
+ }
+
+ default Parameter addAndGetParameter(Type type, String name) {
+ return addAndGetParameter(new Parameter(type, new VariableDeclaratorId(name)));
+ }
+
+ default Parameter addAndGetParameter(Class<?> paramClass, String name) {
+ ((Node) this).tryAddImportToParentCompilationUnit(paramClass);
+ return addAndGetParameter(new ClassOrInterfaceType(paramClass.getSimpleName()), name);
+ }
+
+ /**
+ * Remember to import the class in the compilation unit yourself
+ *
+ * @param className the name of the class, ex : org.test.Foo or Foo if you added manually the import
+ * @param name the name of the parameter
+ * @return the {@link Parameter} created
+ */
+ default Parameter addAndGetParameter(String className, String name) {
+ return addAndGetParameter(new ClassOrInterfaceType(className), name);
+ }
+
+ default Parameter addAndGetParameter(Parameter parameter) {
+ getParameters().add(parameter);
+ parameter.setParentNode((Node) this);
+ return parameter;
+ }
+
+ /**
+ * Try to find a {@link Parameter} by its name
+ *
+ * @param name the name of the param
+ * @return null if not found, the param found otherwise
+ */
+ default Parameter getParamByName(String name) {
+ return getParameters().stream()
+ .filter(p -> p.getName().equals(name)).findFirst().orElse(null);
+ }
+
+ /**
+ * Try to find a {@link Parameter} by its type
+ *
+ * @param type the type of the param
+ * @return null if not found, the param found otherwise
+ */
+ default Parameter getParamByType(String type) {
+ return getParameters().stream()
+ .filter(p -> p.getType().toString().equals(type)).findFirst().orElse(null);
+ }
+
+ /**
+ * Try to find a {@link Parameter} by its type
+ *
+ * @param type the type of the param <b>take care about generics, it wont work</b>
+ * @return null if not found, the param found otherwise
+ */
+ default Parameter getParamByType(Class<?> type) {
+ return getParameters().stream()
+ .filter(p -> p.getType().toString().equals(type.getSimpleName())).findFirst().orElse(null);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithStatements.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithStatements.java
new file mode 100644
index 000000000..b6c895efb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithStatements.java
@@ -0,0 +1,46 @@
+package com.github.javaparser.ast.nodeTypes;
+
+import java.util.List;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.Statement;
+
+public interface NodeWithStatements<T> {
+ public List<Statement> getStmts();
+
+ public T setStmts(final List<Statement> stmts);
+
+ @SuppressWarnings("unchecked")
+ public default T addStatement(Statement statement) {
+ getStmts().add(statement);
+ statement.setParentNode((Node) this);
+ return (T) this;
+ }
+
+ @SuppressWarnings("unchecked")
+ public default T addStatement(int index, final Statement statement) {
+ getStmts().add(index, statement);
+ statement.setParentNode((Node) this);
+ return (T) this;
+ }
+
+ public default T addStatement(Expression expr) {
+ ExpressionStmt statement = new ExpressionStmt(expr);
+ expr.setParentNode(statement);
+ return addStatement(statement);
+ }
+
+ public default T addStatement(String statement) {
+ return addStatement(new NameExpr(statement));
+ }
+
+ public default T addStatement(int index, final Expression expr) {
+ Statement stmt = new ExpressionStmt(expr);
+ expr.setParentNode(stmt);
+ return addStatement(index, stmt);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithThrowable.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithThrowable.java
new file mode 100644
index 000000000..beee9e727
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithThrowable.java
@@ -0,0 +1,57 @@
+package com.github.javaparser.ast.nodeTypes;
+
+import java.util.List;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.type.ReferenceType;
+
+public interface NodeWithThrowable<T> {
+ T setThrows(List<ReferenceType> throws_);
+
+ List<ReferenceType> getThrows();
+
+ /**
+ * Adds this type to the throws clause
+ *
+ * @param throwType the exception type
+ * @return this
+ */
+ @SuppressWarnings("unchecked")
+ default T addThrows(ReferenceType throwType) {
+ getThrows().add(throwType);
+ throwType.setParentNode((Node) this);
+ return (T) this;
+ }
+
+ /**
+ * Adds this class to the throws clause
+ *
+ * @param clazz the exception class
+ * @return this
+ */
+ default T addThrows(Class<? extends Throwable> clazz) {
+ ((Node) this).tryAddImportToParentCompilationUnit(clazz);
+ return addThrows(new ClassOrInterfaceType(clazz.getSimpleName()));
+ }
+
+ /**
+ * Check whether this elements throws this exception class
+ *
+ * @param clazz the class of the exception
+ * @return true if found in throws clause, false if not
+ */
+ public default boolean isThrows(Class<? extends Throwable> clazz) {
+ return isThrows(clazz.getSimpleName());
+ }
+
+ /**
+ * Check whether this elements throws this exception class
+ *
+ * @param throwableName the class of the exception
+ * @return true if found in throws clause, false if not
+ */
+ public default boolean isThrows(String throwableName) {
+ return getThrows().stream().anyMatch(t -> t.toString().equals(throwableName));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithType.java
new file mode 100644
index 000000000..fc183b20b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithType.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.nodeTypes;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.type.Type;
+
+/**
+ * A node having a type.
+ *
+ * The main reason for this interface is to permit users to manipulate homogeneously all nodes with getType/setType
+ * methods
+ *
+ * @since 2.3.1
+ */
+public interface NodeWithType<T> {
+ /**
+ * Gets the type
+ *
+ * @return the type
+ */
+ Type<?> getType();
+
+ /**
+ * Sets the type
+ *
+ * @param type the type
+ * @return this
+ */
+ T setType(Type<?> type);
+
+ /**
+ * Sets this type to this class and try to import it to the {@link CompilationUnit} if needed
+ *
+ * @param typeClass the type
+ * @return this
+ */
+ default T setType(Class<?> typeClass) {
+ ((Node) this).tryAddImportToParentCompilationUnit(typeClass);
+ return setType(new ClassOrInterfaceType(typeClass.getSimpleName()));
+ }
+
+ default T setType(final String type) {
+ ClassOrInterfaceType classOrInterfaceType = new ClassOrInterfaceType(type);
+ return setType(classOrInterfaceType);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithTypeArguments.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithTypeArguments.java
new file mode 100644
index 000000000..3ce27971e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithTypeArguments.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.nodeTypes;
+
+import com.github.javaparser.ast.type.Type;
+
+import java.util.*;
+
+import static com.github.javaparser.utils.Utils.arrayToList;
+
+/**
+ * A node that can have type arguments.
+ * <pre>
+ * new X(); --> typeArguments == null
+ * new X&lt;>(); --> typeArguments.types = [], typeArguments.diamondOperator=true
+ * new X&lt;C,D>(); --> typeArguments.types = [C,D], typeArguments.diamondOperator=false
+ * </pre>
+ */
+public interface NodeWithTypeArguments<T> {
+ /**
+ * @return the types that can be found in the type arguments: &lt;String, Integer>.
+ */
+ List<Type<?>> getTypeArguments();
+
+ /**
+ * Allows you to set the generic arguments
+ * @param typeArguments The list of types of the generics
+ */
+ T setTypeArguments(List<Type<?>> typeArguments);
+
+ /**
+ * @return whether the type arguments look like &lt;>.
+ */
+ default boolean isUsingDiamondOperator() {
+ if(getTypeArguments()==null){
+ return false;
+ }
+ return getTypeArguments().isEmpty();
+ }
+
+ /**
+ * Sets the type arguments to &lt>.
+ */
+ default T setDiamondOperator() {
+ final List<Type<?>> empty = new LinkedList<>();
+ setTypeArguments(empty);
+ return (T) this;
+ }
+
+ /**
+ * Removes all type arguments, including the surrounding &lt;>.
+ */
+ default T removeTypeArguments() {
+ setTypeArguments((List<Type<?>>) null);
+ return (T) this;
+ }
+
+ default T setTypeArguments(Type<?>... typeArguments) {
+ setTypeArguments(arrayToList(typeArguments));
+ return (T) this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithVariables.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithVariables.java
new file mode 100644
index 000000000..2c6702ac4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithVariables.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.nodeTypes;
+
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+
+import java.util.List;
+
+/**
+ * A node which has a list of variables.
+ */
+public interface NodeWithVariables<T> {
+ List<VariableDeclarator> getVariables();
+
+ T setVariables(List<VariableDeclarator> variables);
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/AssertStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/AssertStmt.java
new file mode 100644
index 000000000..85a34a847
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/AssertStmt.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AssertStmt extends Statement {
+
+ private Expression check;
+
+ private Expression msg;
+
+ public AssertStmt() {
+ }
+
+ public AssertStmt(final Expression check) {
+ setCheck(check);
+ }
+
+ public AssertStmt(final Expression check, final Expression msg) {
+ setCheck(check);
+ setMessage(msg);
+ }
+
+ public AssertStmt(final Range range, final Expression check, final Expression msg) {
+ super(range);
+
+ setCheck(check);
+ setMessage(msg);
+
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getCheck() {
+ return check;
+ }
+
+ public Expression getMessage() {
+ return msg;
+ }
+
+ public AssertStmt setCheck(final Expression check) {
+ this.check = check;
+ setAsParentNodeOf(this.check);
+ return this;
+ }
+
+ public AssertStmt setMessage(final Expression msg) {
+ this.msg = msg;
+ setAsParentNodeOf(this.msg);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/BlockStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/BlockStmt.java
new file mode 100644
index 000000000..31cbfa391
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/BlockStmt.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+import java.util.List;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithStatements;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BlockStmt extends Statement implements NodeWithStatements<BlockStmt> {
+
+ private List<Statement> stmts;
+
+ public BlockStmt() {
+ }
+
+ public BlockStmt(final List<Statement> stmts) {
+ setStmts(stmts);
+ }
+
+ public BlockStmt(final Range range, final List<Statement> stmts) {
+ super(range);
+ setStmts(stmts);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public List<Statement> getStmts() {
+ stmts = ensureNotNull(stmts);
+ return stmts;
+ }
+
+ @Override
+ public BlockStmt setStmts(final List<Statement> stmts) {
+ this.stmts = stmts;
+ setAsParentNodeOf(this.stmts);
+ return this;
+ }
+
+
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/BreakStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/BreakStmt.java
new file mode 100644
index 000000000..04c39fb9f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/BreakStmt.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BreakStmt extends Statement {
+
+ private String id;
+
+ public BreakStmt() {
+ }
+
+ public BreakStmt(final String id) {
+ this.id = id;
+ }
+
+ public BreakStmt(final Range range, final String id) {
+ super(range);
+ this.id = id;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public BreakStmt setId(final String id) {
+ this.id = id;
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/CatchClause.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/CatchClause.java
new file mode 100644
index 000000000..a1f300544
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/CatchClause.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Modifier;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt;
+import com.github.javaparser.ast.type.ReferenceType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.EnumSet;
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class CatchClause extends Node implements NodeWithBlockStmt<CatchClause> {
+
+ private Parameter param;
+
+ private BlockStmt catchBlock;
+
+ public CatchClause() {
+ }
+
+ public CatchClause(final Parameter param, final BlockStmt catchBlock) {
+ setParam(param);
+ setBody(catchBlock);
+ }
+
+ public CatchClause(final Range range,
+ final EnumSet<Modifier> exceptModifier,
+ final List<AnnotationExpr> exceptAnnotations,
+ final Type exceptType,
+ final VariableDeclaratorId exceptId,
+ final BlockStmt catchBlock) {
+ super(range);
+ setParam(new Parameter(range, exceptModifier, exceptAnnotations, exceptType, null, false, exceptId));
+ setBody(catchBlock);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Use {@link #getBody()} instead
+ */
+ @Deprecated
+ public BlockStmt getCatchBlock() {
+ return catchBlock;
+ }
+
+ /**
+ * Note that the type of the Parameter can be a UnionType. In this case, any annotations found at the start of the catch(@X A a |...)
+ * are found directly in the Parameter. Annotations that are on the second or later type - catch(A a | @X B b ...) are found on those types.
+ */
+ public Parameter getParam() {
+ return param;
+ }
+
+ /**
+ * Use {@link #setBody(BlockStmt)} instead
+ *
+ * @param catchBlock
+ */
+ @Deprecated
+ public CatchClause setCatchBlock(final BlockStmt catchBlock) {
+ this.catchBlock = catchBlock;
+ setAsParentNodeOf(this.catchBlock);
+ return this;
+ }
+
+ public CatchClause setParam(final Parameter param) {
+ this.param = param;
+ setAsParentNodeOf(this.param);
+ return this;
+ }
+
+ @Override
+ public BlockStmt getBody() {
+ return catchBlock;
+ }
+
+ @Override
+ public CatchClause setBody(BlockStmt block) {
+ this.catchBlock = block;
+ setAsParentNodeOf(this.catchBlock);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ContinueStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ContinueStmt.java
new file mode 100644
index 000000000..4ba7faa7b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ContinueStmt.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ContinueStmt extends Statement {
+
+ private String id;
+
+ public ContinueStmt() {
+ }
+
+ public ContinueStmt(final String id) {
+ this.id = id;
+ }
+
+ public ContinueStmt(Range range, final String id) {
+ super(range);
+ this.id = id;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public ContinueStmt setId(final String id) {
+ this.id = id;
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/DoStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/DoStmt.java
new file mode 100644
index 000000000..8f293ecab
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/DoStmt.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.nodeTypes.NodeWithBody;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class DoStmt extends Statement implements NodeWithBody<DoStmt> {
+
+ private Statement body;
+
+ private Expression condition;
+
+ public DoStmt() {
+ }
+
+ public DoStmt(final Statement body, final Expression condition) {
+ setBody(body);
+ setCondition(condition);
+ }
+
+ public DoStmt(Range range, final Statement body, final Expression condition) {
+ super(range);
+ setBody(body);
+ setCondition(condition);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ @Override
+ public DoStmt setBody(final Statement body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ return this;
+ }
+
+ public DoStmt setCondition(final Expression condition) {
+ this.condition = condition;
+ setAsParentNodeOf(this.condition);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/EmptyStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/EmptyStmt.java
new file mode 100644
index 000000000..00709806d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/EmptyStmt.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EmptyStmt extends Statement {
+
+ public EmptyStmt() {
+ }
+
+ public EmptyStmt(Range range) {
+ super(range);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java
new file mode 100644
index 000000000..e29205b84
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ExplicitConstructorInvocationStmt extends Statement implements NodeWithTypeArguments<ExplicitConstructorInvocationStmt> {
+
+ private List<Type<?>> typeArguments;
+
+ private boolean isThis;
+
+ private Expression expr;
+
+ private List<Expression> args;
+
+ public ExplicitConstructorInvocationStmt() {
+ }
+
+ public ExplicitConstructorInvocationStmt(final boolean isThis,
+ final Expression expr, final List<Expression> args) {
+ setThis(isThis);
+ setExpr(expr);
+ setArgs(args);
+ }
+
+ public ExplicitConstructorInvocationStmt(Range range,
+ final List<Type<?>> typeArguments, final boolean isThis,
+ final Expression expr, final List<Expression> args) {
+ super(range);
+ setTypeArguments(typeArguments);
+ setThis(isThis);
+ setExpr(expr);
+ setArgs(args);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getArgs() {
+ args = ensureNotNull(args);
+ return args;
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public boolean isThis() {
+ return isThis;
+ }
+
+ public ExplicitConstructorInvocationStmt setArgs(final List<Expression> args) {
+ this.args = args;
+ setAsParentNodeOf(this.args);
+ return this;
+ }
+
+ public ExplicitConstructorInvocationStmt setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ return this;
+ }
+
+ public ExplicitConstructorInvocationStmt setThis(final boolean isThis) {
+ this.isThis = isThis;
+ return this;
+ }
+
+ @Override
+ public List<Type<?>> getTypeArguments() {
+ return typeArguments;
+ }
+
+ @Override
+ public ExplicitConstructorInvocationStmt setTypeArguments(final List<Type<?>> types) {
+ this.typeArguments = types;
+ setAsParentNodeOf(this.typeArguments);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ExpressionStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ExpressionStmt.java
new file mode 100644
index 000000000..72d8a2e94
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ExpressionStmt.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ExpressionStmt extends Statement {
+
+ private Expression expr;
+
+ public ExpressionStmt() {
+ }
+
+ public ExpressionStmt(final Expression expr) {
+ setExpression(expr);
+ }
+
+ public ExpressionStmt(Range range,
+ final Expression expr) {
+ super(range);
+ setExpression(expr);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpression() {
+ return expr;
+ }
+
+ public ExpressionStmt setExpression(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ForStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ForStmt.java
new file mode 100644
index 000000000..52baddb7b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ForStmt.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.nodeTypes.NodeWithBody;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ForStmt extends Statement implements NodeWithBody<ForStmt> {
+
+ private List<Expression> init;
+
+ private Expression compare;
+
+ private List<Expression> update;
+
+ private Statement body;
+
+ public ForStmt() {
+ }
+
+ public ForStmt(final List<Expression> init, final Expression compare,
+ final List<Expression> update, final Statement body) {
+ setCompare(compare);
+ setInit(init);
+ setUpdate(update);
+ setBody(body);
+ }
+
+ public ForStmt(Range range,
+ final List<Expression> init, final Expression compare,
+ final List<Expression> update, final Statement body) {
+ super(range);
+ setCompare(compare);
+ setInit(init);
+ setUpdate(update);
+ setBody(body);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getCompare() {
+ return compare;
+ }
+
+ public List<Expression> getInit() {
+ init = ensureNotNull(init);
+ return init;
+ }
+
+ public List<Expression> getUpdate() {
+ update = ensureNotNull(update);
+ return update;
+ }
+
+ @Override
+ public ForStmt setBody(final Statement body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ return this;
+ }
+
+ public ForStmt setCompare(final Expression compare) {
+ this.compare = compare;
+ setAsParentNodeOf(this.compare);
+ return this;
+ }
+
+ public ForStmt setInit(final List<Expression> init) {
+ this.init = init;
+ setAsParentNodeOf(this.init);
+ return this;
+ }
+
+ public ForStmt setUpdate(final List<Expression> update) {
+ this.update = update;
+ setAsParentNodeOf(this.update);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ForeachStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ForeachStmt.java
new file mode 100644
index 000000000..3a94572b0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ForeachStmt.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.expr.VariableDeclarationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithBody;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ForeachStmt extends Statement implements NodeWithBody<ForeachStmt> {
+
+ private VariableDeclarationExpr var;
+
+ private Expression iterable;
+
+ private Statement body;
+
+ public ForeachStmt() {
+ }
+
+ public ForeachStmt(final VariableDeclarationExpr var,
+ final Expression iterable, final Statement body) {
+ setVariable(var);
+ setIterable(iterable);
+ setBody(body);
+ }
+
+ public ForeachStmt(Range range,
+ final VariableDeclarationExpr var, final Expression iterable,
+ final Statement body) {
+ super(range);
+ setVariable(var);
+ setIterable(iterable);
+ setBody(body);
+ }
+
+ /**
+ * Will create a {@link NameExpr} with the iterable param
+ *
+ * @param var
+ * @param iterable
+ * @param body
+ */
+ public ForeachStmt(VariableDeclarationExpr var, String iterable, BlockStmt body) {
+ setVariable(var);
+ setIterable(new NameExpr(iterable));
+ setBody(body);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getIterable() {
+ return iterable;
+ }
+
+ public VariableDeclarationExpr getVariable() {
+ return var;
+ }
+
+ @Override
+ public ForeachStmt setBody(final Statement body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ return this;
+ }
+
+ public ForeachStmt setIterable(final Expression iterable) {
+ this.iterable = iterable;
+ setAsParentNodeOf(this.iterable);
+ return this;
+ }
+
+ public ForeachStmt setVariable(final VariableDeclarationExpr var) {
+ this.var = var;
+ setAsParentNodeOf(this.var);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/IfStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/IfStmt.java
new file mode 100644
index 000000000..ace3ec8a5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/IfStmt.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class IfStmt extends Statement {
+
+ private Expression condition;
+
+ private Statement thenStmt;
+
+ private Statement elseStmt;
+
+ public IfStmt() {
+ }
+
+ public IfStmt(final Expression condition, final Statement thenStmt, final Statement elseStmt) {
+ setCondition(condition);
+ setThenStmt(thenStmt);
+ setElseStmt(elseStmt);
+ }
+
+ public IfStmt(Range range,
+ final Expression condition, final Statement thenStmt, final Statement elseStmt) {
+ super(range);
+ setCondition(condition);
+ setThenStmt(thenStmt);
+ setElseStmt(elseStmt);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ public Statement getElseStmt() {
+ return elseStmt;
+ }
+
+ public Statement getThenStmt() {
+ return thenStmt;
+ }
+
+ public IfStmt setCondition(final Expression condition) {
+ this.condition = condition;
+ setAsParentNodeOf(this.condition);
+ return this;
+ }
+
+ public IfStmt setElseStmt(final Statement elseStmt) {
+ this.elseStmt = elseStmt;
+ setAsParentNodeOf(this.elseStmt);
+ return this;
+ }
+
+ public IfStmt setThenStmt(final Statement thenStmt) {
+ this.thenStmt = thenStmt;
+ setAsParentNodeOf(this.thenStmt);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/LabeledStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/LabeledStmt.java
new file mode 100644
index 000000000..ded1ad8d8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/LabeledStmt.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class LabeledStmt extends Statement {
+
+ private String label;
+
+ private Statement stmt;
+
+ public LabeledStmt() {
+ }
+
+ public LabeledStmt(final String label, final Statement stmt) {
+ setLabel(label);
+ setStmt(stmt);
+ }
+
+ public LabeledStmt(Range range, final String label, final Statement stmt) {
+ super(range);
+ setLabel(label);
+ setStmt(stmt);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public Statement getStmt() {
+ return stmt;
+ }
+
+ public LabeledStmt setLabel(final String label) {
+ this.label = label;
+ return this;
+ }
+
+ public LabeledStmt setStmt(final Statement stmt) {
+ this.stmt = stmt;
+ setAsParentNodeOf(this.stmt);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ReturnStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ReturnStmt.java
new file mode 100644
index 000000000..6ce31d0bf
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ReturnStmt.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ReturnStmt extends Statement {
+
+ private Expression expr;
+
+ public ReturnStmt() {
+ }
+
+ public ReturnStmt(final Expression expr) {
+ setExpr(expr);
+ }
+
+ public ReturnStmt(Range range, final Expression expr) {
+ super(range);
+ setExpr(expr);
+ }
+
+ /**
+ * Will create a NameExpr with the string param
+ *
+ * @param expr
+ */
+ public ReturnStmt(String expr) {
+ setExpr(new NameExpr(expr));
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public ReturnStmt setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/Statement.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/Statement.java
new file mode 100644
index 000000000..eacfcc416
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/Statement.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Node;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Statement extends Node {
+
+ public Statement() {
+ }
+
+ public Statement(final Range range) {
+ super(range);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SwitchEntryStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SwitchEntryStmt.java
new file mode 100644
index 000000000..e17e20e94
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SwitchEntryStmt.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.nodeTypes.NodeWithStatements;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SwitchEntryStmt extends Statement implements NodeWithStatements<SwitchEntryStmt> {
+
+ private Expression label;
+
+ private List<Statement> stmts;
+
+ public SwitchEntryStmt() {
+ }
+
+ public SwitchEntryStmt(final Expression label, final List<Statement> stmts) {
+ setLabel(label);
+ setStmts(stmts);
+ }
+
+ public SwitchEntryStmt(Range range, final Expression label,
+ final List<Statement> stmts) {
+ super(range);
+ setLabel(label);
+ setStmts(stmts);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getLabel() {
+ return label;
+ }
+
+ @Override
+ public List<Statement> getStmts() {
+ stmts = ensureNotNull(stmts);
+ return stmts;
+ }
+
+ public SwitchEntryStmt setLabel(final Expression label) {
+ this.label = label;
+ setAsParentNodeOf(this.label);
+ return this;
+ }
+
+ @Override
+ public SwitchEntryStmt setStmts(final List<Statement> stmts) {
+ this.stmts = stmts;
+ setAsParentNodeOf(this.stmts);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SwitchStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SwitchStmt.java
new file mode 100644
index 000000000..c909394b2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SwitchStmt.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.*;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SwitchStmt extends Statement {
+
+ private Expression selector;
+
+ private List<SwitchEntryStmt> entries;
+
+ public SwitchStmt() {
+ }
+
+ public SwitchStmt(final Expression selector,
+ final List<SwitchEntryStmt> entries) {
+ setSelector(selector);
+ setEntries(entries);
+ }
+
+ public SwitchStmt(Range range, final Expression selector,
+ final List<SwitchEntryStmt> entries) {
+ super(range);
+ setSelector(selector);
+ setEntries(entries);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<SwitchEntryStmt> getEntries() {
+ entries = ensureNotNull(entries);
+ return entries;
+ }
+
+ public Expression getSelector() {
+ return selector;
+ }
+
+ public SwitchStmt setEntries(final List<SwitchEntryStmt> entries) {
+ this.entries = entries;
+ setAsParentNodeOf(this.entries);
+ return this;
+ }
+
+ public SwitchStmt setSelector(final Expression selector) {
+ this.selector = selector;
+ setAsParentNodeOf(this.selector);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SynchronizedStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SynchronizedStmt.java
new file mode 100644
index 000000000..1a9d2db5d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/SynchronizedStmt.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SynchronizedStmt extends Statement implements NodeWithBlockStmt<SynchronizedStmt> {
+
+ private Expression expr;
+
+ private BlockStmt block;
+
+ public SynchronizedStmt() {
+ }
+
+ public SynchronizedStmt(final Expression expr, final BlockStmt block) {
+ setExpr(expr);
+ setBlock(block);
+ }
+
+ public SynchronizedStmt(Range range, final Expression expr,
+ final BlockStmt block) {
+ super(range);
+ setExpr(expr);
+ setBlock(block);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * @deprecated use {@link #getBody()}
+ * @return
+ */
+ @Deprecated
+ public BlockStmt getBlock() {
+ return block;
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ /**
+ * @deprecated Use {@link #setBody(BlockStmt)} instead
+ * @param block
+ */
+ @Deprecated
+ public SynchronizedStmt setBlock(final BlockStmt block) {
+ this.block = block;
+ setAsParentNodeOf(this.block);
+ return this;
+ }
+
+ public SynchronizedStmt setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ return this;
+ }
+
+ @Override
+ public BlockStmt getBody() {
+ return block;
+ }
+
+ @Override
+ public SynchronizedStmt setBody(BlockStmt block) {
+ this.block = block;
+ setAsParentNodeOf(this.block);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ThrowStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ThrowStmt.java
new file mode 100644
index 000000000..180fdd04c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/ThrowStmt.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ThrowStmt extends Statement {
+
+ private Expression expr;
+
+ public ThrowStmt() {
+ }
+
+ public ThrowStmt(final Expression expr) {
+ setExpr(expr);
+ }
+
+ public ThrowStmt(Range range, final Expression expr) {
+ super(range);
+ setExpr(expr);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public ThrowStmt setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/TryStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/TryStmt.java
new file mode 100644
index 000000000..4688454b4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/TryStmt.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+import com.github.javaparser.ast.expr.VariableDeclarationExpr;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.*;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class TryStmt extends Statement {
+
+ private List<VariableDeclarationExpr> resources;
+
+ private BlockStmt tryBlock;
+
+ private List<CatchClause> catchs;
+
+ private BlockStmt finallyBlock;
+
+ public TryStmt() {
+ }
+
+ public TryStmt(final BlockStmt tryBlock, final List<CatchClause> catchs,
+ final BlockStmt finallyBlock) {
+ setTryBlock(tryBlock);
+ setCatchs(catchs);
+ setFinallyBlock(finallyBlock);
+ }
+
+ public TryStmt(Range range, List<VariableDeclarationExpr> resources,
+ final BlockStmt tryBlock, final List<CatchClause> catchs, final BlockStmt finallyBlock) {
+ super(range);
+ setResources(resources);
+ setTryBlock(tryBlock);
+ setCatchs(catchs);
+ setFinallyBlock(finallyBlock);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<CatchClause> getCatchs() {
+ catchs = ensureNotNull(catchs);
+ return catchs;
+ }
+
+ public BlockStmt getFinallyBlock() {
+ return finallyBlock;
+ }
+
+ public BlockStmt getTryBlock() {
+ return tryBlock;
+ }
+
+ public List<VariableDeclarationExpr> getResources() {
+ resources = ensureNotNull(resources);
+ return resources;
+ }
+
+ public TryStmt setCatchs(final List<CatchClause> catchs) {
+ this.catchs = catchs;
+ setAsParentNodeOf(this.catchs);
+ return this;
+ }
+
+ public TryStmt setFinallyBlock(final BlockStmt finallyBlock) {
+ this.finallyBlock = finallyBlock;
+ setAsParentNodeOf(this.finallyBlock);
+ return this;
+ }
+
+ public TryStmt setTryBlock(final BlockStmt tryBlock) {
+ this.tryBlock = tryBlock;
+ setAsParentNodeOf(this.tryBlock);
+ return this;
+ }
+
+ public TryStmt setResources(List<VariableDeclarationExpr> resources) {
+ this.resources = resources;
+ setAsParentNodeOf(this.resources);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/TypeDeclarationStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/TypeDeclarationStmt.java
new file mode 100644
index 000000000..a9f83bf78
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/TypeDeclarationStmt.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class TypeDeclarationStmt extends Statement {
+
+ private TypeDeclaration typeDecl;
+
+ public TypeDeclarationStmt() {
+ }
+
+ public TypeDeclarationStmt(final TypeDeclaration typeDecl) {
+ setTypeDeclaration(typeDecl);
+ }
+
+ public TypeDeclarationStmt(Range range, final TypeDeclaration typeDecl) {
+ super(range);
+ setTypeDeclaration(typeDecl);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public TypeDeclaration getTypeDeclaration() {
+ return typeDecl;
+ }
+
+ public TypeDeclarationStmt setTypeDeclaration(final TypeDeclaration typeDecl) {
+ this.typeDecl = typeDecl;
+ setAsParentNodeOf(this.typeDecl);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/WhileStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/WhileStmt.java
new file mode 100644
index 000000000..b843494a4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/stmt/WhileStmt.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.nodeTypes.NodeWithBody;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class WhileStmt extends Statement implements NodeWithBody<WhileStmt> {
+
+ private Expression condition;
+
+ private Statement body;
+
+ public WhileStmt() {
+ }
+
+ public WhileStmt(final Expression condition, final Statement body) {
+ setCondition(condition);
+ setBody(body);
+ }
+
+ public WhileStmt(Range range, final Expression condition, final Statement body) {
+ super(range);
+ setCondition(condition);
+ setBody(body);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ @Override
+ public WhileStmt setBody(final Statement body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ return this;
+ }
+
+ public WhileStmt setCondition(final Expression condition) {
+ this.condition = condition;
+ setAsParentNodeOf(this.condition);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ArrayType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ArrayType.java
new file mode 100644
index 000000000..babf2a5d7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ArrayType.java
@@ -0,0 +1,86 @@
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.ArrayBracketPair;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+import com.github.javaparser.utils.Pair;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * To indicate that a type is an array, it gets wrapped in an ArrayType for every array level it has.
+ * So, int[][] becomes ArrayType(ArrayType(int)).
+ */
+public class ArrayType extends ReferenceType<ArrayType> implements NodeWithAnnotations<ArrayType> {
+ private Type componentType;
+
+ public ArrayType(Type componentType, List<AnnotationExpr> annotations) {
+ setComponentType(componentType);
+ setAnnotations(annotations);
+ }
+
+ public ArrayType(Range range, Type componentType, List<AnnotationExpr> annotations) {
+ super(range);
+ setComponentType(componentType);
+ setAnnotations(annotations);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Type getComponentType() {
+ return componentType;
+ }
+
+ public ArrayType setComponentType(final Type type) {
+ this.componentType = type;
+ setAsParentNodeOf(this.componentType);
+ return this;
+ }
+
+ /**
+ * Takes lists of arrayBracketPairs, assumes the lists are ordered left to right and the pairs are ordered left to right, mirroring the actual code.
+ * The type gets wrapped in ArrayTypes so that the outermost ArrayType corresponds to the rightmost ArrayBracketPair.
+ */
+ @SafeVarargs
+ public static Type wrapInArrayTypes(Type type, List<ArrayBracketPair>... arrayBracketPairLists) {
+ for (int i = arrayBracketPairLists.length - 1; i >= 0; i--) {
+ final List<ArrayBracketPair> arrayBracketPairList = arrayBracketPairLists[i];
+ if (arrayBracketPairList != null) {
+ for (int j = arrayBracketPairList.size() - 1; j >= 0; j--) {
+ type = new ArrayType(type, arrayBracketPairList.get(j).getAnnotations());
+ }
+ }
+ }
+ return type;
+ }
+
+ /**
+ * Takes a type that may be an ArrayType. Unwraps ArrayTypes until the element type is found.
+ *
+ * @return a pair of the element type, and the unwrapped ArrayTypes, if any.
+ */
+ public static Pair<Type, List<ArrayBracketPair>> unwrapArrayTypes(Type type) {
+ final List<ArrayBracketPair> arrayBracketPairs = new ArrayList<>();
+ while (type instanceof ArrayType) {
+ ArrayType arrayType = (ArrayType) type;
+ arrayBracketPairs.add(new ArrayBracketPair(Range.UNKNOWN, arrayType.getAnnotations()));
+ type = arrayType.getComponentType();
+ }
+ return new Pair<>(type, arrayBracketPairs);
+ }
+
+ public static ArrayType arrayOf(Type type, AnnotationExpr... annotations) {
+ return new ArrayType(type, Arrays.asList(annotations));
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ClassOrInterfaceType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ClassOrInterfaceType.java
new file mode 100644
index 000000000..ac308940d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ClassOrInterfaceType.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.nodeTypes.NodeWithName;
+import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ClassOrInterfaceType extends ReferenceType<ClassOrInterfaceType> implements
+ NodeWithName<ClassOrInterfaceType>,
+ NodeWithAnnotations<ClassOrInterfaceType>,
+ NodeWithTypeArguments<ClassOrInterfaceType> {
+
+ private ClassOrInterfaceType scope;
+
+ private String name;
+
+ private List<Type<?>> typeArguments;
+
+ public ClassOrInterfaceType() {
+ }
+
+ public ClassOrInterfaceType(final String name) {
+ setName(name);
+ }
+
+ public ClassOrInterfaceType(final ClassOrInterfaceType scope, final String name) {
+ setScope(scope);
+ setName(name);
+ }
+
+ public ClassOrInterfaceType(final Range range, final ClassOrInterfaceType scope, final String name, final List<Type<?>> typeArguments) {
+ super(range);
+ setScope(scope);
+ setName(name);
+ setTypeArguments(typeArguments);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ public ClassOrInterfaceType getScope() {
+ return scope;
+ }
+
+ public boolean isBoxedType() {
+ return PrimitiveType.unboxMap.containsKey(name);
+ }
+
+ public PrimitiveType toUnboxedType() throws UnsupportedOperationException {
+ if (!isBoxedType()) {
+ throw new UnsupportedOperationException(name + " isn't a boxed type.");
+ }
+ return new PrimitiveType(PrimitiveType.unboxMap.get(name));
+ }
+
+ @Override
+ public ClassOrInterfaceType setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public ClassOrInterfaceType setScope(final ClassOrInterfaceType scope) {
+ this.scope = scope;
+ setAsParentNodeOf(this.scope);
+ return this;
+ }
+
+ @Override
+ public List<Type<?>> getTypeArguments() {
+ return typeArguments;
+ }
+
+ @Override
+ public ClassOrInterfaceType setTypeArguments(final List<Type<?>> types) {
+ this.typeArguments = types;
+ setAsParentNodeOf(this.typeArguments);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/IntersectionType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/IntersectionType.java
new file mode 100644
index 000000000..029d46537
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/IntersectionType.java
@@ -0,0 +1,60 @@
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * Represents a set of types. A given value of this type has to be assignable to at all of the element types.
+ * As of Java 8 it is used in casts or while expressing bounds for generic types.
+ *
+ * For example:
+ * public class A&gt;T extends Serializable &amp; Cloneable&lt; { }
+ *
+ * Or:
+ * void foo((Serializable &amp; Cloneable)myObject);
+ *
+ * @since 3.0.0
+ */
+public class IntersectionType extends Type<IntersectionType> implements NodeWithAnnotations<IntersectionType> {
+
+ private List<ReferenceType> elements;
+
+ public IntersectionType(Range range, List<ReferenceType> elements) {
+ super(range);
+ setElements(elements);
+ }
+
+ public IntersectionType(List<ReferenceType> elements) {
+ super();
+ setElements(elements);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<ReferenceType> getElements() {
+ return elements;
+ }
+
+ public IntersectionType setElements(List<ReferenceType> elements) {
+ if (this.elements != null) {
+ for (ReferenceType element : elements){
+ element.setParentNode(null);
+ }
+ }
+ this.elements = elements;
+ setAsParentNodeOf(this.elements);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/PrimitiveType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/PrimitiveType.java
new file mode 100644
index 000000000..29299a425
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/PrimitiveType.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+import java.util.HashMap;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class PrimitiveType extends Type<PrimitiveType> implements NodeWithAnnotations<PrimitiveType> {
+
+ public static final PrimitiveType BYTE_TYPE = new PrimitiveType(Primitive.Byte);
+
+ public static final PrimitiveType SHORT_TYPE = new PrimitiveType(Primitive.Short);
+
+ public static final PrimitiveType INT_TYPE = new PrimitiveType(Primitive.Int);
+
+ public static final PrimitiveType LONG_TYPE = new PrimitiveType(Primitive.Long);
+
+ public static final PrimitiveType FLOAT_TYPE = new PrimitiveType(Primitive.Float);
+
+ public static final PrimitiveType DOUBLE_TYPE = new PrimitiveType(Primitive.Double);
+
+ public static final PrimitiveType BOOLEAN_TYPE = new PrimitiveType(Primitive.Boolean);
+
+ public static final PrimitiveType CHAR_TYPE = new PrimitiveType(Primitive.Char);
+
+ public enum Primitive {
+ Boolean ("Boolean"),
+ Char ("Character"),
+ Byte ("Byte"),
+ Short ("Short"),
+ Int ("Integer"),
+ Long ("Long"),
+ Float ("Float"),
+ Double ("Double");
+
+ final String nameOfBoxedType;
+
+ public ClassOrInterfaceType toBoxedType() {
+ return new ClassOrInterfaceType(nameOfBoxedType);
+ }
+
+ Primitive(String nameOfBoxedType) {
+ this.nameOfBoxedType = nameOfBoxedType;
+ }
+ }
+
+ static final HashMap<String, Primitive> unboxMap = new HashMap<>();
+ static {
+ for(Primitive unboxedType : Primitive.values()) {
+ unboxMap.put(unboxedType.nameOfBoxedType, unboxedType);
+ }
+ }
+
+ private Primitive type;
+
+ public PrimitiveType() {
+ }
+
+ public PrimitiveType(final Primitive type) {
+ this.type = type;
+ }
+
+ public PrimitiveType(Range range, final Primitive type) {
+ super(range);
+ setType(type);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Primitive getType() {
+ return type;
+ }
+
+ public ClassOrInterfaceType toBoxedType() {
+ return type.toBoxedType();
+ }
+
+ public PrimitiveType setType(final Primitive type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ReferenceType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ReferenceType.java
new file mode 100644
index 000000000..1a4666b4f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/ReferenceType.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class ReferenceType<T extends ReferenceType> extends Type<T> {
+
+ public ReferenceType() {
+ }
+
+ public ReferenceType(final Range range) {
+ super(range);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/Type.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/Type.java
new file mode 100644
index 000000000..6c043557a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/Type.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.*;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Type<T extends Type> extends Node {
+
+ private List<AnnotationExpr> annotations;
+
+ public Type() {
+ }
+
+ public Type(List<AnnotationExpr> annotation){
+ this.annotations = annotation;
+ }
+
+ public Type(Range range) {
+ super(range);
+ }
+
+ public Type(Range range, List<AnnotationExpr> annotations) {
+ super(range);
+ setAnnotations(annotations);
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ annotations = ensureNotNull(annotations);
+ return annotations;
+ }
+
+ public T setAnnotations(List<AnnotationExpr> annotations) {
+ setAsParentNodeOf(annotations);
+ this.annotations = annotations;
+ return (T) this;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/TypeParameter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/TypeParameter.java
new file mode 100644
index 000000000..bfec9c936
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/TypeParameter.java
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithName;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * <p>
+ * This class represents the declaration of a generics argument.
+ * </p>
+ * The TypeParameter is constructed following the syntax:<br>
+ * <pre>
+ * {@code
+ * TypeParameter ::= <IDENTIFIER> ( "extends" }{@link ClassOrInterfaceType}{@code ( "&" }{@link ClassOrInterfaceType}{@code )* )?
+ * }
+ * </pre>
+ * @author Julio Vilmar Gesser
+ */
+public final class TypeParameter extends ReferenceType<TypeParameter> implements NodeWithName<TypeParameter> {
+
+ private String name;
+
+ private List<AnnotationExpr> annotations;
+
+ private List<ClassOrInterfaceType> typeBound;
+
+ public TypeParameter() {
+ }
+
+ public TypeParameter(final String name, final List<ClassOrInterfaceType> typeBound) {
+ setName(name);
+ setTypeBound(typeBound);
+ }
+
+ public TypeParameter(Range range, final String name, final List<ClassOrInterfaceType> typeBound) {
+ super(range);
+ setName(name);
+ setTypeBound(typeBound);
+ }
+
+ public TypeParameter(Range range, String name, List<ClassOrInterfaceType> typeBound, List<AnnotationExpr> annotations) {
+ this(range, name, typeBound);
+ setTypeBound(typeBound);
+ setAnnotations(annotations);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return the name of the paramenter.
+ *
+ * @return the name of the paramenter
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Return the list of {@link ClassOrInterfaceType} that this parameter
+ * extends. Return <code>null</code> null if there are no type.
+ *
+ * @return list of types that this paramente extends or <code>null</code>
+ */
+ public List<ClassOrInterfaceType> getTypeBound() {
+ typeBound = ensureNotNull(typeBound);
+ return typeBound;
+ }
+
+ /**
+ * Sets the name of this type parameter.
+ *
+ * @param name
+ * the name to set
+ */
+ @Override
+ public TypeParameter setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Sets the list o types.
+ *
+ * @param typeBound
+ * the typeBound to set
+ */
+ public TypeParameter setTypeBound(final List<ClassOrInterfaceType> typeBound) {
+ this.typeBound = typeBound;
+ setAsParentNodeOf(typeBound);
+ return this;
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ annotations = ensureNotNull(annotations);
+ return annotations;
+ }
+
+ public TypeParameter setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ setAsParentNodeOf(this.annotations);
+ return this;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/UnionType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/UnionType.java
new file mode 100644
index 000000000..74894af0f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/UnionType.java
@@ -0,0 +1,52 @@
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * Represents a set of types. A given value of this type has to be assignable to at least one of the element types.
+ * As of Java 8 it is only used in catch clauses.
+ */
+public class UnionType extends Type<UnionType> implements NodeWithAnnotations<UnionType> {
+
+ private List<ReferenceType> elements;
+
+ public UnionType(Range range, List<ReferenceType> elements) {
+ super(range);
+ setElements(elements);
+ }
+
+ public UnionType(List<ReferenceType> elements) {
+ super();
+ setElements(elements);
+ }
+
+ public List<ReferenceType> getElements() {
+ return elements;
+ }
+
+ public UnionType setElements(List<ReferenceType> elements) {
+ if (this.elements != null) {
+ for (ReferenceType element : elements){
+ element.setParentNode(null);
+ }
+ }
+ this.elements = elements;
+ setAsParentNodeOf(this.elements);
+ return this;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/UnknownType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/UnknownType.java
new file mode 100644
index 000000000..b76c5962c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/UnknownType.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * An unknown parameter type object. It plays the role of a null object for
+ * lambda parameters that have no explicit type declared. As such, it has no
+ * lexical representation and hence gets no comment attributed.
+ *
+ * @author Didier Villevalois
+ */
+public final class UnknownType extends Type<UnknownType> {
+
+ public UnknownType() {
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public List<AnnotationExpr> getAnnotations() {
+ throw new IllegalStateException("Inferred lambda types cannot be annotated.");
+ }
+
+ @Override
+ public UnknownType setAnnotations(List<AnnotationExpr> annotations) {
+ throw new IllegalStateException("Inferred lambda types cannot be annotated.");
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/VoidType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/VoidType.java
new file mode 100644
index 000000000..d5f7273cb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/VoidType.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VoidType extends Type<VoidType> implements NodeWithAnnotations<VoidType> {
+
+ public static final VoidType VOID_TYPE = new VoidType();
+
+ public VoidType() {
+ }
+
+ public VoidType(Range range) {
+ super(range);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/WildcardType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/WildcardType.java
new file mode 100644
index 000000000..d1e49bc0b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/WildcardType.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class WildcardType extends Type<WildcardType> implements NodeWithAnnotations<WildcardType> {
+
+ private ReferenceType ext;
+
+ private ReferenceType sup;
+
+ public WildcardType() {
+ }
+
+ public WildcardType(final ReferenceType ext) {
+ setExtends(ext);
+ }
+
+ public WildcardType(final ReferenceType ext, final ReferenceType sup) {
+ setExtends(ext);
+ setSuper(sup);
+ }
+
+ public WildcardType(final Range range,
+ final ReferenceType ext, final ReferenceType sup) {
+ super(range);
+ setExtends(ext);
+ setSuper(sup);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public ReferenceType getExtends() {
+ return ext;
+ }
+
+ public ReferenceType getSuper() {
+ return sup;
+ }
+
+ public WildcardType setExtends(final ReferenceType ext) {
+ this.ext = ext;
+ setAsParentNodeOf(this.ext);
+ return this;
+ }
+
+ public WildcardType setSuper(final ReferenceType sup) {
+ this.sup = sup;
+ setAsParentNodeOf(this.sup);
+ return this;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/CloneVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/CloneVisitor.java
new file mode 100644
index 000000000..33ca0e02a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/CloneVisitor.java
@@ -0,0 +1,1296 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.ArrayAccessExpr;
+import com.github.javaparser.ast.expr.ArrayCreationExpr;
+import com.github.javaparser.ast.expr.ArrayInitializerExpr;
+import com.github.javaparser.ast.expr.AssignExpr;
+import com.github.javaparser.ast.expr.BinaryExpr;
+import com.github.javaparser.ast.expr.BooleanLiteralExpr;
+import com.github.javaparser.ast.expr.CastExpr;
+import com.github.javaparser.ast.expr.CharLiteralExpr;
+import com.github.javaparser.ast.expr.ClassExpr;
+import com.github.javaparser.ast.expr.ConditionalExpr;
+import com.github.javaparser.ast.expr.DoubleLiteralExpr;
+import com.github.javaparser.ast.expr.EnclosedExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.FieldAccessExpr;
+import com.github.javaparser.ast.expr.InstanceOfExpr;
+import com.github.javaparser.ast.expr.IntegerLiteralExpr;
+import com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr;
+import com.github.javaparser.ast.expr.LambdaExpr;
+import com.github.javaparser.ast.expr.LongLiteralExpr;
+import com.github.javaparser.ast.expr.LongLiteralMinValueExpr;
+import com.github.javaparser.ast.expr.MarkerAnnotationExpr;
+import com.github.javaparser.ast.expr.MemberValuePair;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.MethodReferenceExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.expr.NormalAnnotationExpr;
+import com.github.javaparser.ast.expr.NullLiteralExpr;
+import com.github.javaparser.ast.expr.ObjectCreationExpr;
+import com.github.javaparser.ast.expr.QualifiedNameExpr;
+import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr;
+import com.github.javaparser.ast.expr.StringLiteralExpr;
+import com.github.javaparser.ast.expr.SuperExpr;
+import com.github.javaparser.ast.expr.ThisExpr;
+import com.github.javaparser.ast.expr.TypeExpr;
+import com.github.javaparser.ast.expr.UnaryExpr;
+import com.github.javaparser.ast.expr.VariableDeclarationExpr;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.Statement;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+public class CloneVisitor implements GenericVisitor<Node, Object> {
+
+ @Override
+ public Node visit(CompilationUnit _n, Object _arg) {
+ PackageDeclaration package_ = cloneNodes(_n.getPackage(), _arg);
+ List<ImportDeclaration> imports = visit(_n.getImports(), _arg);
+ List<TypeDeclaration<?>> types = visit(_n.getTypes(), _arg);
+
+ return new CompilationUnit(
+ _n.getRange(),
+ package_, imports, types
+ );
+ }
+
+ @Override
+ public Node visit(PackageDeclaration _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ NameExpr name = cloneNodes(_n.getName(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ PackageDeclaration r = new PackageDeclaration(
+ _n.getRange(),
+ annotations, name
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ImportDeclaration _n, Object _arg) {
+ NameExpr name = cloneNodes(_n.getName(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ImportDeclaration r = new ImportDeclaration(
+ _n.getRange(),
+ name, _n.isStatic(), _n.isAsterisk()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(TypeParameter _n, Object _arg) {
+ List<ClassOrInterfaceType> typeBound = visit(_n.getTypeBound(), _arg);
+
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ TypeParameter r = new TypeParameter(_n.getRange(),
+ _n.getName(), typeBound, annotations);
+
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(LineComment _n, Object _arg) {
+ return new LineComment(_n.getRange(), _n.getContent());
+ }
+
+ @Override
+ public Node visit(BlockComment _n, Object _arg) {
+ return new BlockComment(_n.getRange(), _n.getContent());
+ }
+
+ @Override
+ public Node visit(ClassOrInterfaceDeclaration _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<TypeParameter> typeParameters = visit(_n.getTypeParameters(), _arg);
+ List<ClassOrInterfaceType> extendsList = visit(_n.getExtends(), _arg);
+ List<ClassOrInterfaceType> implementsList = visit(_n.getImplements(), _arg);
+ List<BodyDeclaration<?>> members = visit(_n.getMembers(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ClassOrInterfaceDeclaration r = new ClassOrInterfaceDeclaration(
+ _n.getRange(),
+ _n.getModifiers(), annotations, _n.isInterface(), _n.getName(), typeParameters, extendsList, implementsList, members
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EnumDeclaration _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<ClassOrInterfaceType> implementsList = visit(_n.getImplements(), _arg);
+ List<EnumConstantDeclaration> entries = visit(_n.getEntries(), _arg);
+ List<BodyDeclaration<?>> members = visit(_n.getMembers(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EnumDeclaration r = new EnumDeclaration(
+ _n.getRange(),
+ _n.getModifiers(), annotations, _n.getName(), implementsList, entries, members
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EmptyTypeDeclaration _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EmptyTypeDeclaration r = new EmptyTypeDeclaration(
+ _n.getRange()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EnumConstantDeclaration _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<Expression> args = visit(_n.getArgs(), _arg);
+ List<BodyDeclaration<?>> classBody = visit(_n.getClassBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EnumConstantDeclaration r = new EnumConstantDeclaration(
+ _n.getRange(),
+ annotations, _n.getName(), args, classBody
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(AnnotationDeclaration _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<BodyDeclaration<?>> members = visit(_n.getMembers(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ AnnotationDeclaration r = new AnnotationDeclaration(
+ _n.getRange(),
+ _n.getModifiers(), annotations, _n.getName(), members
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(AnnotationMemberDeclaration _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ Type<?> type_ = cloneNodes(_n.getType(), _arg);
+ Expression defaultValue = cloneNodes(_n.getDefaultValue(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ AnnotationMemberDeclaration r = new AnnotationMemberDeclaration(
+ _n.getRange(),
+ _n.getModifiers(), annotations, type_, _n.getName(), defaultValue
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(FieldDeclaration _n, Object _arg) {
+ List<AnnotationExpr> annotations_ = visit(_n.getAnnotations(), _arg);
+ Type<?> elementType_ = cloneNodes(_n.getElementType(), _arg);
+ List<VariableDeclarator> variables_ = visit(_n.getVariables(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ List<ArrayBracketPair> arrayBracketPairsAfterType_ = visit(_n.getArrayBracketPairsAfterElementType(), _arg);
+
+ FieldDeclaration r = new FieldDeclaration(
+ _n.getRange(),
+ _n.getModifiers(),
+ annotations_,
+ elementType_,
+ variables_,
+ arrayBracketPairsAfterType_
+
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(VariableDeclarator _n, Object _arg) {
+ VariableDeclaratorId id = cloneNodes(_n.getId(), _arg);
+ Expression init = cloneNodes(_n.getInit(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ VariableDeclarator r = new VariableDeclarator(
+ _n.getRange(),
+ id, init
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(VariableDeclaratorId _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ List<ArrayBracketPair> arrayBracketPairsAfterId_ = visit(_n.getArrayBracketPairsAfterId(), _arg);
+
+ VariableDeclaratorId r = new VariableDeclaratorId(
+ _n.getRange(),
+ _n.getName(),
+ arrayBracketPairsAfterId_
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ConstructorDeclaration _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<TypeParameter> typeParameters = visit(_n.getTypeParameters(), _arg);
+ List<Parameter> parameters = visit(_n.getParameters(), _arg);
+ List<ReferenceType> throws_ = visit(_n.getThrows(), _arg);
+ BlockStmt block = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ConstructorDeclaration r = new ConstructorDeclaration(
+ _n.getRange(),
+ _n.getModifiers(), annotations, typeParameters, _n.getName(), parameters, throws_, block
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(MethodDeclaration _n, Object _arg) {
+ List<AnnotationExpr> annotations_ = visit(_n.getAnnotations(), _arg);
+ List<TypeParameter> typeParameters_ = visit(_n.getTypeParameters(), _arg);
+ Type<?> type_ = cloneNodes(_n.getElementType(), _arg);
+ NameExpr nameExpr_ = cloneNodes(_n.getNameExpr(), _arg);
+ List<Parameter> parameters_ = visit(_n.getParameters(), _arg);
+ List<ReferenceType> throws_ = visit(_n.getThrows(), _arg);
+ BlockStmt block_ = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ List<ArrayBracketPair> arrayBracketPairsAfterElementType_ = visit(_n.getArrayBracketPairsAfterElementType(), _arg);
+ List<ArrayBracketPair> arrayBracketPairsAfterParameterList_ = visit(_n.getArrayBracketPairsAfterParameterList(), _arg);
+
+ MethodDeclaration r = new MethodDeclaration(
+ _n.getRange(),
+ _n.getModifiers(),
+ annotations_,
+ typeParameters_,
+ type_,
+ arrayBracketPairsAfterElementType_,
+ nameExpr_,
+ parameters_,
+ arrayBracketPairsAfterParameterList_,
+ throws_,
+ block_
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(Parameter _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ Type<?> type_ = cloneNodes(_n.getElementType(), _arg);
+ VariableDeclaratorId id = cloneNodes(_n.getId(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ List<ArrayBracketPair> arrayBracketPairsAfterType_ = visit(_n.getArrayBracketPairsAfterElementType(), _arg);
+
+ Parameter r = new Parameter(
+ _n.getRange(),
+ _n.getModifiers(),
+ annotations,
+ type_,
+ arrayBracketPairsAfterType_,
+ _n.isVarArgs(),
+ id
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EmptyMemberDeclaration _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EmptyMemberDeclaration r = new EmptyMemberDeclaration(
+ _n.getRange()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(InitializerDeclaration _n, Object _arg) {
+ BlockStmt block = cloneNodes(_n.getBlock(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ InitializerDeclaration r = new InitializerDeclaration(
+ _n.getRange(),
+ _n.isStatic(), block
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(JavadocComment _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ JavadocComment r = new JavadocComment(
+ _n.getRange(),
+ _n.getContent()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ClassOrInterfaceType _n, Object _arg) {
+ ClassOrInterfaceType scope = cloneNodes(_n.getScope(), _arg);
+ List<Type<?>> typeArguments_ = visit(_n.getTypeArguments(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ClassOrInterfaceType r = new ClassOrInterfaceType(
+ _n.getRange(),
+ scope,
+ _n.getName(),
+ _n.getTypeArguments()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(PrimitiveType _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+
+ PrimitiveType r = new PrimitiveType(
+ _n.getRange(),
+ _n.getType()
+ );
+ r.setComment(comment);
+ r.setAnnotations(annotations);
+ return r;
+ }
+
+ @Override
+ public Node visit(ArrayType _n, Object _arg) {
+ List<AnnotationExpr> ann = visit(_n.getAnnotations(), _arg);
+ Type<?> type_ = cloneNodes(_n.getComponentType(), _arg);
+
+ ArrayType r = new ArrayType(_n.getRange(), type_, ann);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ArrayCreationLevel _n, Object _arg) {
+ List<AnnotationExpr> ann = visit(_n.getAnnotations(), _arg);
+ Expression dimension_ = cloneNodes(_n.getDimension(), _arg);
+
+ ArrayCreationLevel r = new ArrayCreationLevel(_n.getRange(), dimension_, ann);
+
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(IntersectionType _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<ReferenceType> elements = visit(_n.getElements(), _arg);
+
+ IntersectionType r = new IntersectionType(_n.getRange(), elements);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ r.setComment(comment);
+ r.setAnnotations(annotations);
+ return r;
+ }
+
+ @Override
+ public Node visit(UnionType _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<ReferenceType> elements = visit(_n.getElements(), _arg);
+
+ UnionType r = new UnionType(_n.getRange(),
+ elements);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ r.setComment(comment);
+ r.setAnnotations(annotations);
+ return r;
+ }
+
+ @Override
+ public Node visit(VoidType _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ VoidType r = new VoidType(_n.getRange());
+ r.setAnnotations(annotations);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(WildcardType _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ ReferenceType ext = cloneNodes(_n.getExtends(), _arg);
+ ReferenceType sup = cloneNodes(_n.getSuper(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ WildcardType r = new WildcardType(
+ _n.getRange(),
+ ext, sup
+ );
+ r.setComment(comment);
+ r.setAnnotations(annotations);
+ return r;
+ }
+
+ @Override
+ public Node visit(UnknownType _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ UnknownType r = new UnknownType();
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ArrayAccessExpr _n, Object _arg) {
+ Expression name = cloneNodes(_n.getName(), _arg);
+ Expression index = cloneNodes(_n.getIndex(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ArrayAccessExpr r = new ArrayAccessExpr(
+ _n.getRange(),
+ name, index
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ArrayCreationExpr _n, Object _arg) {
+ Type<?> type_ = cloneNodes(_n.getType(), _arg);
+ List<ArrayCreationLevel> levels_ = visit(_n.getLevels(), _arg);
+ ArrayInitializerExpr initializer_ = cloneNodes(_n.getInitializer(), _arg);
+
+ ArrayCreationExpr r = new ArrayCreationExpr(_n.getRange(), type_, levels_, initializer_);
+
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ArrayInitializerExpr _n, Object _arg) {
+ List<Expression> values = visit(_n.getValues(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ArrayInitializerExpr r = new ArrayInitializerExpr(
+ _n.getRange(),
+ values
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(AssignExpr _n, Object _arg) {
+ Expression target = cloneNodes(_n.getTarget(), _arg);
+ Expression value = cloneNodes(_n.getValue(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ AssignExpr r = new AssignExpr(
+ _n.getRange(),
+ target, value, _n.getOperator());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(BinaryExpr _n, Object _arg) {
+ Expression left = cloneNodes(_n.getLeft(), _arg);
+ Expression right = cloneNodes(_n.getRight(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ BinaryExpr r = new BinaryExpr(
+ _n.getRange(),
+ left, right, _n.getOperator()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(CastExpr _n, Object _arg) {
+ Type<?> type_ = cloneNodes(_n.getType(), _arg);
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ CastExpr r = new CastExpr(
+ _n.getRange(),
+ type_, expr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ClassExpr _n, Object _arg) {
+ Type<?> type_ = cloneNodes(_n.getType(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ClassExpr r = new ClassExpr(
+ _n.getRange(),
+ type_
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ConditionalExpr _n, Object _arg) {
+ Expression condition = cloneNodes(_n.getCondition(), _arg);
+ Expression thenExpr = cloneNodes(_n.getThenExpr(), _arg);
+ Expression elseExpr = cloneNodes(_n.getElseExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ConditionalExpr r = new ConditionalExpr(
+ _n.getRange(),
+ condition, thenExpr, elseExpr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EnclosedExpr _n, Object _arg) {
+ Expression inner = cloneNodes(_n.getInner(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EnclosedExpr r = new EnclosedExpr(
+ _n.getRange(),
+ inner
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(FieldAccessExpr _n, Object _arg) {
+ Expression scope_ = cloneNodes(_n.getScope(), _arg);
+ List<Type<?>> typeArguments_ = visit(_n.getTypeArguments(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ FieldAccessExpr r = new FieldAccessExpr(
+ _n.getRange(),
+ scope_,
+ typeArguments_,
+ _n.getField()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(InstanceOfExpr _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ Type<?> type_ = cloneNodes(_n.getType(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ InstanceOfExpr r = new InstanceOfExpr(
+ _n.getRange(),
+ expr, type_
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(StringLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ StringLiteralExpr r = new StringLiteralExpr(
+ _n.getRange(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(IntegerLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ IntegerLiteralExpr r = new IntegerLiteralExpr(
+ _n.getRange(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(LongLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ LongLiteralExpr r = new LongLiteralExpr(
+ _n.getRange(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(IntegerLiteralMinValueExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ IntegerLiteralMinValueExpr r = new IntegerLiteralMinValueExpr(_n.getRange());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(LongLiteralMinValueExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ LongLiteralMinValueExpr r = new LongLiteralMinValueExpr(_n.getRange());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(CharLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ CharLiteralExpr r = new CharLiteralExpr(
+ _n.getRange(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(DoubleLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ DoubleLiteralExpr r = new DoubleLiteralExpr(
+ _n.getRange(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(BooleanLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ BooleanLiteralExpr r = new BooleanLiteralExpr(
+ _n.getRange(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(NullLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ NullLiteralExpr r = new NullLiteralExpr(_n.getRange());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(MethodCallExpr _n, Object _arg) {
+ Expression scope_ = cloneNodes(_n.getScope(), _arg);
+ List<Type<?>> typeArguments_ = visit(_n.getTypeArguments(), _arg);
+ List<Expression> args_ = visit(_n.getArgs(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ MethodCallExpr r = new MethodCallExpr(
+ _n.getRange(),
+ scope_,
+ typeArguments_,
+ _n.getName(),
+ args_
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(NameExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ NameExpr r = new NameExpr(
+ _n.getRange(),
+ _n.getName()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ObjectCreationExpr _n, Object _arg) {
+ Expression scope = cloneNodes(_n.getScope(), _arg);
+ ClassOrInterfaceType type_ = cloneNodes(_n.getType(), _arg);
+ List<Type<?>> typeArgs = visit(_n.getTypeArguments(), _arg);
+ List<Expression> args = visit(_n.getArgs(), _arg);
+ List<BodyDeclaration<?>> anonymousBody = visit(_n.getAnonymousClassBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ObjectCreationExpr r = new ObjectCreationExpr(
+ _n.getRange(),
+ scope, type_, typeArgs, args, anonymousBody
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(QualifiedNameExpr _n, Object _arg) {
+ NameExpr scope = cloneNodes(_n.getQualifier(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ QualifiedNameExpr r = new QualifiedNameExpr(
+ _n.getRange(),
+ scope, _n.getName()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ThisExpr _n, Object _arg) {
+ Expression classExpr = cloneNodes(_n.getClassExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ThisExpr r = new ThisExpr(
+ _n.getRange(),
+ classExpr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(SuperExpr _n, Object _arg) {
+ Expression classExpr = cloneNodes(_n.getClassExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ SuperExpr r = new SuperExpr(
+ _n.getRange(),
+ classExpr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(UnaryExpr _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ UnaryExpr r = new UnaryExpr(
+ _n.getRange(),
+ expr, _n.getOperator()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(VariableDeclarationExpr _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ Type<?> type_ = cloneNodes(_n.getElementType(), _arg);
+ List<VariableDeclarator> vars = visit(_n.getVariables(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ List<ArrayBracketPair> arrayBracketPairsAfterType_ = visit(_n.getArrayBracketPairsAfterElementType(), _arg);
+
+ VariableDeclarationExpr r = new VariableDeclarationExpr(
+ _n.getRange(),
+ _n.getModifiers(),
+ annotations,
+ type_,
+ vars,
+ arrayBracketPairsAfterType_
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(MarkerAnnotationExpr _n, Object _arg) {
+ NameExpr name = cloneNodes(_n.getName(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ MarkerAnnotationExpr r = new MarkerAnnotationExpr(
+ _n.getRange(),
+ name
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(SingleMemberAnnotationExpr _n, Object _arg) {
+ NameExpr name = cloneNodes(_n.getName(), _arg);
+ Expression memberValue = cloneNodes(_n.getMemberValue(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ SingleMemberAnnotationExpr r = new SingleMemberAnnotationExpr(
+ _n.getRange(),
+ name, memberValue
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(NormalAnnotationExpr _n, Object _arg) {
+ NameExpr name = cloneNodes(_n.getName(), _arg);
+ List<MemberValuePair> pairs = visit(_n.getPairs(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ NormalAnnotationExpr r = new NormalAnnotationExpr(
+ _n.getRange(),
+ name, pairs
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(MemberValuePair _n, Object _arg) {
+ Expression value = cloneNodes(_n.getValue(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ MemberValuePair r = new MemberValuePair(
+ _n.getRange(),
+ _n.getName(), value
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ExplicitConstructorInvocationStmt _n, Object _arg) {
+ List<Type<?>> typeArguments_ = visit(_n.getTypeArguments(), _arg);
+ Expression expr_ = cloneNodes(_n.getExpr(), _arg);
+ List<Expression> args_ = visit(_n.getArgs(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ExplicitConstructorInvocationStmt r = new ExplicitConstructorInvocationStmt(
+ _n.getRange(),
+ typeArguments_,
+ _n.isThis(),
+ expr_,
+ args_
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(TypeDeclarationStmt _n, Object _arg) {
+ TypeDeclaration<?> typeDecl = cloneNodes(_n.getTypeDeclaration(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ TypeDeclarationStmt r = new TypeDeclarationStmt(
+ _n.getRange(),
+ typeDecl
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(AssertStmt _n, Object _arg) {
+ Expression check = cloneNodes(_n.getCheck(), _arg);
+ Expression message = cloneNodes(_n.getMessage(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ AssertStmt r = new AssertStmt(
+ _n.getRange(),
+ check, message
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(BlockStmt _n, Object _arg) {
+ List<Statement> stmts = visit(_n.getStmts(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ BlockStmt r = new BlockStmt(
+ _n.getRange(),
+ stmts
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(LabeledStmt _n, Object _arg) {
+ Statement stmt = cloneNodes(_n.getStmt(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ LabeledStmt r = new LabeledStmt(
+ _n.getRange(),
+ _n.getLabel(), stmt
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EmptyStmt _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EmptyStmt r = new EmptyStmt(_n.getRange());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ExpressionStmt _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpression(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ExpressionStmt r = new ExpressionStmt(
+ _n.getRange(),
+ expr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(SwitchStmt _n, Object _arg) {
+ Expression selector = cloneNodes(_n.getSelector(), _arg);
+ List<SwitchEntryStmt> entries = visit(_n.getEntries(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ SwitchStmt r = new SwitchStmt(
+ _n.getRange(),
+ selector, entries
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(SwitchEntryStmt _n, Object _arg) {
+ Expression label = cloneNodes(_n.getLabel(), _arg);
+ List<Statement> stmts = visit(_n.getStmts(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ SwitchEntryStmt r = new SwitchEntryStmt(
+ _n.getRange(),
+ label, stmts
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(BreakStmt _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ BreakStmt r = new BreakStmt(
+ _n.getRange(),
+ _n.getId()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ReturnStmt _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ReturnStmt r = new ReturnStmt(
+ _n.getRange(),
+ expr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(IfStmt _n, Object _arg) {
+ Expression condition = cloneNodes(_n.getCondition(), _arg);
+ Statement thenStmt = cloneNodes(_n.getThenStmt(), _arg);
+ Statement elseStmt = cloneNodes(_n.getElseStmt(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ IfStmt r = new IfStmt(
+ _n.getRange(),
+ condition, thenStmt, elseStmt
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(WhileStmt _n, Object _arg) {
+ Expression condition = cloneNodes(_n.getCondition(), _arg);
+ Statement body = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ WhileStmt r = new WhileStmt(
+ _n.getRange(),
+ condition, body
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ContinueStmt _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ContinueStmt r = new ContinueStmt(
+ _n.getRange(),
+ _n.getId()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(DoStmt _n, Object _arg) {
+ Statement body = cloneNodes(_n.getBody(), _arg);
+ Expression condition = cloneNodes(_n.getCondition(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ DoStmt r = new DoStmt(
+ _n.getRange(),
+ body, condition
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ForeachStmt _n, Object _arg) {
+ VariableDeclarationExpr var = cloneNodes(_n.getVariable(), _arg);
+ Expression iterable = cloneNodes(_n.getIterable(), _arg);
+ Statement body = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ForeachStmt r = new ForeachStmt(
+ _n.getRange(),
+ var, iterable, body
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ForStmt _n, Object _arg) {
+ List<Expression> init = visit(_n.getInit(), _arg);
+ Expression compare = cloneNodes(_n.getCompare(), _arg);
+ List<Expression> update = visit(_n.getUpdate(), _arg);
+ Statement body = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ForStmt r = new ForStmt(
+ _n.getRange(),
+ init, compare, update, body
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ThrowStmt _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ThrowStmt r = new ThrowStmt(
+ _n.getRange(),
+ expr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(SynchronizedStmt _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ BlockStmt block = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ SynchronizedStmt r = new SynchronizedStmt(
+ _n.getRange(),
+ expr, block
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(TryStmt _n, Object _arg) {
+ List<VariableDeclarationExpr> resources = visit(_n.getResources(),_arg);
+ BlockStmt tryBlock = cloneNodes(_n.getTryBlock(), _arg);
+ List<CatchClause> catchs = visit(_n.getCatchs(), _arg);
+ BlockStmt finallyBlock = cloneNodes(_n.getFinallyBlock(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ TryStmt r = new TryStmt(
+ _n.getRange(),
+ resources, tryBlock, catchs, finallyBlock
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(CatchClause _n, Object _arg) {
+ Parameter param = cloneNodes(_n.getParam(), _arg);
+ BlockStmt catchBlock = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ CatchClause r = new CatchClause(
+ _n.getRange(),
+ param.getModifiers(), param.getAnnotations(), param.getElementType(), param.getId(), catchBlock
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(LambdaExpr _n, Object _arg) {
+
+ List<Parameter> lambdaParameters = visit(_n.getParameters(), _arg);
+
+ Statement body = cloneNodes(_n.getBody(), _arg);
+
+ return new LambdaExpr(_n.getRange(), lambdaParameters, body,
+ _n.isParametersEnclosed());
+ }
+
+ @Override
+ public Node visit(MethodReferenceExpr _n, Object arg) {
+
+ Expression scope = cloneNodes(_n.getScope(), arg);
+
+ return new MethodReferenceExpr(_n.getRange(), scope,
+ _n.getTypeArguments(), _n.getIdentifier());
+ }
+
+ @Override
+ public Node visit(TypeExpr n, Object arg) {
+
+ Type<?> t = cloneNodes(n.getType(), arg);
+
+ return new TypeExpr(n.getRange(), t);
+ }
+
+ @Override
+ public Node visit(ArrayBracketPair _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+
+ return new ArrayBracketPair(_n.getRange(), annotations);
+ }
+
+ public <T extends Node> List<T> visit(List<T> _nodes, Object _arg) {
+ if (_nodes == null)
+ return null;
+ List<T> r = new ArrayList<>(_nodes.size());
+ for (T n : _nodes) {
+ T rN = cloneNodes(n, _arg);
+ if (rN != null)
+ r.add(rN);
+ }
+ return r;
+ }
+
+ @SuppressWarnings("unchecked")
+ protected <T extends Node> T cloneNodes(T _node, Object _arg) {
+ if (_node == null)
+ return null;
+ Node r = _node.accept(this, _arg);
+ if (r == null)
+ return null;
+ return (T) r;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/DumpVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/DumpVisitor.java
new file mode 100644
index 000000000..569f39516
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/DumpVisitor.java
@@ -0,0 +1,1644 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.body.*;
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments;
+import com.github.javaparser.ast.stmt.*;
+import com.github.javaparser.ast.type.*;
+
+import java.util.EnumSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static com.github.javaparser.utils.PositionUtils.sortByBeginPosition;
+import static com.github.javaparser.utils.Utils.EOL;
+import static com.github.javaparser.utils.Utils.isNullOrEmpty;
+
+/**
+ * Dumps the AST to formatted Java source code.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public class DumpVisitor implements VoidVisitor<Object> {
+
+ private boolean printComments;
+
+ public DumpVisitor() {
+ this(true);
+ }
+
+ public DumpVisitor(boolean printComments) {
+ this.printComments = printComments;
+ }
+
+ public static class SourcePrinter {
+
+ private final String indentation;
+
+ public SourcePrinter(final String indentation) {
+ this.indentation = indentation;
+ }
+
+ private int level = 0;
+
+ private boolean indented = false;
+
+ private final StringBuilder buf = new StringBuilder();
+
+ public void indent() {
+ level++;
+ }
+
+ public void unindent() {
+ level--;
+ }
+
+ private void makeIndent() {
+ for (int i = 0; i < level; i++) {
+ buf.append(indentation);
+ }
+ }
+
+ public void print(final String arg) {
+ if (!indented) {
+ makeIndent();
+ indented = true;
+ }
+ buf.append(arg);
+ }
+
+ public void printLn(final String arg) {
+ print(arg);
+ printLn();
+ }
+
+ public void printLn() {
+ buf.append(EOL);
+ indented = false;
+ }
+
+ public String getSource() {
+ return buf.toString();
+ }
+
+ @Override
+ public String toString() {
+ return getSource();
+ }
+ }
+
+ private final SourcePrinter printer = createSourcePrinter();
+
+ protected SourcePrinter createSourcePrinter() {
+ return new SourcePrinter(" ");
+ }
+
+ public String getSource() {
+ return printer.getSource();
+ }
+
+ private void printModifiers(final EnumSet<Modifier> modifiers) {
+ if (modifiers.size() > 0)
+ printer.print(modifiers.stream().map(Modifier::getLib).collect(Collectors.joining(" ")) + " ");
+ }
+
+ private void printMembers(final List<BodyDeclaration<?>> members, final Object arg) {
+ for (final BodyDeclaration<?> member : members) {
+ printer.printLn();
+ member.accept(this, arg);
+ printer.printLn();
+ }
+ }
+
+ private void printMemberAnnotations(final List<AnnotationExpr> annotations, final Object arg) {
+ if (!isNullOrEmpty(annotations)) {
+ for (final AnnotationExpr a : annotations) {
+ a.accept(this, arg);
+ printer.printLn();
+ }
+ }
+ }
+
+ private void printAnnotations(final List<AnnotationExpr> annotations, boolean prefixWithASpace, final Object arg) {
+ if (!isNullOrEmpty(annotations)) {
+ if(prefixWithASpace){
+ printer.print(" ");
+ }
+ for (AnnotationExpr annotation : annotations) {
+ annotation.accept(this, arg);
+ printer.print(" ");
+ }
+ }
+ }
+
+ private void printTypeArgs(final NodeWithTypeArguments<?> nodeWithTypeArguments, final Object arg) {
+ List<Type<?>> typeArguments = nodeWithTypeArguments.getTypeArguments();
+ if (!isNullOrEmpty(typeArguments)) {
+ printer.print("<");
+ for (final Iterator<Type<?>> i = typeArguments.iterator(); i.hasNext(); ) {
+ final Type<?> t = i.next();
+ t.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ printer.print(">");
+ }
+ }
+
+ private void printTypeParameters(final List<TypeParameter> args, final Object arg) {
+ if (!isNullOrEmpty(args)) {
+ printer.print("<");
+ for (final Iterator<TypeParameter> i = args.iterator(); i.hasNext(); ) {
+ final TypeParameter t = i.next();
+ t.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ printer.print(">");
+ }
+ }
+
+ private void printArguments(final List<Expression> args, final Object arg) {
+ printer.print("(");
+ if (!isNullOrEmpty(args)) {
+ for (final Iterator<Expression> i = args.iterator(); i.hasNext(); ) {
+ final Expression e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+ }
+
+ private void printJavaComment(final Comment javacomment, final Object arg) {
+ if (javacomment != null) {
+ javacomment.accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(final CompilationUnit n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+
+ if (n.getPackage() != null) {
+ n.getPackage().accept(this, arg);
+ }
+
+ if (!isNullOrEmpty(n.getImports())) {
+ for (final ImportDeclaration i : n.getImports()) {
+ i.accept(this, arg);
+ }
+ printer.printLn();
+ }
+
+ if (!isNullOrEmpty(n.getTypes())) {
+ for (final Iterator<TypeDeclaration<?>> i = n.getTypes().iterator(); i.hasNext(); ) {
+ i.next().accept(this, arg);
+ printer.printLn();
+ if (i.hasNext()) {
+ printer.printLn();
+ }
+ }
+ }
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override
+ public void visit(final PackageDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), false, arg);
+ printer.print("package ");
+ n.getName().accept(this, arg);
+ printer.printLn(";");
+ printer.printLn();
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override
+ public void visit(final NameExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getName());
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override
+ public void visit(final QualifiedNameExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getQualifier().accept(this, arg);
+ printer.print(".");
+ printer.print(n.getName());
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override
+ public void visit(final ImportDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (!n.isEmptyImportDeclaration()) {
+ printer.print("import ");
+ if (n.isStatic()) {
+ printer.print("static ");
+ }
+ n.getName().accept(this, arg);
+ if (n.isAsterisk()) {
+ printer.print(".*");
+ }
+ }
+ printer.printLn(";");
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override
+ public void visit(final ClassOrInterfaceDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ if (n.isInterface()) {
+ printer.print("interface ");
+ } else {
+ printer.print("class ");
+ }
+
+ printer.print(n.getName());
+
+ printTypeParameters(n.getTypeParameters(), arg);
+
+ if (!isNullOrEmpty(n.getExtends())) {
+ printer.print(" extends ");
+ for (final Iterator<ClassOrInterfaceType> i = n.getExtends().iterator(); i.hasNext(); ) {
+ final ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ if (!isNullOrEmpty(n.getImplements())) {
+ printer.print(" implements ");
+ for (final Iterator<ClassOrInterfaceType> i = n.getImplements().iterator(); i.hasNext(); ) {
+ final ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ printer.printLn(" {");
+ printer.indent();
+ if (!isNullOrEmpty(n.getMembers())) {
+ printMembers(n.getMembers(), arg);
+ }
+
+ printOrphanCommentsEnding(n);
+
+ printer.unindent();
+ printer.print("}");
+ }
+
+ @Override
+ public void visit(final EmptyTypeDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(";");
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override
+ public void visit(final JavadocComment n, final Object arg) {
+ printer.print("/**");
+ printer.print(n.getContent());
+ printer.printLn("*/");
+ }
+
+ @Override
+ public void visit(final ClassOrInterfaceType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ }
+ for (AnnotationExpr ae : n.getAnnotations()) {
+ ae.accept(this, arg);
+ printer.print(" ");
+ }
+
+ printer.print(n.getName());
+
+ if (n.isUsingDiamondOperator()) {
+ printer.print("<>");
+ } else {
+ printTypeArgs(n, arg);
+ }
+ }
+
+ @Override
+ public void visit(final TypeParameter n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ for (AnnotationExpr ann : n.getAnnotations()) {
+ ann.accept(this, arg);
+ printer.print(" ");
+ }
+ printer.print(n.getName());
+ if (!isNullOrEmpty(n.getTypeBound())) {
+ printer.print(" extends ");
+ for (final Iterator<ClassOrInterfaceType> i = n.getTypeBound().iterator(); i.hasNext(); ) {
+ final ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(" & ");
+ }
+ }
+ }
+ }
+
+ @Override
+ public void visit(final PrimitiveType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), true, arg);
+ switch (n.getType()) {
+ case Boolean:
+ printer.print("boolean");
+ break;
+ case Byte:
+ printer.print("byte");
+ break;
+ case Char:
+ printer.print("char");
+ break;
+ case Double:
+ printer.print("double");
+ break;
+ case Float:
+ printer.print("float");
+ break;
+ case Int:
+ printer.print("int");
+ break;
+ case Long:
+ printer.print("long");
+ break;
+ case Short:
+ printer.print("short");
+ break;
+ }
+ }
+
+ @Override
+ public void visit(final ArrayType n, final Object arg) {
+ final List<ArrayType> arrayTypeBuffer = new LinkedList<>();
+ Type type = n;
+ while (type instanceof ArrayType) {
+ final ArrayType arrayType = (ArrayType) type;
+ arrayTypeBuffer.add(arrayType);
+ type = arrayType.getComponentType();
+ }
+
+ type.accept(this, arg);
+ for (ArrayType arrayType : arrayTypeBuffer) {
+ printAnnotations(arrayType.getAnnotations(), true, arg);
+ printer.print("[]");
+ }
+ }
+
+ @Override
+ public void visit(final ArrayCreationLevel n, final Object arg) {
+ printAnnotations(n.getAnnotations(), true, arg);
+ printer.print("[");
+ if (n.getDimension() != null) {
+ n.getDimension().accept(this, arg);
+ }
+ printer.print("]");
+ }
+
+ @Override
+ public void visit(final IntersectionType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), false, arg);
+ boolean isFirst = true;
+ for (ReferenceType element : n.getElements()) {
+ element.accept(this, arg);
+ if (isFirst) {
+ isFirst = false;
+ } else {
+ printer.print(" & ");
+ }
+ }
+ }
+
+ @Override public void visit(final UnionType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), true, arg);
+ boolean isFirst = true;
+ for (ReferenceType element : n.getElements()) {
+ if (isFirst) {
+ isFirst = false;
+ } else {
+ printer.print(" | ");
+ }
+ element.accept(this, arg);
+ }
+ }
+
+
+ @Override
+ public void visit(final WildcardType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), false, arg);
+ printer.print("?");
+ if (n.getExtends() != null) {
+ printer.print(" extends ");
+ n.getExtends().accept(this, arg);
+ }
+ if (n.getSuper() != null) {
+ printer.print(" super ");
+ n.getSuper().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(final UnknownType n, final Object arg) {
+ // Nothing to dump
+ }
+
+ @Override
+ public void visit(final FieldDeclaration n, final Object arg) {
+ printOrphanCommentsBeforeThisChildNode(n);
+
+ printJavaComment(n.getComment(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+ n.getElementType().accept(this, arg);
+ for(ArrayBracketPair pair: n.getArrayBracketPairsAfterElementType()){
+ pair.accept(this, arg);
+ }
+
+ printer.print(" ");
+ for (final Iterator<VariableDeclarator> i = n.getVariables().iterator(); i.hasNext(); ) {
+ final VariableDeclarator var = i.next();
+ var.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final VariableDeclarator n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getId().accept(this, arg);
+ if (n.getInit() != null) {
+ printer.print(" = ");
+ n.getInit().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(final VariableDeclaratorId n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getName());
+ for(ArrayBracketPair pair: n.getArrayBracketPairsAfterId()){
+ pair.accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(final ArrayInitializerExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("{");
+ if (!isNullOrEmpty(n.getValues())) {
+ printer.print(" ");
+ for (final Iterator<Expression> i = n.getValues().iterator(); i.hasNext(); ) {
+ final Expression expr = i.next();
+ expr.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ printer.print(" ");
+ }
+ printer.print("}");
+ }
+
+ @Override
+ public void visit(final VoidType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), false, arg);
+ printer.print("void");
+ }
+
+ @Override
+ public void visit(final ArrayAccessExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ printer.print("[");
+ n.getIndex().accept(this, arg);
+ printer.print("]");
+ }
+
+ @Override
+ public void visit(final ArrayCreationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("new ");
+ n.getType().accept(this, arg);
+ for (ArrayCreationLevel level : n.getLevels()) {
+ level.accept(this, arg);
+ }
+ if (n.getInitializer() != null) {
+ printer.print(" ");
+ n.getInitializer().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(final AssignExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getTarget().accept(this, arg);
+ printer.print(" ");
+ switch (n.getOperator()) {
+ case assign:
+ printer.print("=");
+ break;
+ case and:
+ printer.print("&=");
+ break;
+ case or:
+ printer.print("|=");
+ break;
+ case xor:
+ printer.print("^=");
+ break;
+ case plus:
+ printer.print("+=");
+ break;
+ case minus:
+ printer.print("-=");
+ break;
+ case rem:
+ printer.print("%=");
+ break;
+ case slash:
+ printer.print("/=");
+ break;
+ case star:
+ printer.print("*=");
+ break;
+ case lShift:
+ printer.print("<<=");
+ break;
+ case rSignedShift:
+ printer.print(">>=");
+ break;
+ case rUnsignedShift:
+ printer.print(">>>=");
+ break;
+ }
+ printer.print(" ");
+ n.getValue().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final BinaryExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getLeft().accept(this, arg);
+ printer.print(" ");
+ switch (n.getOperator()) {
+ case or:
+ printer.print("||");
+ break;
+ case and:
+ printer.print("&&");
+ break;
+ case binOr:
+ printer.print("|");
+ break;
+ case binAnd:
+ printer.print("&");
+ break;
+ case xor:
+ printer.print("^");
+ break;
+ case equals:
+ printer.print("==");
+ break;
+ case notEquals:
+ printer.print("!=");
+ break;
+ case less:
+ printer.print("<");
+ break;
+ case greater:
+ printer.print(">");
+ break;
+ case lessEquals:
+ printer.print("<=");
+ break;
+ case greaterEquals:
+ printer.print(">=");
+ break;
+ case lShift:
+ printer.print("<<");
+ break;
+ case rSignedShift:
+ printer.print(">>");
+ break;
+ case rUnsignedShift:
+ printer.print(">>>");
+ break;
+ case plus:
+ printer.print("+");
+ break;
+ case minus:
+ printer.print("-");
+ break;
+ case times:
+ printer.print("*");
+ break;
+ case divide:
+ printer.print("/");
+ break;
+ case remainder:
+ printer.print("%");
+ break;
+ }
+ printer.print(" ");
+ n.getRight().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final CastExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("(");
+ n.getType().accept(this, arg);
+ printer.print(") ");
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final ClassExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getType().accept(this, arg);
+ printer.print(".class");
+ }
+
+ @Override
+ public void visit(final ConditionalExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getCondition().accept(this, arg);
+ printer.print(" ? ");
+ n.getThenExpr().accept(this, arg);
+ printer.print(" : ");
+ n.getElseExpr().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final EnclosedExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("(");
+ if (n.getInner() != null) {
+ n.getInner().accept(this, arg);
+ }
+ printer.print(")");
+ }
+
+ @Override
+ public void visit(final FieldAccessExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ printer.print(n.getField());
+ }
+
+ @Override
+ public void visit(final InstanceOfExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getExpr().accept(this, arg);
+ printer.print(" instanceof ");
+ n.getType().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final CharLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("'");
+ printer.print(n.getValue());
+ printer.print("'");
+ }
+
+ @Override
+ public void visit(final DoubleLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getValue());
+ }
+
+ @Override
+ public void visit(final IntegerLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getValue());
+ }
+
+ @Override
+ public void visit(final LongLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getValue());
+ }
+
+ @Override
+ public void visit(final IntegerLiteralMinValueExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getValue());
+ }
+
+ @Override
+ public void visit(final LongLiteralMinValueExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getValue());
+ }
+
+ @Override
+ public void visit(final StringLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("\"");
+ printer.print(n.getValue());
+ printer.print("\"");
+ }
+
+ @Override
+ public void visit(final BooleanLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(String.valueOf(n.getValue()));
+ }
+
+ @Override
+ public void visit(final NullLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("null");
+ }
+
+ @Override
+ public void visit(final ThisExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ printer.print(".");
+ }
+ printer.print("this");
+ }
+
+ @Override
+ public void visit(final SuperExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ printer.print(".");
+ }
+ printer.print("super");
+ }
+
+ @Override
+ public void visit(final MethodCallExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ }
+ printTypeArgs(n, arg);
+ printer.print(n.getName());
+ printArguments(n.getArgs(), arg);
+ }
+
+ @Override
+ public void visit(final ObjectCreationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ }
+
+ printer.print("new ");
+
+ printTypeArgs(n, arg);
+ if (!isNullOrEmpty(n.getTypeArguments())) {
+ printer.print(" ");
+ }
+
+ n.getType().accept(this, arg);
+
+ printArguments(n.getArgs(), arg);
+
+ if (n.getAnonymousClassBody() != null) {
+ printer.printLn(" {");
+ printer.indent();
+ printMembers(n.getAnonymousClassBody(), arg);
+ printer.unindent();
+ printer.print("}");
+ }
+ }
+
+ @Override
+ public void visit(final UnaryExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ switch (n.getOperator()) {
+ case positive:
+ printer.print("+");
+ break;
+ case negative:
+ printer.print("-");
+ break;
+ case inverse:
+ printer.print("~");
+ break;
+ case not:
+ printer.print("!");
+ break;
+ case preIncrement:
+ printer.print("++");
+ break;
+ case preDecrement:
+ printer.print("--");
+ break;
+ default:
+ }
+
+ n.getExpr().accept(this, arg);
+
+ switch (n.getOperator()) {
+ case posIncrement:
+ printer.print("++");
+ break;
+ case posDecrement:
+ printer.print("--");
+ break;
+ default:
+ }
+ }
+
+ @Override
+ public void visit(final ConstructorDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ printTypeParameters(n.getTypeParameters(), arg);
+ if (!n.getTypeParameters().isEmpty()) {
+ printer.print(" ");
+ }
+ printer.print(n.getName());
+
+ printer.print("(");
+ if (!n.getParameters().isEmpty()) {
+ for (final Iterator<Parameter> i = n.getParameters().iterator(); i.hasNext(); ) {
+ final Parameter p = i.next();
+ p.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+
+ if (!isNullOrEmpty(n.getThrows())) {
+ printer.print(" throws ");
+ for (final Iterator<ReferenceType> i = n.getThrows().iterator(); i.hasNext(); ) {
+ final ReferenceType name = i.next();
+ name.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(" ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final MethodDeclaration n, final Object arg) {
+ printOrphanCommentsBeforeThisChildNode(n);
+
+ printJavaComment(n.getComment(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+ if (n.isDefault()) {
+ printer.print("default ");
+ }
+ printTypeParameters(n.getTypeParameters(), arg);
+ if (!isNullOrEmpty(n.getTypeParameters())) {
+ printer.print(" ");
+ }
+
+ n.getElementType().accept(this, arg);
+ for(ArrayBracketPair pair: n.getArrayBracketPairsAfterElementType()){
+ pair.accept(this, arg);
+ }
+ printer.print(" ");
+ printer.print(n.getName());
+
+ printer.print("(");
+ if (!isNullOrEmpty(n.getParameters())) {
+ for (final Iterator<Parameter> i = n.getParameters().iterator(); i.hasNext(); ) {
+ final Parameter p = i.next();
+ p.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+
+ for(ArrayBracketPair pair: n.getArrayBracketPairsAfterParameterList()){
+ pair.accept(this, arg);
+ }
+
+ if (!isNullOrEmpty(n.getThrows())) {
+ printer.print(" throws ");
+ for (final Iterator<ReferenceType> i = n.getThrows().iterator(); i.hasNext(); ) {
+ final ReferenceType name = i.next();
+ name.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ if (n.getBody() == null) {
+ printer.print(";");
+ } else {
+ printer.print(" ");
+ n.getBody().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(final Parameter n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), false, arg);
+ printModifiers(n.getModifiers());
+ if (n.getElementType() != null) {
+ n.getElementType().accept(this, arg);
+ }
+ for(ArrayBracketPair pair: n.getArrayBracketPairsAfterElementType()){
+ pair.accept(this, arg);
+ }
+ if (n.isVarArgs()) {
+ printer.print("...");
+ }
+ printer.print(" ");
+ n.getId().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final ExplicitConstructorInvocationStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.isThis()) {
+ printTypeArgs(n, arg);
+ printer.print("this");
+ } else {
+ if (n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ printer.print(".");
+ }
+ printTypeArgs(n, arg);
+ printer.print("super");
+ }
+ printArguments(n.getArgs(), arg);
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final VariableDeclarationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), false, arg);
+ printModifiers(n.getModifiers());
+
+ n.getElementType().accept(this, arg);
+ for(ArrayBracketPair pair: n.getArrayBracketPairsAfterElementType()){
+ pair.accept(this, arg);
+ }
+ printer.print(" ");
+
+ for (final Iterator<VariableDeclarator> i = n.getVariables().iterator(); i.hasNext(); ) {
+ final VariableDeclarator v = i.next();
+ v.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ @Override
+ public void visit(final TypeDeclarationStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getTypeDeclaration().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final AssertStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("assert ");
+ n.getCheck().accept(this, arg);
+ if (n.getMessage() != null) {
+ printer.print(" : ");
+ n.getMessage().accept(this, arg);
+ }
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final BlockStmt n, final Object arg) {
+ printOrphanCommentsBeforeThisChildNode(n);
+ printJavaComment(n.getComment(), arg);
+ printer.printLn("{");
+ if (n.getStmts() != null) {
+ printer.indent();
+ for (final Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ printer.printLn();
+ }
+ printer.unindent();
+ }
+ printOrphanCommentsEnding(n);
+ printer.print("}");
+
+ }
+
+ @Override
+ public void visit(final LabeledStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getLabel());
+ printer.print(": ");
+ n.getStmt().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final EmptyStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final ExpressionStmt n, final Object arg) {
+ printOrphanCommentsBeforeThisChildNode(n);
+ printJavaComment(n.getComment(), arg);
+ n.getExpression().accept(this, arg);
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final SwitchStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("switch(");
+ n.getSelector().accept(this, arg);
+ printer.printLn(") {");
+ if (n.getEntries() != null) {
+ printer.indent();
+ for (final SwitchEntryStmt e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ printer.unindent();
+ }
+ printer.print("}");
+
+ }
+
+ @Override
+ public void visit(final SwitchEntryStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getLabel() != null) {
+ printer.print("case ");
+ n.getLabel().accept(this, arg);
+ printer.print(":");
+ } else {
+ printer.print("default:");
+ }
+ printer.printLn();
+ printer.indent();
+ if (n.getStmts() != null) {
+ for (final Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ printer.printLn();
+ }
+ }
+ printer.unindent();
+ }
+
+ @Override
+ public void visit(final BreakStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("break");
+ if (n.getId() != null) {
+ printer.print(" ");
+ printer.print(n.getId());
+ }
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final ReturnStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("return");
+ if (n.getExpr() != null) {
+ printer.print(" ");
+ n.getExpr().accept(this, arg);
+ }
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final EnumDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ printer.print("enum ");
+ printer.print(n.getName());
+
+ if (!n.getImplements().isEmpty()) {
+ printer.print(" implements ");
+ for (final Iterator<ClassOrInterfaceType> i = n.getImplements().iterator(); i.hasNext(); ) {
+ final ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ printer.printLn(" {");
+ printer.indent();
+ if (n.getEntries() != null) {
+ printer.printLn();
+ for (final Iterator<EnumConstantDeclaration> i = n.getEntries().iterator(); i.hasNext(); ) {
+ final EnumConstantDeclaration e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ if (!n.getMembers().isEmpty()) {
+ printer.printLn(";");
+ printMembers(n.getMembers(), arg);
+ } else {
+ if (!n.getEntries().isEmpty()) {
+ printer.printLn();
+ }
+ }
+ printer.unindent();
+ printer.print("}");
+ }
+
+ @Override
+ public void visit(final EnumConstantDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printer.print(n.getName());
+
+ if (!n.getArgs().isEmpty()) {
+ printArguments(n.getArgs(), arg);
+ }
+
+ if (!n.getClassBody().isEmpty()) {
+ printer.printLn(" {");
+ printer.indent();
+ printMembers(n.getClassBody(), arg);
+ printer.unindent();
+ printer.printLn("}");
+ }
+ }
+
+ @Override
+ public void visit(final EmptyMemberDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final InitializerDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.isStatic()) {
+ printer.print("static ");
+ }
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final IfStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("if (");
+ n.getCondition().accept(this, arg);
+ final boolean thenBlock = n.getThenStmt() instanceof BlockStmt;
+ if (thenBlock) // block statement should start on the same line
+ printer.print(") ");
+ else {
+ printer.printLn(")");
+ printer.indent();
+ }
+ n.getThenStmt().accept(this, arg);
+ if (!thenBlock)
+ printer.unindent();
+ if (n.getElseStmt() != null) {
+ if (thenBlock)
+ printer.print(" ");
+ else
+ printer.printLn();
+ final boolean elseIf = n.getElseStmt() instanceof IfStmt;
+ final boolean elseBlock = n.getElseStmt() instanceof BlockStmt;
+ if (elseIf || elseBlock) // put chained if and start of block statement on a same level
+ printer.print("else ");
+ else {
+ printer.printLn("else");
+ printer.indent();
+ }
+ n.getElseStmt().accept(this, arg);
+ if (!(elseIf || elseBlock))
+ printer.unindent();
+ }
+ }
+
+ @Override
+ public void visit(final WhileStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("while (");
+ n.getCondition().accept(this, arg);
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final ContinueStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("continue");
+ if (n.getId() != null) {
+ printer.print(" ");
+ printer.print(n.getId());
+ }
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final DoStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("do ");
+ n.getBody().accept(this, arg);
+ printer.print(" while (");
+ n.getCondition().accept(this, arg);
+ printer.print(");");
+ }
+
+ @Override
+ public void visit(final ForeachStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("for (");
+ n.getVariable().accept(this, arg);
+ printer.print(" : ");
+ n.getIterable().accept(this, arg);
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final ForStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("for (");
+ if (n.getInit() != null) {
+ for (final Iterator<Expression> i = n.getInit().iterator(); i.hasNext(); ) {
+ final Expression e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print("; ");
+ if (n.getCompare() != null) {
+ n.getCompare().accept(this, arg);
+ }
+ printer.print("; ");
+ if (n.getUpdate() != null) {
+ for (final Iterator<Expression> i = n.getUpdate().iterator(); i.hasNext(); ) {
+ final Expression e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final ThrowStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("throw ");
+ n.getExpr().accept(this, arg);
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final SynchronizedStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("synchronized (");
+ n.getExpr().accept(this, arg);
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final TryStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("try ");
+ if (!n.getResources().isEmpty()) {
+ printer.print("(");
+ Iterator<VariableDeclarationExpr> resources = n.getResources().iterator();
+ boolean first = true;
+ while (resources.hasNext()) {
+ visit(resources.next(), arg);
+ if (resources.hasNext()) {
+ printer.print(";");
+ printer.printLn();
+ if (first) {
+ printer.indent();
+ }
+ }
+ first = false;
+ }
+ if (n.getResources().size() > 1) {
+ printer.unindent();
+ }
+ printer.print(") ");
+ }
+ n.getTryBlock().accept(this, arg);
+ if (n.getCatchs() != null) {
+ for (final CatchClause c : n.getCatchs()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getFinallyBlock() != null) {
+ printer.print(" finally ");
+ n.getFinallyBlock().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(final CatchClause n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(" catch (");
+ n.getParam().accept(this, arg);
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+
+ }
+
+ @Override
+ public void visit(final AnnotationDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ printer.print("@interface ");
+ printer.print(n.getName());
+ printer.printLn(" {");
+ printer.indent();
+ if (n.getMembers() != null) {
+ printMembers(n.getMembers(), arg);
+ }
+ printer.unindent();
+ printer.print("}");
+ }
+
+ @Override
+ public void visit(final AnnotationMemberDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ n.getType().accept(this, arg);
+ printer.print(" ");
+ printer.print(n.getName());
+ printer.print("()");
+ if (n.getDefaultValue() != null) {
+ printer.print(" default ");
+ n.getDefaultValue().accept(this, arg);
+ }
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(final MarkerAnnotationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("@");
+ n.getName().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final SingleMemberAnnotationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("@");
+ n.getName().accept(this, arg);
+ printer.print("(");
+ n.getMemberValue().accept(this, arg);
+ printer.print(")");
+ }
+
+ @Override
+ public void visit(final NormalAnnotationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("@");
+ n.getName().accept(this, arg);
+ printer.print("(");
+ if (n.getPairs() != null) {
+ for (final Iterator<MemberValuePair> i = n.getPairs().iterator(); i.hasNext(); ) {
+ final MemberValuePair m = i.next();
+ m.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+ }
+
+ @Override
+ public void visit(final MemberValuePair n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getName());
+ printer.print(" = ");
+ n.getValue().accept(this, arg);
+ }
+
+ @Override
+ public void visit(final LineComment n, final Object arg) {
+ if (!this.printComments) {
+ return;
+ }
+ printer.print("//");
+ String tmp = n.getContent();
+ tmp = tmp.replace('\r', ' ');
+ tmp = tmp.replace('\n', ' ');
+ printer.printLn(tmp);
+ }
+
+ @Override
+ public void visit(final BlockComment n, final Object arg) {
+ if (!this.printComments) {
+ return;
+ }
+ printer.print("/*");
+ printer.print(n.getContent());
+ printer.printLn("*/");
+ }
+
+ @Override
+ public void visit(LambdaExpr n, Object arg) {
+ printJavaComment(n.getComment(), arg);
+
+ final List<Parameter> parameters = n.getParameters();
+ final boolean printPar = n.isParametersEnclosed();
+
+ if (printPar) {
+ printer.print("(");
+ }
+ if (parameters != null) {
+ for (Iterator<Parameter> i = parameters.iterator(); i.hasNext(); ) {
+ Parameter p = i.next();
+ p.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ if (printPar) {
+ printer.print(")");
+ }
+
+ printer.print(" -> ");
+ final Statement body = n.getBody();
+ if (body instanceof ExpressionStmt) {
+ // Print the expression directly
+ ((ExpressionStmt) body).getExpression().accept(this, arg);
+ } else {
+ body.accept(this, arg);
+ }
+ }
+
+
+ @Override
+ public void visit(MethodReferenceExpr n, Object arg) {
+ printJavaComment(n.getComment(), arg);
+ Expression scope = n.getScope();
+ String identifier = n.getIdentifier();
+ if (scope != null) {
+ n.getScope().accept(this, arg);
+ }
+
+ printer.print("::");
+ printTypeArgs(n, arg);
+ if (identifier != null) {
+ printer.print(identifier);
+ }
+
+ }
+
+ @Override
+ public void visit(TypeExpr n, Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getType() != null) {
+ n.getType().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(ArrayBracketPair arrayBracketPair, Object arg) {
+ printAnnotations(arrayBracketPair.getAnnotations(), true, arg);
+ printer.print("[]");
+ }
+
+ private void printOrphanCommentsBeforeThisChildNode(final Node node) {
+ if (node instanceof Comment) return;
+
+ Node parent = node.getParentNode();
+ if (parent == null) return;
+ List<Node> everything = new LinkedList<>();
+ everything.addAll(parent.getChildrenNodes());
+ sortByBeginPosition(everything);
+ int positionOfTheChild = -1;
+ for (int i = 0; i < everything.size(); i++) {
+ if (everything.get(i) == node) positionOfTheChild = i;
+ }
+ if (positionOfTheChild == -1) throw new RuntimeException("My index not found!!! " + node);
+ int positionOfPreviousChild = -1;
+ for (int i = positionOfTheChild - 1; i >= 0 && positionOfPreviousChild == -1; i--) {
+ if (!(everything.get(i) instanceof Comment)) positionOfPreviousChild = i;
+ }
+ for (int i = positionOfPreviousChild + 1; i < positionOfTheChild; i++) {
+ Node nodeToPrint = everything.get(i);
+ if (!(nodeToPrint instanceof Comment))
+ throw new RuntimeException("Expected comment, instead " + nodeToPrint.getClass() + ". Position of previous child: " + positionOfPreviousChild + ", position of child " + positionOfTheChild);
+ nodeToPrint.accept(this, null);
+ }
+ }
+
+
+ private void printOrphanCommentsEnding(final Node node) {
+ List<Node> everything = new LinkedList<>();
+ everything.addAll(node.getChildrenNodes());
+ sortByBeginPosition(everything);
+ if (everything.isEmpty()) {
+ return;
+ }
+
+ int commentsAtEnd = 0;
+ boolean findingComments = true;
+ while (findingComments && commentsAtEnd < everything.size()) {
+ Node last = everything.get(everything.size() - 1 - commentsAtEnd);
+ findingComments = (last instanceof Comment);
+ if (findingComments) {
+ commentsAtEnd++;
+ }
+ }
+ for (int i = 0; i < commentsAtEnd; i++) {
+ everything.get(everything.size() - commentsAtEnd + i).accept(this, null);
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/EqualsVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/EqualsVisitor.java
new file mode 100644
index 000000000..e10184ce9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/EqualsVisitor.java
@@ -0,0 +1,1514 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import java.util.List;
+
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.expr.ArrayAccessExpr;
+import com.github.javaparser.ast.expr.ArrayCreationExpr;
+import com.github.javaparser.ast.expr.ArrayInitializerExpr;
+import com.github.javaparser.ast.expr.AssignExpr;
+import com.github.javaparser.ast.expr.BinaryExpr;
+import com.github.javaparser.ast.expr.BooleanLiteralExpr;
+import com.github.javaparser.ast.expr.CastExpr;
+import com.github.javaparser.ast.expr.CharLiteralExpr;
+import com.github.javaparser.ast.expr.ClassExpr;
+import com.github.javaparser.ast.expr.ConditionalExpr;
+import com.github.javaparser.ast.expr.DoubleLiteralExpr;
+import com.github.javaparser.ast.expr.EnclosedExpr;
+import com.github.javaparser.ast.expr.FieldAccessExpr;
+import com.github.javaparser.ast.expr.InstanceOfExpr;
+import com.github.javaparser.ast.expr.IntegerLiteralExpr;
+import com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr;
+import com.github.javaparser.ast.expr.LambdaExpr;
+import com.github.javaparser.ast.expr.LongLiteralExpr;
+import com.github.javaparser.ast.expr.LongLiteralMinValueExpr;
+import com.github.javaparser.ast.expr.MarkerAnnotationExpr;
+import com.github.javaparser.ast.expr.MemberValuePair;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.MethodReferenceExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.expr.NormalAnnotationExpr;
+import com.github.javaparser.ast.expr.NullLiteralExpr;
+import com.github.javaparser.ast.expr.ObjectCreationExpr;
+import com.github.javaparser.ast.expr.QualifiedNameExpr;
+import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr;
+import com.github.javaparser.ast.expr.StringLiteralExpr;
+import com.github.javaparser.ast.expr.SuperExpr;
+import com.github.javaparser.ast.expr.ThisExpr;
+import com.github.javaparser.ast.expr.TypeExpr;
+import com.github.javaparser.ast.expr.UnaryExpr;
+import com.github.javaparser.ast.expr.VariableDeclarationExpr;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class EqualsVisitor implements GenericVisitor<Boolean, Node> {
+
+ private static final EqualsVisitor SINGLETON = new EqualsVisitor();
+
+ public static boolean equals(final Node n1, final Node n2) {
+ return SINGLETON.nodeEquals(n1, n2);
+ }
+
+ private EqualsVisitor() {
+ // hide constructor
+ }
+
+ /**
+ * Check for equality that can be applied to each kind of node,
+ * to not repeat it in every method we store that here.
+ */
+ private boolean commonNodeEquality(Node n1, Node n2) {
+ if (!nodeEquals(n1.getComment(), n2.getComment())) {
+ return false;
+ }
+ return nodesEquals(n1.getOrphanComments(), n2.getOrphanComments());
+ }
+
+ private <T extends Node> boolean nodesEquals(final List<T> nodes1, final List<T> nodes2) {
+ if (nodes1 == null) {
+ return nodes2 == null;
+ } else if (nodes2 == null) {
+ return false;
+ }
+ if (nodes1.size() != nodes2.size()) {
+ return false;
+ }
+ for (int i = 0; i < nodes1.size(); i++) {
+ if (!nodeEquals(nodes1.get(i), nodes2.get(i))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private <T extends Node> boolean nodeEquals(final T n1, final T n2) {
+ if (n1 == n2) {
+ return true;
+ }
+ if (n1 == null || n2 == null) {
+ return false;
+ }
+ if (n1.getClass() != n2.getClass()) {
+ return false;
+ }
+ if (!commonNodeEquality(n1, n2)){
+ return false;
+ }
+ return n1.accept(this, n2);
+ }
+
+ private boolean objEquals(final Object n1, final Object n2) {
+ if (n1 == n2) {
+ return true;
+ }
+ if (n1 == null || n2 == null) {
+ return false;
+ }
+ return n1.equals(n2);
+ }
+
+ @Override public Boolean visit(final CompilationUnit n1, final Node arg) {
+ final CompilationUnit n2 = (CompilationUnit) arg;
+
+ if (!nodeEquals(n1.getPackage(), n2.getPackage())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getImports(), n2.getImports())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getTypes(), n2.getTypes())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getComments(), n2.getComments())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final PackageDeclaration n1, final Node arg) {
+ final PackageDeclaration n2 = (PackageDeclaration) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ImportDeclaration n1, final Node arg) {
+ final ImportDeclaration n2 = (ImportDeclaration) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final TypeParameter n1, final Node arg) {
+ final TypeParameter n2 = (TypeParameter) arg;
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getTypeBound(), n2.getTypeBound())) {
+ return false;
+ }
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override public Boolean visit(final LineComment n1, final Node arg) {
+ final LineComment n2 = (LineComment) arg;
+
+ if (!objEquals(n1.getContent(), n2.getContent())) {
+ return false;
+ }
+
+ if (!objEquals(n1.getBegin().line, n2.getBegin().line)) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final BlockComment n1, final Node arg) {
+ final BlockComment n2 = (BlockComment) arg;
+
+ if (!objEquals(n1.getContent(), n2.getContent())) {
+ return false;
+ }
+
+ if (!objEquals(n1.getBegin().line, n2.getBegin().line)) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ClassOrInterfaceDeclaration n1, final Node arg) {
+ final ClassOrInterfaceDeclaration n2 = (ClassOrInterfaceDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (!n1.getModifiers().equals(n2.getModifiers())) {
+ return false;
+ }
+
+ if (n1.isInterface() != n2.isInterface()) {
+ return false;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getTypeParameters(), n2.getTypeParameters())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getExtends(), n2.getExtends())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getImplements(), n2.getImplements())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getMembers(), n2.getMembers())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final EnumDeclaration n1, final Node arg) {
+ final EnumDeclaration n2 = (EnumDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (!n1.getModifiers().equals(n2.getModifiers())) {
+ return false;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getImplements(), n2.getImplements())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getEntries(), n2.getEntries())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getMembers(), n2.getMembers())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final EmptyTypeDeclaration n1, final Node arg) {
+ return true;
+ }
+
+ @Override public Boolean visit(final EnumConstantDeclaration n1, final Node arg) {
+ final EnumConstantDeclaration n2 = (EnumConstantDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getArgs(), n2.getArgs())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getClassBody(), n2.getClassBody())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final AnnotationDeclaration n1, final Node arg) {
+ final AnnotationDeclaration n2 = (AnnotationDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (!n1.getModifiers().equals(n2.getModifiers())) {
+ return false;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getMembers(), n2.getMembers())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final AnnotationMemberDeclaration n1, final Node arg) {
+ final AnnotationMemberDeclaration n2 = (AnnotationMemberDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (!n1.getModifiers().equals(n2.getModifiers())) {
+ return false;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getDefaultValue(), n2.getDefaultValue())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final FieldDeclaration n1, final Node arg) {
+ final FieldDeclaration n2 = (FieldDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (!n1.getModifiers().equals(n2.getModifiers())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getElementType(), n2.getElementType())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getVariables(), n2.getVariables())) {
+ return false;
+ }
+
+ if(!nodesEquals(n1.getArrayBracketPairsAfterElementType(), n2.getArrayBracketPairsAfterElementType())){
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final VariableDeclarator n1, final Node arg) {
+ final VariableDeclarator n2 = (VariableDeclarator) arg;
+
+ if (!nodeEquals(n1.getId(), n2.getId())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getInit(), n2.getInit())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final VariableDeclaratorId n1, final Node arg) {
+ final VariableDeclaratorId n2 = (VariableDeclaratorId) arg;
+
+ if(!nodesEquals(n1.getArrayBracketPairsAfterId(), n2.getArrayBracketPairsAfterId())){
+ return false;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ConstructorDeclaration n1, final Node arg) {
+ final ConstructorDeclaration n2 = (ConstructorDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (!n1.getModifiers().equals(n2.getModifiers())) {
+ return false;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getParameters(), n2.getParameters())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getThrows(), n2.getThrows())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getTypeParameters(), n2.getTypeParameters())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final MethodDeclaration n1, final Node arg) {
+ final MethodDeclaration n2 = (MethodDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (!n1.getModifiers().equals(n2.getModifiers())) {
+ return false;
+ }
+
+ if(!nodesEquals(n1.getArrayBracketPairsAfterElementType(), n2.getArrayBracketPairsAfterElementType())){
+ return false;
+ }
+
+ if(!nodesEquals(n1.getArrayBracketPairsAfterParameterList(), n2.getArrayBracketPairsAfterParameterList())){
+ return false;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getElementType(), n2.getElementType())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getParameters(), n2.getParameters())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getThrows(), n2.getThrows())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getTypeParameters(), n2.getTypeParameters())) {
+ return false;
+ }
+ if(n1.isDefault() != n2.isDefault()){
+ return false;
+ }
+ return true;
+ }
+
+ @Override public Boolean visit(final Parameter n1, final Node arg) {
+ final Parameter n2 = (Parameter) arg;
+ if (!nodeEquals(n1.getElementType(), n2.getElementType())) {
+ return false;
+ }
+
+ if(!nodesEquals(n1.getArrayBracketPairsAfterElementType(), n2.getArrayBracketPairsAfterElementType())){
+ return false;
+ }
+
+ if (!n1.getModifiers().equals(n2.getModifiers())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getId(), n2.getId())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final EmptyMemberDeclaration n1, final Node arg) {
+ return true;
+ }
+
+ @Override public Boolean visit(final InitializerDeclaration n1, final Node arg) {
+ final InitializerDeclaration n2 = (InitializerDeclaration) arg;
+
+ if (!nodeEquals(n1.getBlock(), n2.getBlock())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final JavadocComment n1, final Node arg) {
+ final JavadocComment n2 = (JavadocComment) arg;
+
+ if (!objEquals(n1.getContent(), n2.getContent())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ClassOrInterfaceType n1, final Node arg) {
+ final ClassOrInterfaceType n2 = (ClassOrInterfaceType) arg;
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getScope(), n2.getScope())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getTypeArguments(), n2.getTypeArguments())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final PrimitiveType n1, final Node arg) {
+ final PrimitiveType n2 = (PrimitiveType) arg;
+
+ if (n1.getType() != n2.getType()) {
+ return false;
+ }
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public Boolean visit(ArrayType n1, Node arg) {
+ final ArrayType n2 = (ArrayType) arg;
+
+ if (!nodeEquals(n1.getComponentType(), n2.getComponentType())) {
+ return false;
+ }
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public Boolean visit(ArrayCreationLevel n1, Node arg) {
+ final ArrayCreationLevel n2 = (ArrayCreationLevel) arg;
+
+ if (!nodeEquals(n1.getDimension(), n2.getDimension())) {
+ return false;
+ }
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override public Boolean visit(final IntersectionType n1, final Node arg) {
+ final IntersectionType n2 = (IntersectionType) arg;
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ List<ReferenceType> n1Elements = n1.getElements();
+ List<ReferenceType> n2Elements = n2.getElements();
+
+ if (n1Elements !=null && n2Elements != null) {
+ if(n1Elements.size() != n2Elements.size()){
+ return false;
+ }
+ else{
+ int i = 0;
+ for(ReferenceType aux: n1Elements){
+ if(aux.accept(this, n2Elements.get(i))) {
+ return false;
+ }
+ i++;
+ }
+ }
+ } else if (n1Elements != n2Elements){
+ return false;
+ }
+ return true;
+ }
+
+ @Override public Boolean visit(final UnionType n1, final Node arg) {
+ final UnionType n2 = (UnionType) arg;
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ List<ReferenceType> n1Elements = n1.getElements();
+ List<ReferenceType> n2Elements = n2.getElements();
+
+ if (n1Elements !=null && n2Elements != null) {
+ if(n1Elements.size() != n2Elements.size()){
+ return false;
+ }
+ else{
+ int i = 0;
+ for(ReferenceType aux: n1Elements){
+ if(aux.accept(this, n2Elements.get(i))) {
+ return false;
+ }
+ i++;
+ }
+ }
+ } else if (n1Elements != n2Elements){
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public Boolean visit(VoidType n1, Node arg) {
+ VoidType n2 = (VoidType) arg;
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override public Boolean visit(final WildcardType n1, final Node arg) {
+ final WildcardType n2 = (WildcardType) arg;
+
+ if (!nodeEquals(n1.getExtends(), n2.getExtends())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getSuper(), n2.getSuper())) {
+ return false;
+ }
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override public Boolean visit(final UnknownType n1, final Node arg) {
+ return true;
+ }
+
+ @Override public Boolean visit(final ArrayAccessExpr n1, final Node arg) {
+ final ArrayAccessExpr n2 = (ArrayAccessExpr) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getIndex(), n2.getIndex())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ArrayCreationExpr n1, final Node arg) {
+ final ArrayCreationExpr n2 = (ArrayCreationExpr) arg;
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getLevels(), n2.getLevels())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getInitializer(), n2.getInitializer())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ArrayInitializerExpr n1, final Node arg) {
+ final ArrayInitializerExpr n2 = (ArrayInitializerExpr) arg;
+
+ if (!nodesEquals(n1.getValues(), n2.getValues())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final AssignExpr n1, final Node arg) {
+ final AssignExpr n2 = (AssignExpr) arg;
+
+ if (n1.getOperator() != n2.getOperator()) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getTarget(), n2.getTarget())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getValue(), n2.getValue())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final BinaryExpr n1, final Node arg) {
+ final BinaryExpr n2 = (BinaryExpr) arg;
+
+ if (n1.getOperator() != n2.getOperator()) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getLeft(), n2.getLeft())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getRight(), n2.getRight())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final CastExpr n1, final Node arg) {
+ final CastExpr n2 = (CastExpr) arg;
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ClassExpr n1, final Node arg) {
+ final ClassExpr n2 = (ClassExpr) arg;
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ConditionalExpr n1, final Node arg) {
+ final ConditionalExpr n2 = (ConditionalExpr) arg;
+
+ if (!nodeEquals(n1.getCondition(), n2.getCondition())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getThenExpr(), n2.getThenExpr())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getElseExpr(), n2.getElseExpr())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final EnclosedExpr n1, final Node arg) {
+ final EnclosedExpr n2 = (EnclosedExpr) arg;
+
+ if (!nodeEquals(n1.getInner(), n2.getInner())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final FieldAccessExpr n1, final Node arg) {
+ final FieldAccessExpr n2 = (FieldAccessExpr) arg;
+
+ if (!nodeEquals(n1.getScope(), n2.getScope())) {
+ return false;
+ }
+
+ if (!objEquals(n1.getField(), n2.getField())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getTypeArguments(), n2.getTypeArguments())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final InstanceOfExpr n1, final Node arg) {
+ final InstanceOfExpr n2 = (InstanceOfExpr) arg;
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final StringLiteralExpr n1, final Node arg) {
+ final StringLiteralExpr n2 = (StringLiteralExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final IntegerLiteralExpr n1, final Node arg) {
+ final IntegerLiteralExpr n2 = (IntegerLiteralExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final LongLiteralExpr n1, final Node arg) {
+ final LongLiteralExpr n2 = (LongLiteralExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final IntegerLiteralMinValueExpr n1, final Node arg) {
+ final IntegerLiteralMinValueExpr n2 = (IntegerLiteralMinValueExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final LongLiteralMinValueExpr n1, final Node arg) {
+ final LongLiteralMinValueExpr n2 = (LongLiteralMinValueExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final CharLiteralExpr n1, final Node arg) {
+ final CharLiteralExpr n2 = (CharLiteralExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final DoubleLiteralExpr n1, final Node arg) {
+ final DoubleLiteralExpr n2 = (DoubleLiteralExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final BooleanLiteralExpr n1, final Node arg) {
+ final BooleanLiteralExpr n2 = (BooleanLiteralExpr) arg;
+
+ if (n1.getValue() != n2.getValue()) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final NullLiteralExpr n1, final Node arg) {
+ return true;
+ }
+
+ @Override public Boolean visit(final MethodCallExpr n1, final Node arg) {
+ final MethodCallExpr n2 = (MethodCallExpr) arg;
+
+ if (!nodeEquals(n1.getScope(), n2.getScope())) {
+ return false;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getArgs(), n2.getArgs())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getTypeArguments(), n2.getTypeArguments())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final NameExpr n1, final Node arg) {
+ final NameExpr n2 = (NameExpr) arg;
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ObjectCreationExpr n1, final Node arg) {
+ final ObjectCreationExpr n2 = (ObjectCreationExpr) arg;
+
+ if (!nodeEquals(n1.getScope(), n2.getScope())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnonymousClassBody(), n2.getAnonymousClassBody())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getArgs(), n2.getArgs())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getTypeArguments(), n2.getTypeArguments())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final QualifiedNameExpr n1, final Node arg) {
+ final QualifiedNameExpr n2 = (QualifiedNameExpr) arg;
+
+ if (!nodeEquals(n1.getQualifier(), n2.getQualifier())) {
+ return false;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ThisExpr n1, final Node arg) {
+ final ThisExpr n2 = (ThisExpr) arg;
+
+ if (!nodeEquals(n1.getClassExpr(), n2.getClassExpr())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final SuperExpr n1, final Node arg) {
+ final SuperExpr n2 = (SuperExpr) arg;
+
+ if (!nodeEquals(n1.getClassExpr(), n2.getClassExpr())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final UnaryExpr n1, final Node arg) {
+ final UnaryExpr n2 = (UnaryExpr) arg;
+
+ if (n1.getOperator() != n2.getOperator()) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final VariableDeclarationExpr n1, final Node arg) {
+ final VariableDeclarationExpr n2 = (VariableDeclarationExpr) arg;
+
+ if (!n1.getModifiers().equals(n2.getModifiers())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getElementType(), n2.getElementType())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getVariables(), n2.getVariables())) {
+ return false;
+ }
+
+ if(!nodesEquals(n1.getArrayBracketPairsAfterElementType(), n2.getArrayBracketPairsAfterElementType())){
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final MarkerAnnotationExpr n1, final Node arg) {
+ final MarkerAnnotationExpr n2 = (MarkerAnnotationExpr) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final SingleMemberAnnotationExpr n1, final Node arg) {
+ final SingleMemberAnnotationExpr n2 = (SingleMemberAnnotationExpr) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getMemberValue(), n2.getMemberValue())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final NormalAnnotationExpr n1, final Node arg) {
+ final NormalAnnotationExpr n2 = (NormalAnnotationExpr) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getPairs(), n2.getPairs())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final MemberValuePair n1, final Node arg) {
+ final MemberValuePair n2 = (MemberValuePair) arg;
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getValue(), n2.getValue())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ExplicitConstructorInvocationStmt n1, final Node arg) {
+ final ExplicitConstructorInvocationStmt n2 = (ExplicitConstructorInvocationStmt) arg;
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getArgs(), n2.getArgs())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getTypeArguments(), n2.getTypeArguments())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final TypeDeclarationStmt n1, final Node arg) {
+ final TypeDeclarationStmt n2 = (TypeDeclarationStmt) arg;
+
+ if (!nodeEquals(n1.getTypeDeclaration(), n2.getTypeDeclaration())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final AssertStmt n1, final Node arg) {
+ final AssertStmt n2 = (AssertStmt) arg;
+
+ if (!nodeEquals(n1.getCheck(), n2.getCheck())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getMessage(), n2.getMessage())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final BlockStmt n1, final Node arg) {
+ final BlockStmt n2 = (BlockStmt) arg;
+
+ if (!nodesEquals(n1.getStmts(), n2.getStmts())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final LabeledStmt n1, final Node arg) {
+ final LabeledStmt n2 = (LabeledStmt) arg;
+
+ if (!nodeEquals(n1.getStmt(), n2.getStmt())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final EmptyStmt n1, final Node arg) {
+ return true;
+ }
+
+ @Override public Boolean visit(final ExpressionStmt n1, final Node arg) {
+ final ExpressionStmt n2 = (ExpressionStmt) arg;
+
+ if (!nodeEquals(n1.getExpression(), n2.getExpression())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final SwitchStmt n1, final Node arg) {
+ final SwitchStmt n2 = (SwitchStmt) arg;
+
+ if (!nodeEquals(n1.getSelector(), n2.getSelector())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getEntries(), n2.getEntries())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final SwitchEntryStmt n1, final Node arg) {
+ final SwitchEntryStmt n2 = (SwitchEntryStmt) arg;
+
+ if (!nodeEquals(n1.getLabel(), n2.getLabel())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getStmts(), n2.getStmts())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final BreakStmt n1, final Node arg) {
+ final BreakStmt n2 = (BreakStmt) arg;
+
+ if (!objEquals(n1.getId(), n2.getId())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ReturnStmt n1, final Node arg) {
+ final ReturnStmt n2 = (ReturnStmt) arg;
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final IfStmt n1, final Node arg) {
+ final IfStmt n2 = (IfStmt) arg;
+
+ if (!nodeEquals(n1.getCondition(), n2.getCondition())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getThenStmt(), n2.getThenStmt())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getElseStmt(), n2.getElseStmt())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final WhileStmt n1, final Node arg) {
+ final WhileStmt n2 = (WhileStmt) arg;
+
+ if (!nodeEquals(n1.getCondition(), n2.getCondition())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ContinueStmt n1, final Node arg) {
+ final ContinueStmt n2 = (ContinueStmt) arg;
+
+ if (!objEquals(n1.getId(), n2.getId())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final DoStmt n1, final Node arg) {
+ final DoStmt n2 = (DoStmt) arg;
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getCondition(), n2.getCondition())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ForeachStmt n1, final Node arg) {
+ final ForeachStmt n2 = (ForeachStmt) arg;
+
+ if (!nodeEquals(n1.getVariable(), n2.getVariable())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getIterable(), n2.getIterable())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ForStmt n1, final Node arg) {
+ final ForStmt n2 = (ForStmt) arg;
+
+ if (!nodesEquals(n1.getInit(), n2.getInit())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getCompare(), n2.getCompare())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getUpdate(), n2.getUpdate())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final ThrowStmt n1, final Node arg) {
+ final ThrowStmt n2 = (ThrowStmt) arg;
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final SynchronizedStmt n1, final Node arg) {
+ final SynchronizedStmt n2 = (SynchronizedStmt) arg;
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final TryStmt n1, final Node arg) {
+ final TryStmt n2 = (TryStmt) arg;
+
+ if (!nodeEquals(n1.getTryBlock(), n2.getTryBlock())) {
+ return false;
+ }
+
+ if (!nodesEquals(n1.getCatchs(), n2.getCatchs())) {
+ return false;
+ }
+
+ if(!nodesEquals(n1.getResources(), n2.getResources())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getFinallyBlock(), n2.getFinallyBlock())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override public Boolean visit(final CatchClause n1, final Node arg) {
+ final CatchClause n2 = (CatchClause) arg;
+
+ if (!nodeEquals(n1.getParam(), n2.getParam())) {
+ return false;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public Boolean visit(LambdaExpr n1, Node arg) {
+ LambdaExpr n2 = (LambdaExpr) arg;
+ if (!nodesEquals(n1.getParameters(), n2.getParameters())) {
+ return false;
+ }
+ if(n1.isParametersEnclosed() != n2.isParametersEnclosed()){
+ return false;
+ }
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public Boolean visit(MethodReferenceExpr n1, Node arg) {
+ MethodReferenceExpr n2 = (MethodReferenceExpr) arg;
+ if (!nodeEquals(n1.getScope(), n2.getScope())) {
+ return false;
+ }
+ if (!nodesEquals(n1.getTypeArguments(), n2.getTypeArguments())) {
+ return false;
+ }
+ if (!objEquals(n1.getIdentifier(), n2.getIdentifier())) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public Boolean visit(TypeExpr n, Node arg) {
+ TypeExpr n2 = (TypeExpr) arg;
+ if (!nodeEquals(n.getType(), n2.getType())) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public Boolean visit(ArrayBracketPair n1, Node arg) {
+ ArrayBracketPair n2 = (ArrayBracketPair) arg;
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/GenericVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/GenericVisitor.java
new file mode 100644
index 000000000..9f4e9bc7f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/GenericVisitor.java
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+/**
+ * A visitor that has a return value.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public interface GenericVisitor<R, A> {
+
+ //- Compilation Unit ----------------------------------
+
+ R visit(CompilationUnit n, A arg);
+
+ R visit(PackageDeclaration n, A arg);
+
+ R visit(ImportDeclaration n, A arg);
+
+ R visit(TypeParameter n, A arg);
+
+ R visit(LineComment n, A arg);
+
+ R visit(BlockComment n, A arg);
+
+ //- Body ----------------------------------------------
+
+ R visit(ClassOrInterfaceDeclaration n, A arg);
+
+ R visit(EnumDeclaration n, A arg);
+
+ R visit(EmptyTypeDeclaration n, A arg);
+
+ R visit(EnumConstantDeclaration n, A arg);
+
+ R visit(AnnotationDeclaration n, A arg);
+
+ R visit(AnnotationMemberDeclaration n, A arg);
+
+ R visit(FieldDeclaration n, A arg);
+
+ R visit(VariableDeclarator n, A arg);
+
+ R visit(VariableDeclaratorId n, A arg);
+
+ R visit(ConstructorDeclaration n, A arg);
+
+ R visit(MethodDeclaration n, A arg);
+
+ R visit(Parameter n, A arg);
+
+ R visit(EmptyMemberDeclaration n, A arg);
+
+ R visit(InitializerDeclaration n, A arg);
+
+ R visit(JavadocComment n, A arg);
+
+ //- Type ----------------------------------------------
+
+ R visit(ClassOrInterfaceType n, A arg);
+
+ R visit(PrimitiveType n, A arg);
+
+ R visit(ArrayType n, A arg);
+
+ R visit(ArrayCreationLevel n, A arg);
+
+ R visit(IntersectionType n, A arg);
+
+ R visit(UnionType n, A arg);
+
+ R visit(VoidType n, A arg);
+
+ R visit(WildcardType n, A arg);
+
+ R visit(UnknownType n, A arg);
+
+ //- Expression ----------------------------------------
+
+ R visit(ArrayAccessExpr n, A arg);
+
+ R visit(ArrayCreationExpr n, A arg);
+
+ R visit(ArrayInitializerExpr n, A arg);
+
+ R visit(AssignExpr n, A arg);
+
+ R visit(BinaryExpr n, A arg);
+
+ R visit(CastExpr n, A arg);
+
+ R visit(ClassExpr n, A arg);
+
+ R visit(ConditionalExpr n, A arg);
+
+ R visit(EnclosedExpr n, A arg);
+
+ R visit(FieldAccessExpr n, A arg);
+
+ R visit(InstanceOfExpr n, A arg);
+
+ R visit(StringLiteralExpr n, A arg);
+
+ R visit(IntegerLiteralExpr n, A arg);
+
+ R visit(LongLiteralExpr n, A arg);
+
+ R visit(IntegerLiteralMinValueExpr n, A arg);
+
+ R visit(LongLiteralMinValueExpr n, A arg);
+
+ R visit(CharLiteralExpr n, A arg);
+
+ R visit(DoubleLiteralExpr n, A arg);
+
+ R visit(BooleanLiteralExpr n, A arg);
+
+ R visit(NullLiteralExpr n, A arg);
+
+ R visit(MethodCallExpr n, A arg);
+
+ R visit(NameExpr n, A arg);
+
+ R visit(ObjectCreationExpr n, A arg);
+
+ R visit(QualifiedNameExpr n, A arg);
+
+ R visit(ThisExpr n, A arg);
+
+ R visit(SuperExpr n, A arg);
+
+ R visit(UnaryExpr n, A arg);
+
+ R visit(VariableDeclarationExpr n, A arg);
+
+ R visit(MarkerAnnotationExpr n, A arg);
+
+ R visit(SingleMemberAnnotationExpr n, A arg);
+
+ R visit(NormalAnnotationExpr n, A arg);
+
+ R visit(MemberValuePair n, A arg);
+
+ //- Statements ----------------------------------------
+
+ R visit(ExplicitConstructorInvocationStmt n, A arg);
+
+ R visit(TypeDeclarationStmt n, A arg);
+
+ R visit(AssertStmt n, A arg);
+
+ R visit(BlockStmt n, A arg);
+
+ R visit(LabeledStmt n, A arg);
+
+ R visit(EmptyStmt n, A arg);
+
+ R visit(ExpressionStmt n, A arg);
+
+ R visit(SwitchStmt n, A arg);
+
+ R visit(SwitchEntryStmt n, A arg);
+
+ R visit(BreakStmt n, A arg);
+
+ R visit(ReturnStmt n, A arg);
+
+ R visit(IfStmt n, A arg);
+
+ R visit(WhileStmt n, A arg);
+
+ R visit(ContinueStmt n, A arg);
+
+ R visit(DoStmt n, A arg);
+
+ R visit(ForeachStmt n, A arg);
+
+ R visit(ForStmt n, A arg);
+
+ R visit(ThrowStmt n, A arg);
+
+ R visit(SynchronizedStmt n, A arg);
+
+ R visit(TryStmt n, A arg);
+
+ R visit(CatchClause n, A arg);
+
+ R visit(LambdaExpr n, A arg);
+
+ R visit(MethodReferenceExpr n, A arg);
+
+ R visit(TypeExpr n, A arg);
+
+ R visit(ArrayBracketPair arrayBracketPair, A arg);
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java
new file mode 100644
index 000000000..af01fdffb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java
@@ -0,0 +1,1677 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.body.*;
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.*;
+import com.github.javaparser.ast.type.*;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class GenericVisitorAdapter<R, A> implements GenericVisitor<R, A> {
+
+ @Override
+ public R visit(final AnnotationDeclaration n, final A arg) {
+ visitComment(n, arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration<?> member : n.getMembers()) {
+ {
+ R result = member.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final AnnotationMemberDeclaration n, final A arg) {
+ visitComment(n, arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getDefaultValue() != null) {
+ {
+ R result = n.getDefaultValue().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ArrayAccessExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getIndex().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ArrayCreationExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ for(ArrayCreationLevel level: n.getLevels()){
+ R result = level.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getInitializer() != null) {
+ R result = n.getInitializer().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ArrayInitializerExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getValues() != null) {
+ for (final Expression expr : n.getValues()) {
+ {
+ R result = expr.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final AssertStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getCheck().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getMessage() != null) {
+ {
+ R result = n.getMessage().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final AssignExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getTarget().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getValue().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final BinaryExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getLeft().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getRight().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final BlockStmt n, final A arg) {
+ visitComment(n, arg);
+ if (n.getStmts() != null) {
+ for (final Statement s : n.getStmts()) {
+ {
+ R result = s.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+
+ }
+
+ @Override
+ public R visit(final BooleanLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final BreakStmt n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final CastExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final CatchClause n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getParam().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+
+ }
+
+ @Override
+ public R visit(final CharLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final ClassExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ClassOrInterfaceDeclaration n, final A arg) {
+ visitComment(n, arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ {
+ R result = t.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getExtends() != null) {
+ for (final ClassOrInterfaceType c : n.getExtends()) {
+ {
+ R result = c.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+
+ if (n.getImplements() != null) {
+ for (final ClassOrInterfaceType c : n.getImplements()) {
+ {
+ R result = c.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration<?> member : n.getMembers()) {
+ {
+ R result = member.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ClassOrInterfaceType n, final A arg) {
+ visitComment(n, arg);
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getScope() != null) {
+ {
+ R result = n.getScope().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getTypeArguments() != null) {
+ for (Type<?> type : n.getTypeArguments()) {
+ R result = type.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final CompilationUnit n, final A arg) {
+ visitComment(n, arg);
+ if (n.getPackage() != null) {
+ {
+ R result = n.getPackage().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getImports() != null) {
+ for (final ImportDeclaration i : n.getImports()) {
+ {
+ R result = i.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getTypes() != null) {
+ for (final TypeDeclaration<?> typeDeclaration : n.getTypes()) {
+ {
+ R result = typeDeclaration.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ConditionalExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getCondition().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getThenExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getElseExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ConstructorDeclaration n, final A arg) {
+ visitComment(n, arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ {
+ R result = t.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getParameters() != null) {
+ for (final Parameter p : n.getParameters()) {
+ {
+ R result = p.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getThrows() != null) {
+ for (final ReferenceType name : n.getThrows()) {
+ {
+ R result = name.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ContinueStmt n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final DoStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getCondition().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final DoubleLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final EmptyMemberDeclaration n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final EmptyStmt n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final EmptyTypeDeclaration n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final EnclosedExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getInner().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final EnumConstantDeclaration n, final A arg) {
+ visitComment(n, arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getClassBody() != null) {
+ for (final BodyDeclaration<?> member : n.getClassBody()) {
+ {
+ R result = member.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final EnumDeclaration n, final A arg) {
+ visitComment(n, arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getImplements() != null) {
+ for (final ClassOrInterfaceType c : n.getImplements()) {
+ {
+ R result = c.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getEntries() != null) {
+ for (final EnumConstantDeclaration e : n.getEntries()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration<?> member : n.getMembers()) {
+ {
+ R result = member.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ExplicitConstructorInvocationStmt n, final A arg) {
+ visitComment(n, arg);
+ if (!n.isThis() && n.getExpr() != null) {
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getTypeArguments() != null) {
+ for (Type<?> type : n.getTypeArguments()) {
+ R result = type.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ExpressionStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getExpression().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final FieldAccessExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getScope().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ if (n.getTypeArguments() != null) {
+ for (Type<?> type : n.getTypeArguments()) {
+ R result = type.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final FieldDeclaration n, final A arg) {
+ visitComment(n, arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getElementType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ for (final VariableDeclarator var : n.getVariables()) {
+ {
+ R result = var.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ForeachStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getVariable().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getIterable().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ForStmt n, final A arg) {
+ visitComment(n, arg);
+ if (n.getInit() != null) {
+ for (final Expression e : n.getInit()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getCompare() != null) {
+ {
+ R result = n.getCompare().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getUpdate() != null) {
+ for (final Expression e : n.getUpdate()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final IfStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getCondition().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getThenStmt().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getElseStmt() != null) {
+ {
+ R result = n.getElseStmt().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ImportDeclaration n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final InitializerDeclaration n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getBlock().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final InstanceOfExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final IntegerLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final IntegerLiteralMinValueExpr n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final JavadocComment n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final LabeledStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getStmt().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final LongLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final LongLiteralMinValueExpr n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final MarkerAnnotationExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final MemberValuePair n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getValue().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final MethodCallExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getScope() != null) {
+ {
+ R result = n.getScope().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getTypeArguments() != null) {
+ for (Type<?> type : n.getTypeArguments()) {
+ R result = type.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final MethodDeclaration n, final A arg) {
+ visitComment(n, arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ {
+ R result = t.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getElementType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getParameters() != null) {
+ for (final Parameter p : n.getParameters()) {
+ {
+ R result = p.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getThrows() != null) {
+ for (final ReferenceType name : n.getThrows()) {
+ {
+ R result = name.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getBody() != null) {
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final NameExpr n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final NormalAnnotationExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getPairs() != null) {
+ for (final MemberValuePair m : n.getPairs()) {
+ {
+ R result = m.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final NullLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final ObjectCreationExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getScope() != null) {
+ {
+ R result = n.getScope().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getTypeArguments() != null) {
+ for (Type<?> type : n.getTypeArguments()) {
+ R result = type.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getAnonymousClassBody() != null) {
+ for (final BodyDeclaration<?> member : n.getAnonymousClassBody()) {
+ {
+ R result = member.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final PackageDeclaration n, final A arg) {
+ visitComment(n, arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final Parameter n, final A arg) {
+ visitComment(n, arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getElementType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getId().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final PrimitiveType n, final A arg) {
+ visitComment(n, arg);
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final QualifiedNameExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getQualifier().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ArrayType n, A arg) {
+ visitComment(n, arg);
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getComponentType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ArrayCreationLevel n, A arg) {
+ visitComment(n, arg);
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ if(n.getDimension()!=null) {
+ R result = n.getDimension().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final IntersectionType n, final A arg) {
+ visitComment(n, arg);
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ for (ReferenceType element : n.getElements()) {
+ R result = element.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final UnionType n, final A arg) {
+ visitComment(n, arg);
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ for (ReferenceType element : n.getElements()) {
+ R result = element.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ReturnStmt n, final A arg) {
+ visitComment(n, arg);
+ if (n.getExpr() != null) {
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final SingleMemberAnnotationExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getMemberValue().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final StringLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final SuperExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getClassExpr() != null) {
+ {
+ R result = n.getClassExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final SwitchEntryStmt n, final A arg) {
+ visitComment(n, arg);
+ if (n.getLabel() != null) {
+ {
+ R result = n.getLabel().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getStmts() != null) {
+ for (final Statement s : n.getStmts()) {
+ {
+ R result = s.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final SwitchStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getSelector().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getEntries() != null) {
+ for (final SwitchEntryStmt e : n.getEntries()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+
+ }
+
+ @Override
+ public R visit(final SynchronizedStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ if (n.getExpr() != null) {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ThisExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getClassExpr() != null) {
+ {
+ R result = n.getClassExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ThrowStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final TryStmt n, final A arg) {
+ visitComment(n, arg);
+ if (n.getResources() != null) {
+ for (final VariableDeclarationExpr v : n.getResources()) {
+ {
+ R result = v.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getTryBlock().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getCatchs() != null) {
+ for (final CatchClause c : n.getCatchs()) {
+ {
+ R result = c.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getFinallyBlock() != null) {
+ {
+ R result = n.getFinallyBlock().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final TypeDeclarationStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getTypeDeclaration().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final TypeParameter n, final A arg) {
+ visitComment(n, arg);
+ if (n.getTypeBound() != null) {
+ for (final ClassOrInterfaceType c : n.getTypeBound()) {
+ {
+ R result = c.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final UnaryExpr n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final UnknownType n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final VariableDeclarationExpr n, final A arg) {
+ visitComment(n, arg);
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getElementType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ for (final VariableDeclarator v : n.getVariables()) {
+ {
+ R result = v.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final VariableDeclarator n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getId().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getInit() != null) {
+ {
+ R result = n.getInit().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final VariableDeclaratorId n, final A arg) {
+ visitComment(n, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(final VoidType n, final A arg) {
+ visitComment(n, arg);
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final WhileStmt n, final A arg) {
+ visitComment(n, arg);
+ {
+ R result = n.getCondition().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final WildcardType n, final A arg) {
+ visitComment(n, arg);
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getExtends() != null) {
+ {
+ R result = n.getExtends().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getSuper() != null) {
+ {
+ R result = n.getSuper().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(LambdaExpr n, A arg) {
+ visitComment(n, arg);
+ if (n.getParameters() != null) {
+ for (final Parameter a : n.getParameters()) {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getBody() != null) {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(MethodReferenceExpr n, A arg) {
+ visitComment(n, arg);
+ {
+ if (n.getTypeArguments() != null) {
+ for (Type<?> type : n.getTypeArguments()) {
+ R result = type.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getScope() != null) {
+ R result = n.getScope().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(TypeExpr n, A arg){
+ visitComment(n, arg);
+ if (n.getType() != null) {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ArrayBracketPair n, A arg) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final BlockComment n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final LineComment n, final A arg) {
+ return null;
+ }
+
+ private void visitComment(Node n, A arg) {
+ if(n.getComment()!=null){
+ Comment result = (Comment) n.getComment().accept(this, arg);
+ if(result!=null){
+ n.setComment(result);
+ }
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/ModifierVisitorAdapter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/ModifierVisitorAdapter.java
new file mode 100644
index 000000000..78b0e2931
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/ModifierVisitorAdapter.java
@@ -0,0 +1,1149 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import java.util.List;
+
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.ArrayAccessExpr;
+import com.github.javaparser.ast.expr.ArrayCreationExpr;
+import com.github.javaparser.ast.expr.ArrayInitializerExpr;
+import com.github.javaparser.ast.expr.AssignExpr;
+import com.github.javaparser.ast.expr.BinaryExpr;
+import com.github.javaparser.ast.expr.BooleanLiteralExpr;
+import com.github.javaparser.ast.expr.CastExpr;
+import com.github.javaparser.ast.expr.CharLiteralExpr;
+import com.github.javaparser.ast.expr.ClassExpr;
+import com.github.javaparser.ast.expr.ConditionalExpr;
+import com.github.javaparser.ast.expr.DoubleLiteralExpr;
+import com.github.javaparser.ast.expr.EnclosedExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.FieldAccessExpr;
+import com.github.javaparser.ast.expr.InstanceOfExpr;
+import com.github.javaparser.ast.expr.IntegerLiteralExpr;
+import com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr;
+import com.github.javaparser.ast.expr.LambdaExpr;
+import com.github.javaparser.ast.expr.LongLiteralExpr;
+import com.github.javaparser.ast.expr.LongLiteralMinValueExpr;
+import com.github.javaparser.ast.expr.MarkerAnnotationExpr;
+import com.github.javaparser.ast.expr.MemberValuePair;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.MethodReferenceExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.expr.NormalAnnotationExpr;
+import com.github.javaparser.ast.expr.NullLiteralExpr;
+import com.github.javaparser.ast.expr.ObjectCreationExpr;
+import com.github.javaparser.ast.expr.QualifiedNameExpr;
+import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr;
+import com.github.javaparser.ast.expr.StringLiteralExpr;
+import com.github.javaparser.ast.expr.SuperExpr;
+import com.github.javaparser.ast.expr.ThisExpr;
+import com.github.javaparser.ast.expr.TypeExpr;
+import com.github.javaparser.ast.expr.UnaryExpr;
+import com.github.javaparser.ast.expr.VariableDeclarationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.Statement;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.type.*;
+import com.github.javaparser.ast.stmt.WhileStmt;
+
+/**
+ * This visitor adapter can be used to save time when some specific nodes needs
+ * to be changed. To do that just extend this class and override the methods
+ * from the nodes who needs to be changed, returning the changed node.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public class ModifierVisitorAdapter<A> implements GenericVisitor<Node, A> {
+
+ private void removeNulls(final List<?> list) {
+ for (int i = list.size() - 1; i >= 0; i--) {
+ if (list.get(i) == null) {
+ list.remove(i);
+ }
+ }
+ }
+
+ @Override public Node visit(final AnnotationDeclaration n, final A arg) {
+ visitAnnotations(n, arg);
+ visitComment(n, arg);
+ final List<BodyDeclaration<?>> members = n.getMembers();
+ if (members != null) {
+ for (int i = 0; i < members.size(); i++) {
+ members.set(i, (BodyDeclaration<?>) members.get(i).accept(this, arg));
+ }
+ removeNulls(members);
+ }
+ return n;
+ }
+
+ private void visitAnnotations(NodeWithAnnotations<?> n, A arg) {
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ }
+
+ @Override public Node visit(final AnnotationMemberDeclaration n, final A arg) {
+ visitComment(n, arg);
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ n.setType((Type) n.getType().accept(this, arg));
+ if (n.getDefaultValue() != null) {
+ n.setDefaultValue((Expression) n.getDefaultValue().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ArrayAccessExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setName((Expression) n.getName().accept(this, arg));
+ n.setIndex((Expression) n.getIndex().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ArrayCreationExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setType((Type) n.getType().accept(this, arg));
+
+ final List<ArrayCreationLevel> values = n.getLevels();
+ for (int i = 0; i < values.size(); i++) {
+ values.set(i, (ArrayCreationLevel) values.get(i).accept(this, arg));
+ }
+ removeNulls(values);
+
+ if (n.getInitializer() != null) {
+ n.setInitializer((ArrayInitializerExpr) n.getInitializer().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ArrayInitializerExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getValues() != null) {
+ final List<Expression> values = n.getValues();
+ if (values != null) {
+ for (int i = 0; i < values.size(); i++) {
+ values.set(i, (Expression) values.get(i).accept(this, arg));
+ }
+ removeNulls(values);
+ }
+ }
+ return n;
+ }
+
+ @Override public Node visit(final AssertStmt n, final A arg) {
+ visitComment(n, arg);
+ n.setCheck((Expression) n.getCheck().accept(this, arg));
+ if (n.getMessage() != null) {
+ n.setMessage((Expression) n.getMessage().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final AssignExpr n, final A arg) {
+ visitComment(n, arg);
+ final Expression target = (Expression) n.getTarget().accept(this, arg);
+ if (target == null) {
+ return null;
+ }
+ n.setTarget(target);
+
+ final Expression value = (Expression) n.getValue().accept(this, arg);
+ if (value == null) {
+ return null;
+ }
+ n.setValue(value);
+
+ return n;
+ }
+
+ @Override public Node visit(final BinaryExpr n, final A arg) {
+ visitComment(n, arg);
+ final Expression left = (Expression) n.getLeft().accept(this, arg);
+ final Expression right = (Expression) n.getRight().accept(this, arg);
+ if (left == null) {
+ return right;
+ }
+ if (right == null) {
+ return left;
+ }
+ n.setLeft(left);
+ n.setRight(right);
+ return n;
+ }
+
+ @Override public Node visit(final BlockStmt n, final A arg) {
+ visitComment(n, arg);
+ final List<Statement> stmts = n.getStmts();
+ if (stmts != null) {
+ for (int i = 0; i < stmts.size(); i++) {
+ stmts.set(i, (Statement) stmts.get(i).accept(this, arg));
+ }
+ removeNulls(stmts);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final BooleanLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final BreakStmt n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final CastExpr n, final A arg) {
+ visitComment(n, arg);
+ final Type type = (Type) n.getType().accept(this, arg);
+ final Expression expr = (Expression) n.getExpr().accept(this, arg);
+ if (type == null) {
+ return expr;
+ }
+ if (expr == null) {
+ return null;
+ }
+ n.setType(type);
+ n.setExpr(expr);
+ return n;
+ }
+
+ @Override public Node visit(final CatchClause n, final A arg) {
+ visitComment(n, arg);
+ n.setParam((Parameter)n.getParam().accept(this, arg));
+ n.setBody((BlockStmt) n.getBody().accept(this, arg));
+ return n;
+
+ }
+
+ @Override public Node visit(final CharLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final ClassExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setType((Type) n.getType().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ClassOrInterfaceDeclaration n, final A arg) {
+ visitAnnotations(n, arg);
+ visitComment(n, arg);
+ final List<TypeParameter> typeParameters = n.getTypeParameters();
+ if (typeParameters != null) {
+ for (int i = 0; i < typeParameters.size(); i++) {
+ typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg));
+ }
+ removeNulls(typeParameters);
+ }
+ final List<ClassOrInterfaceType> extendz = n.getExtends();
+ if (extendz != null) {
+ for (int i = 0; i < extendz.size(); i++) {
+ extendz.set(i, (ClassOrInterfaceType) extendz.get(i).accept(this, arg));
+ }
+ removeNulls(extendz);
+ }
+ final List<ClassOrInterfaceType> implementz = n.getImplements();
+ if (implementz != null) {
+ for (int i = 0; i < implementz.size(); i++) {
+ implementz.set(i, (ClassOrInterfaceType) implementz.get(i).accept(this, arg));
+ }
+ removeNulls(implementz);
+ }
+ final List<BodyDeclaration<?>> members = n.getMembers();
+ if (members != null) {
+ for (int i = 0; i < members.size(); i++) {
+ members.set(i, (BodyDeclaration<?>) members.get(i).accept(this, arg));
+ }
+ removeNulls(members);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ClassOrInterfaceType n, final A arg) {
+ visitComment(n, arg);
+ visitAnnotations(n, arg);
+ if (n.getScope() != null) {
+ n.setScope((ClassOrInterfaceType) n.getScope().accept(this, arg));
+ }
+ final List<Type<?>> typeArguments = n.getTypeArguments();
+ if (typeArguments != null) {
+ for (int i = 0; i < typeArguments.size(); i++) {
+ typeArguments.set(i, (Type<?>) typeArguments.get(i).accept(this, arg));
+ }
+ removeNulls(typeArguments);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final CompilationUnit n, final A arg) {
+ visitComment(n, arg);
+ if (n.getPackage() != null) {
+ n.setPackage((PackageDeclaration) n.getPackage().accept(this, arg));
+ }
+ final List<ImportDeclaration> imports = n.getImports();
+ if (imports != null) {
+ for (int i = 0; i < imports.size(); i++) {
+ imports.set(i, (ImportDeclaration) imports.get(i).accept(this, arg));
+ }
+ removeNulls(imports);
+ }
+ final List<TypeDeclaration<?>> types = n.getTypes();
+ if (types != null) {
+ for (int i = 0; i < types.size(); i++) {
+ types.set(i, (TypeDeclaration<?>) types.get(i).accept(this, arg));
+ }
+ removeNulls(types);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ConditionalExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setCondition((Expression) n.getCondition().accept(this, arg));
+ n.setThenExpr((Expression) n.getThenExpr().accept(this, arg));
+ n.setElseExpr((Expression) n.getElseExpr().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ConstructorDeclaration n, final A arg) {
+ visitComment(n, arg);
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ final List<TypeParameter> typeParameters = n.getTypeParameters();
+ if (typeParameters != null) {
+ for (int i = 0; i < typeParameters.size(); i++) {
+ typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg));
+ }
+ removeNulls(typeParameters);
+ }
+ final List<Parameter> parameters = n.getParameters();
+ if (parameters != null) {
+ for (int i = 0; i < parameters.size(); i++) {
+ parameters.set(i, (Parameter) parameters.get(i).accept(this, arg));
+ }
+ removeNulls(parameters);
+ }
+ final List<ReferenceType> throwz = n.getThrows();
+ if (throwz != null) {
+ for (int i = 0; i < throwz.size(); i++) {
+ throwz.set(i, (ReferenceType) throwz.get(i).accept(this, arg));
+ }
+ removeNulls(throwz);
+ }
+ n.setBody((BlockStmt) n.getBody().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ContinueStmt n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final DoStmt n, final A arg) {
+ visitComment(n, arg);
+ final Statement body = (Statement) n.getBody().accept(this, arg);
+ if (body == null) {
+ return null;
+ }
+ n.setBody(body);
+
+ final Expression condition = (Expression) n.getCondition().accept(this, arg);
+ if (condition == null) {
+ return null;
+ }
+ n.setCondition(condition);
+
+ return n;
+ }
+
+ @Override public Node visit(final DoubleLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final EmptyMemberDeclaration n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final EmptyStmt n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final EmptyTypeDeclaration n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final EnclosedExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setInner((Expression) n.getInner().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final EnumConstantDeclaration n, final A arg) {
+ visitComment(n, arg);
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ final List<Expression> args = n.getArgs();
+ if (args != null) {
+ for (int i = 0; i < args.size(); i++) {
+ args.set(i, (Expression) args.get(i).accept(this, arg));
+ }
+ removeNulls(args);
+ }
+ final List<BodyDeclaration<?>> classBody = n.getClassBody();
+ if (classBody != null) {
+ for (int i = 0; i < classBody.size(); i++) {
+ classBody.set(i, (BodyDeclaration<?>) classBody.get(i).accept(this, arg));
+ }
+ removeNulls(classBody);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final EnumDeclaration n, final A arg) {
+ visitComment(n, arg);
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ final List<ClassOrInterfaceType> implementz = n.getImplements();
+ if (implementz != null) {
+ for (int i = 0; i < implementz.size(); i++) {
+ implementz.set(i, (ClassOrInterfaceType) implementz.get(i).accept(this, arg));
+ }
+ removeNulls(implementz);
+ }
+ final List<EnumConstantDeclaration> entries = n.getEntries();
+ if (entries != null) {
+ for (int i = 0; i < entries.size(); i++) {
+ entries.set(i, (EnumConstantDeclaration) entries.get(i).accept(this, arg));
+ }
+ removeNulls(entries);
+ }
+ final List<BodyDeclaration<?>> members = n.getMembers();
+ if (members != null) {
+ for (int i = 0; i < members.size(); i++) {
+ members.set(i, (BodyDeclaration<?>) members.get(i).accept(this, arg));
+ }
+ removeNulls(members);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ExplicitConstructorInvocationStmt n, final A arg) {
+ visitComment(n, arg);
+ if (!n.isThis() && n.getExpr() != null) {
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ }
+ final List<Type<?>> typeArguments = n.getTypeArguments();
+ if (typeArguments != null) {
+ for (int i = 0; i < typeArguments.size(); i++) {
+ typeArguments.set(i, (Type<?>) typeArguments.get(i).accept(this, arg));
+ }
+ removeNulls(typeArguments);
+ }
+ final List<Expression> args = n.getArgs();
+ if (args != null) {
+ for (int i = 0; i < args.size(); i++) {
+ args.set(i, (Expression) args.get(i).accept(this, arg));
+ }
+ removeNulls(args);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ExpressionStmt n, final A arg) {
+ visitComment(n, arg);
+ final Expression expr = (Expression) n.getExpression().accept(this, arg);
+ if (expr == null) {
+ return null;
+ }
+ n.setExpression(expr);
+ return n;
+ }
+
+ @Override public Node visit(final FieldAccessExpr n, final A arg) {
+ visitComment(n, arg);
+ final Expression scope = (Expression) n.getScope().accept(this, arg);
+ if (scope == null) {
+ return null;
+ }
+ n.setScope(scope);
+ return n;
+ }
+
+ @Override public Node visit(final FieldDeclaration n, final A arg) {
+ visitComment(n, arg);
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ n.setElementType((Type) n.getElementType().accept(this, arg));
+ final List<VariableDeclarator> variables = n.getVariables();
+ for (int i = 0; i < variables.size(); i++) {
+ variables.set(i, (VariableDeclarator) variables.get(i).accept(this, arg));
+ }
+ removeNulls(variables);
+ return n;
+ }
+
+ @Override public Node visit(final ForeachStmt n, final A arg) {
+ visitComment(n, arg);
+ n.setVariable((VariableDeclarationExpr) n.getVariable().accept(this, arg));
+ n.setIterable((Expression) n.getIterable().accept(this, arg));
+ n.setBody((Statement) n.getBody().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ForStmt n, final A arg) {
+ visitComment(n, arg);
+ final List<Expression> init = n.getInit();
+ if (init != null) {
+ for (int i = 0; i < init.size(); i++) {
+ init.set(i, (Expression) init.get(i).accept(this, arg));
+ }
+ removeNulls(init);
+ }
+ if (n.getCompare() != null) {
+ n.setCompare((Expression) n.getCompare().accept(this, arg));
+ }
+ final List<Expression> update = n.getUpdate();
+ if (update != null) {
+ for (int i = 0; i < update.size(); i++) {
+ update.set(i, (Expression) update.get(i).accept(this, arg));
+ }
+ removeNulls(update);
+ }
+ n.setBody((Statement) n.getBody().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final IfStmt n, final A arg) {
+ visitComment(n, arg);
+ final Expression condition = (Expression)
+ n.getCondition().accept(this, arg);
+ if (condition == null) {
+ return null;
+ }
+ n.setCondition(condition);
+ final Statement thenStmt = (Statement) n.getThenStmt().accept(this, arg);
+ if (thenStmt == null) {
+ // Remove the entire statement if the then-clause was removed.
+ // DumpVisitor, used for toString, has no null check for the
+ // then-clause.
+ return null;
+ }
+ n.setThenStmt(thenStmt);
+ if (n.getElseStmt() != null) {
+ n.setElseStmt((Statement) n.getElseStmt().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ImportDeclaration n, final A arg) {
+ visitComment(n, arg);
+ n.setName((NameExpr) n.getName().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final InitializerDeclaration n, final A arg) {
+ visitComment(n, arg);
+ n.setBlock((BlockStmt) n.getBlock().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final InstanceOfExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ n.setType((Type) n.getType().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final IntegerLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final IntegerLiteralMinValueExpr n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final JavadocComment n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final LabeledStmt n, final A arg) {
+ visitComment(n, arg);
+ n.setStmt((Statement) n.getStmt().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final LongLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final LongLiteralMinValueExpr n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final MarkerAnnotationExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setName((NameExpr) n.getName().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final MemberValuePair n, final A arg) {
+ visitComment(n, arg);
+ n.setValue((Expression) n.getValue().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final MethodCallExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getScope() != null) {
+ n.setScope((Expression) n.getScope().accept(this, arg));
+ }
+ final List<Type<?>> typeArguments = n.getTypeArguments();
+ if (typeArguments != null) {
+ for (int i = 0; i < typeArguments.size(); i++) {
+ typeArguments.set(i, (Type<?>) typeArguments.get(i).accept(this, arg));
+ }
+ removeNulls(typeArguments);
+ }
+ final List<Expression> args = n.getArgs();
+ if (args != null) {
+ for (int i = 0; i < args.size(); i++) {
+ args.set(i, (Expression) args.get(i).accept(this, arg));
+ }
+ removeNulls(args);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final MethodDeclaration n, final A arg) {
+ visitComment(n, arg);
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ final List<TypeParameter> typeParameters = n.getTypeParameters();
+ if (typeParameters != null) {
+ for (int i = 0; i < typeParameters.size(); i++) {
+ typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg));
+ }
+ removeNulls(typeParameters);
+ }
+ n.setElementType((Type) n.getElementType().accept(this, arg));
+ final List<Parameter> parameters = n.getParameters();
+ if (parameters != null) {
+ for (int i = 0; i < parameters.size(); i++) {
+ parameters.set(i, (Parameter) parameters.get(i).accept(this, arg));
+ }
+ removeNulls(parameters);
+ }
+ final List<ReferenceType> throwz = n.getThrows();
+ if (throwz != null) {
+ for (int i = 0; i < throwz.size(); i++) {
+ throwz.set(i, (ReferenceType) throwz.get(i).accept(this, arg));
+ }
+ removeNulls(throwz);
+ }
+ if (n.getBody() != null) {
+ n.setBody((BlockStmt) n.getBody().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final NameExpr n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final NormalAnnotationExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setName((NameExpr) n.getName().accept(this, arg));
+ final List<MemberValuePair> pairs = n.getPairs();
+ if (pairs != null) {
+ for (int i = 0; i < pairs.size(); i++) {
+ pairs.set(i, (MemberValuePair) pairs.get(i).accept(this, arg));
+ }
+ removeNulls(pairs);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final NullLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final ObjectCreationExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getScope() != null) {
+ n.setScope((Expression) n.getScope().accept(this, arg));
+ }
+ final List<Type<?>> typeArguments = n.getTypeArguments();
+ if (typeArguments != null) {
+ for (int i = 0; i < typeArguments.size(); i++) {
+ typeArguments.set(i, (Type<?>) typeArguments.get(i).accept(this, arg));
+ }
+ removeNulls(typeArguments);
+ }
+ n.setType((ClassOrInterfaceType) n.getType().accept(this, arg));
+ final List<Expression> args = n.getArgs();
+ if (args != null) {
+ for (int i = 0; i < args.size(); i++) {
+ args.set(i, (Expression) args.get(i).accept(this, arg));
+ }
+ removeNulls(args);
+ }
+ final List<BodyDeclaration<?>> anonymousClassBody = n.getAnonymousClassBody();
+ if (anonymousClassBody != null) {
+ for (int i = 0; i < anonymousClassBody.size(); i++) {
+ anonymousClassBody.set(i, (BodyDeclaration<?>) anonymousClassBody.get(i).accept(this, arg));
+ }
+ removeNulls(anonymousClassBody);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final PackageDeclaration n, final A arg) {
+ visitComment(n, arg);
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ n.setName((NameExpr) n.getName().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final Parameter n, final A arg) {
+ visitComment(n, arg);
+ visitAnnotations(n, arg);
+ n.setId((VariableDeclaratorId) n.getId().accept(this, arg));
+ n.setElementType((Type) n.getElementType().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final PrimitiveType n, final A arg) {
+ visitComment(n, arg);
+ visitAnnotations(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final QualifiedNameExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setQualifier((NameExpr) n.getQualifier().accept(this, arg));
+ return n;
+ }
+
+ @Override
+ public Node visit(ArrayType n, A arg) {
+ visitComment(n, arg);
+ visitAnnotations(n, arg);
+ n.setComponentType((Type) n.getComponentType().accept(this, arg));
+ return n;
+ }
+
+ @Override
+ public Node visit(ArrayCreationLevel n, A arg) {
+ visitComment(n, arg);
+ visitAnnotations(n, arg);
+ if(n.getDimension()!=null) {
+ n.setDimension((Expression) n.getDimension().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override
+ public Node visit(final IntersectionType n, final A arg) {
+ visitComment(n, arg);
+ visitAnnotations(n, arg);
+ final List<ReferenceType> elements = n.getElements();
+ if (elements != null) {
+ for (int i = 0; i < elements.size(); i++) {
+ elements.set(i, (ReferenceType) elements.get(i).accept(this, arg));
+ }
+ removeNulls(elements);
+ }
+ return n;
+ }
+
+ @Override
+ public Node visit(final UnionType n, final A arg) {
+ visitComment(n, arg);
+ visitAnnotations(n, arg);
+ final List<ReferenceType> elements = n.getElements();
+ if (elements != null) {
+ for (int i = 0; i < elements.size(); i++) {
+ elements.set(i, (ReferenceType) elements.get(i).accept(this, arg));
+ }
+ removeNulls(elements);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ReturnStmt n, final A arg) {
+ visitComment(n, arg);
+ if (n.getExpr() != null) {
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final SingleMemberAnnotationExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setName((NameExpr) n.getName().accept(this, arg));
+ n.setMemberValue((Expression) n.getMemberValue().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final StringLiteralExpr n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final SuperExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getClassExpr() != null) {
+ n.setClassExpr((Expression) n.getClassExpr().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final SwitchEntryStmt n, final A arg) {
+ visitComment(n, arg);
+ if (n.getLabel() != null) {
+ n.setLabel((Expression) n.getLabel().accept(this, arg));
+ }
+ final List<Statement> stmts = n.getStmts();
+ if (stmts != null) {
+ for (int i = 0; i < stmts.size(); i++) {
+ stmts.set(i, (Statement) stmts.get(i).accept(this, arg));
+ }
+ removeNulls(stmts);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final SwitchStmt n, final A arg) {
+ visitComment(n, arg);
+ n.setSelector((Expression) n.getSelector().accept(this, arg));
+ final List<SwitchEntryStmt> entries = n.getEntries();
+ if (entries != null) {
+ for (int i = 0; i < entries.size(); i++) {
+ entries.set(i, (SwitchEntryStmt) entries.get(i).accept(this, arg));
+ }
+ removeNulls(entries);
+ }
+ return n;
+
+ }
+
+ @Override public Node visit(final SynchronizedStmt n, final A arg) {
+ visitComment(n, arg);
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ n.setBody((BlockStmt) n.getBody().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ThisExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getClassExpr() != null) {
+ n.setClassExpr((Expression) n.getClassExpr().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ThrowStmt n, final A arg) {
+ visitComment(n, arg);
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final TryStmt n, final A arg) {
+ visitComment(n, arg);
+ final List<VariableDeclarationExpr> types = n.getResources();
+ for (int i = 0; i < types.size(); i++) {
+ n.getResources().set(i,
+ (VariableDeclarationExpr) n.getResources().get(i).accept(this, arg));
+ }
+ n.setTryBlock((BlockStmt) n.getTryBlock().accept(this, arg));
+ final List<CatchClause> catchs = n.getCatchs();
+ if (catchs != null) {
+ for (int i = 0; i < catchs.size(); i++) {
+ catchs.set(i, (CatchClause) catchs.get(i).accept(this, arg));
+ }
+ removeNulls(catchs);
+ }
+ if (n.getFinallyBlock() != null) {
+ n.setFinallyBlock((BlockStmt) n.getFinallyBlock().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final TypeDeclarationStmt n, final A arg) {
+ visitComment(n, arg);
+ n.setTypeDeclaration((TypeDeclaration<?>) n.getTypeDeclaration().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final TypeParameter n, final A arg) {
+ visitComment(n, arg);
+ final List<ClassOrInterfaceType> typeBound = n.getTypeBound();
+ if (typeBound != null) {
+ for (int i = 0; i < typeBound.size(); i++) {
+ typeBound.set(i, (ClassOrInterfaceType) typeBound.get(i).accept(this, arg));
+ }
+ removeNulls(typeBound);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final UnaryExpr n, final A arg) {
+ visitComment(n, arg);
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final UnknownType n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final VariableDeclarationExpr n, final A arg) {
+ visitComment(n, arg);
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+
+ final Type type = (Type) n.getElementType().accept(this, arg);
+ if (type == null) {
+ return null;
+ }
+ n.setElementType(type);
+
+ final List<VariableDeclarator> vars = n.getVariables();
+ for (int i = 0; i < vars.size();) {
+ final VariableDeclarator decl = (VariableDeclarator)
+ vars.get(i).accept(this, arg);
+ if (decl == null) {
+ vars.remove(i);
+ } else {
+ vars.set(i++, decl);
+ }
+ }
+ if (vars.isEmpty()) {
+ return null;
+ }
+
+ return n;
+ }
+
+ @Override public Node visit(final VariableDeclarator n, final A arg) {
+ visitComment(n, arg);
+ final VariableDeclaratorId id = (VariableDeclaratorId)
+ n.getId().accept(this, arg);
+ if (id == null) {
+ return null;
+ }
+ n.setId(id);
+ if (n.getInit() != null) {
+ n.setInit((Expression) n.getInit().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final VariableDeclaratorId n, final A arg) {
+ visitComment(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final VoidType n, final A arg) {
+ visitComment(n, arg);
+ visitAnnotations(n, arg);
+ return n;
+ }
+
+ @Override public Node visit(final WhileStmt n, final A arg) {
+ visitComment(n, arg);
+ n.setCondition((Expression) n.getCondition().accept(this, arg));
+ n.setBody((Statement) n.getBody().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final WildcardType n, final A arg) {
+ visitComment(n, arg);
+ visitAnnotations(n, arg);
+ if (n.getExtends() != null) {
+ n.setExtends((ReferenceType) n.getExtends().accept(this, arg));
+ }
+ if (n.getSuper() != null) {
+ n.setSuper((ReferenceType) n.getSuper().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override
+ public Node visit(final LambdaExpr n, final A arg) {
+ visitComment(n, arg);
+ final List<Parameter> parameters = n.getParameters();
+ for (int i = 0; i < parameters.size(); i++) {
+ parameters.set(i, (Parameter) parameters.get(i).accept(this, arg));
+ }
+ removeNulls(parameters);
+ if (n.getBody() != null) {
+ n.setBody((Statement) n.getBody().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override
+ public Node visit(final MethodReferenceExpr n, final A arg) {
+ visitComment(n, arg);
+ final List<Type<?>> types = n.getTypeArguments();
+ for (int i = 0; i < types.size(); i++) {
+ n.getTypeArguments().set(i,
+ (Type<?>) n.getTypeArguments().get(i).accept(this, arg));
+ }
+ if (n.getScope() != null) {
+ n.setScope((Expression)n.getScope().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override
+ public Node visit(final TypeExpr n, final A arg) {
+ visitComment(n, arg);
+ if (n.getType() != null) {
+ n.setType((Type<?>) n.getType().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override
+ public Node visit(ArrayBracketPair n, A arg) {
+ visitAnnotations(n, arg);
+ return n;
+ }
+
+ @Override
+ public Node visit(final BlockComment n, final A arg) {
+ return n;
+ }
+
+ @Override
+ public Node visit(final LineComment n, final A arg) {
+ return n;
+ }
+
+ private void visitComment(Node n, final A arg) {
+ if (n != null && n.getComment() != null) {
+ n.setComment((Comment) n.getComment().accept(this, arg));
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/TreeVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/TreeVisitor.java
new file mode 100644
index 000000000..c1b7eaee6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/TreeVisitor.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.Node;
+
+/**
+ * Iterate over all the nodes in (a part of) the AST.
+ */
+public abstract class TreeVisitor {
+
+ /**
+ * https://en.wikipedia.org/wiki/Depth-first_search
+ *
+ * @param node the start node, and the first one that is passed to process(node).
+ */
+ public void visitDepthFirst(Node node) {
+ process(node);
+ for (Node child : node.getChildrenNodes()) {
+ visitDepthFirst(child);
+ }
+ }
+
+ public abstract void process(Node node);
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/VoidVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/VoidVisitor.java
new file mode 100644
index 000000000..ec1d0f6a6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/VoidVisitor.java
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+/**
+ * A visitor that does not return anything.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public interface VoidVisitor<A> {
+
+ //- Compilation Unit ----------------------------------
+
+ void visit(CompilationUnit n, A arg);
+
+ void visit(PackageDeclaration n, A arg);
+
+ void visit(ImportDeclaration n, A arg);
+
+ void visit(TypeParameter n, A arg);
+
+ void visit(LineComment n, A arg);
+
+ void visit(BlockComment n, A arg);
+
+ //- Body ----------------------------------------------
+
+ void visit(ClassOrInterfaceDeclaration n, A arg);
+
+ void visit(EnumDeclaration n, A arg);
+
+ void visit(EmptyTypeDeclaration n, A arg);
+
+ void visit(EnumConstantDeclaration n, A arg);
+
+ void visit(AnnotationDeclaration n, A arg);
+
+ void visit(AnnotationMemberDeclaration n, A arg);
+
+ void visit(FieldDeclaration n, A arg);
+
+ void visit(VariableDeclarator n, A arg);
+
+ void visit(VariableDeclaratorId n, A arg);
+
+ void visit(ConstructorDeclaration n, A arg);
+
+ void visit(MethodDeclaration n, A arg);
+
+ void visit(Parameter n, A arg);
+
+ void visit(EmptyMemberDeclaration n, A arg);
+
+ void visit(InitializerDeclaration n, A arg);
+
+ void visit(JavadocComment n, A arg);
+
+ //- Type ----------------------------------------------
+
+ void visit(ClassOrInterfaceType n, A arg);
+
+ void visit(PrimitiveType n, A arg);
+
+ void visit(ArrayType n, A arg);
+
+ void visit(ArrayCreationLevel n, A arg);
+
+ void visit(IntersectionType n, A arg);
+
+ void visit(UnionType n, A arg);
+
+ void visit(VoidType n, A arg);
+
+ void visit(WildcardType n, A arg);
+
+ void visit(UnknownType n, A arg);
+
+ //- Expression ----------------------------------------
+
+ void visit(ArrayAccessExpr n, A arg);
+
+ void visit(ArrayCreationExpr n, A arg);
+
+ void visit(ArrayInitializerExpr n, A arg);
+
+ void visit(AssignExpr n, A arg);
+
+ void visit(BinaryExpr n, A arg);
+
+ void visit(CastExpr n, A arg);
+
+ void visit(ClassExpr n, A arg);
+
+ void visit(ConditionalExpr n, A arg);
+
+ void visit(EnclosedExpr n, A arg);
+
+ void visit(FieldAccessExpr n, A arg);
+
+ void visit(InstanceOfExpr n, A arg);
+
+ void visit(StringLiteralExpr n, A arg);
+
+ void visit(IntegerLiteralExpr n, A arg);
+
+ void visit(LongLiteralExpr n, A arg);
+
+ void visit(IntegerLiteralMinValueExpr n, A arg);
+
+ void visit(LongLiteralMinValueExpr n, A arg);
+
+ void visit(CharLiteralExpr n, A arg);
+
+ void visit(DoubleLiteralExpr n, A arg);
+
+ void visit(BooleanLiteralExpr n, A arg);
+
+ void visit(NullLiteralExpr n, A arg);
+
+ void visit(MethodCallExpr n, A arg);
+
+ void visit(NameExpr n, A arg);
+
+ void visit(ObjectCreationExpr n, A arg);
+
+ void visit(QualifiedNameExpr n, A arg);
+
+ void visit(ThisExpr n, A arg);
+
+ void visit(SuperExpr n, A arg);
+
+ void visit(UnaryExpr n, A arg);
+
+ void visit(VariableDeclarationExpr n, A arg);
+
+ void visit(MarkerAnnotationExpr n, A arg);
+
+ void visit(SingleMemberAnnotationExpr n, A arg);
+
+ void visit(NormalAnnotationExpr n, A arg);
+
+ void visit(MemberValuePair n, A arg);
+
+ //- Statements ----------------------------------------
+
+ void visit(ExplicitConstructorInvocationStmt n, A arg);
+
+ void visit(TypeDeclarationStmt n, A arg);
+
+ void visit(AssertStmt n, A arg);
+
+ void visit(BlockStmt n, A arg);
+
+ void visit(LabeledStmt n, A arg);
+
+ void visit(EmptyStmt n, A arg);
+
+ void visit(ExpressionStmt n, A arg);
+
+ void visit(SwitchStmt n, A arg);
+
+ void visit(SwitchEntryStmt n, A arg);
+
+ void visit(BreakStmt n, A arg);
+
+ void visit(ReturnStmt n, A arg);
+
+ void visit(IfStmt n, A arg);
+
+ void visit(WhileStmt n, A arg);
+
+ void visit(ContinueStmt n, A arg);
+
+ void visit(DoStmt n, A arg);
+
+ void visit(ForeachStmt n, A arg);
+
+ void visit(ForStmt n, A arg);
+
+ void visit(ThrowStmt n, A arg);
+
+ void visit(SynchronizedStmt n, A arg);
+
+ void visit(TryStmt n, A arg);
+
+ void visit(CatchClause n, A arg);
+
+ void visit(LambdaExpr n, A arg);
+
+ void visit(MethodReferenceExpr n, A arg);
+
+ void visit(TypeExpr n, A arg);
+
+ void visit(ArrayBracketPair arrayBracketPair, A arg);
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java
new file mode 100644
index 000000000..cab3ef496
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java
@@ -0,0 +1,806 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.stmt.*;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.ArrayAccessExpr;
+import com.github.javaparser.ast.expr.ArrayCreationExpr;
+import com.github.javaparser.ast.expr.ArrayInitializerExpr;
+import com.github.javaparser.ast.expr.AssignExpr;
+import com.github.javaparser.ast.expr.BinaryExpr;
+import com.github.javaparser.ast.expr.BooleanLiteralExpr;
+import com.github.javaparser.ast.expr.CastExpr;
+import com.github.javaparser.ast.expr.CharLiteralExpr;
+import com.github.javaparser.ast.expr.ClassExpr;
+import com.github.javaparser.ast.expr.ConditionalExpr;
+import com.github.javaparser.ast.expr.DoubleLiteralExpr;
+import com.github.javaparser.ast.expr.EnclosedExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.FieldAccessExpr;
+import com.github.javaparser.ast.expr.InstanceOfExpr;
+import com.github.javaparser.ast.expr.IntegerLiteralExpr;
+import com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr;
+import com.github.javaparser.ast.expr.LambdaExpr;
+import com.github.javaparser.ast.expr.LongLiteralExpr;
+import com.github.javaparser.ast.expr.LongLiteralMinValueExpr;
+import com.github.javaparser.ast.expr.MarkerAnnotationExpr;
+import com.github.javaparser.ast.expr.MemberValuePair;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.MethodReferenceExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.expr.NormalAnnotationExpr;
+import com.github.javaparser.ast.expr.NullLiteralExpr;
+import com.github.javaparser.ast.expr.ObjectCreationExpr;
+import com.github.javaparser.ast.expr.QualifiedNameExpr;
+import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr;
+import com.github.javaparser.ast.expr.StringLiteralExpr;
+import com.github.javaparser.ast.expr.SuperExpr;
+import com.github.javaparser.ast.expr.ThisExpr;
+import com.github.javaparser.ast.expr.TypeExpr;
+import com.github.javaparser.ast.expr.UnaryExpr;
+import com.github.javaparser.ast.expr.VariableDeclarationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.type.*;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class VoidVisitorAdapter<A> implements VoidVisitor<A> {
+
+ @Override public void visit(final AnnotationDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ n.getNameExpr().accept(this, arg);
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration<?> member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final AnnotationMemberDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ n.getType().accept(this, arg);
+ if (n.getDefaultValue() != null) {
+ n.getDefaultValue().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ArrayAccessExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ n.getIndex().accept(this, arg);
+ }
+
+ @Override public void visit(final ArrayCreationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getType().accept(this, arg);
+ for (ArrayCreationLevel level : n.getLevels()) {
+ level.accept(this, arg);
+ }
+ if (n.getInitializer() != null) {
+ n.getInitializer().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ArrayInitializerExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getValues() != null) {
+ for (final Expression expr : n.getValues()) {
+ expr.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final AssertStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getCheck().accept(this, arg);
+ if (n.getMessage() != null) {
+ n.getMessage().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final AssignExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getTarget().accept(this, arg);
+ n.getValue().accept(this, arg);
+ }
+
+ @Override public void visit(final BinaryExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getLeft().accept(this, arg);
+ n.getRight().accept(this, arg);
+ }
+
+ @Override public void visit(final BlockComment n, final A arg) {
+ }
+
+ @Override public void visit(final BlockStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getStmts() != null) {
+ for (final Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final BooleanLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final BreakStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final CastExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getType().accept(this, arg);
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final CatchClause n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getParam().accept(this, arg);
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final CharLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final ClassExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getType().accept(this, arg);
+ }
+
+ @Override public void visit(final ClassOrInterfaceDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ n.getNameExpr().accept(this, arg);
+ for (final TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ for (final ClassOrInterfaceType c : n.getExtends()) {
+ c.accept(this, arg);
+ }
+ for (final ClassOrInterfaceType c : n.getImplements()) {
+ c.accept(this, arg);
+ }
+ for (final BodyDeclaration<?> member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ClassOrInterfaceType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArguments() != null) {
+ for (final Type t : n.getTypeArguments()) {
+ t.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final CompilationUnit n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getPackage() != null) {
+ n.getPackage().accept(this, arg);
+ }
+ if (n.getImports() != null) {
+ for (final ImportDeclaration i : n.getImports()) {
+ i.accept(this, arg);
+ }
+ }
+ if (n.getTypes() != null) {
+ for (final TypeDeclaration<?> typeDeclaration : n.getTypes()) {
+ typeDeclaration.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final ConditionalExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getCondition().accept(this, arg);
+ n.getThenExpr().accept(this, arg);
+ n.getElseExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final ConstructorDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ n.getNameExpr().accept(this, arg);
+ if (n.getParameters() != null) {
+ for (final Parameter p : n.getParameters()) {
+ p.accept(this, arg);
+ }
+ }
+ if (n.getThrows() != null) {
+ for (final ReferenceType name : n.getThrows()) {
+ name.accept(this, arg);
+ }
+ }
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final ContinueStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final DoStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getBody().accept(this, arg);
+ n.getCondition().accept(this, arg);
+ }
+
+ @Override public void visit(final DoubleLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final EmptyMemberDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final EmptyStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final EmptyTypeDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getNameExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final EnclosedExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getInner().accept(this, arg);
+ }
+
+ @Override public void visit(final EnumConstantDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getClassBody() != null) {
+ for (final BodyDeclaration<?> member : n.getClassBody()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final EnumDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ n.getNameExpr().accept(this, arg);
+ if (n.getImplements() != null) {
+ for (final ClassOrInterfaceType c : n.getImplements()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getEntries() != null) {
+ for (final EnumConstantDeclaration e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration<?> member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final ExplicitConstructorInvocationStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (!n.isThis() && n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ }
+ if (n.getTypeArguments() != null) {
+ for (final Type t : n.getTypeArguments()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final ExpressionStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExpression().accept(this, arg);
+ }
+
+ @Override public void visit(final FieldAccessExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getScope().accept(this, arg);
+ n.getFieldExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final FieldDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ n.getElementType().accept(this, arg);
+ for (final VariableDeclarator var : n.getVariables()) {
+ var.accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ForeachStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getVariable().accept(this, arg);
+ n.getIterable().accept(this, arg);
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final ForStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getInit() != null) {
+ for (final Expression e : n.getInit()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getCompare() != null) {
+ n.getCompare().accept(this, arg);
+ }
+ if (n.getUpdate() != null) {
+ for (final Expression e : n.getUpdate()) {
+ e.accept(this, arg);
+ }
+ }
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final IfStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getCondition().accept(this, arg);
+ n.getThenStmt().accept(this, arg);
+ if (n.getElseStmt() != null) {
+ n.getElseStmt().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ImportDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ }
+
+ @Override public void visit(final InitializerDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override public void visit(final InstanceOfExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExpr().accept(this, arg);
+ n.getType().accept(this, arg);
+ }
+
+ @Override public void visit(final IntegerLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final IntegerLiteralMinValueExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final JavadocComment n, final A arg) {
+ }
+
+ @Override public void visit(final LabeledStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getStmt().accept(this, arg);
+ }
+
+ @Override public void visit(final LineComment n, final A arg) {
+ }
+
+ @Override public void visit(final LongLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final LongLiteralMinValueExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final MarkerAnnotationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ }
+
+ @Override public void visit(final MemberValuePair n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getValue().accept(this, arg);
+ }
+
+ @Override public void visit(final MethodCallExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArguments() != null) {
+ for (final Type t : n.getTypeArguments()) {
+ t.accept(this, arg);
+ }
+ }
+ n.getNameExpr().accept(this, arg);
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final MethodDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ n.getElementType().accept(this, arg);
+ n.getNameExpr().accept(this, arg);
+ if (n.getParameters() != null) {
+ for (final Parameter p : n.getParameters()) {
+ p.accept(this, arg);
+ }
+ }
+ if (n.getThrows() != null) {
+ for (final ReferenceType name : n.getThrows()) {
+ name.accept(this, arg);
+ }
+ }
+ if (n.getBody() != null) {
+ n.getBody().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final NameExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final NormalAnnotationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ if (n.getPairs() != null) {
+ for (final MemberValuePair m : n.getPairs()) {
+ m.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final NullLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final ObjectCreationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArguments() != null) {
+ for (final Type t : n.getTypeArguments()) {
+ t.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getAnonymousClassBody() != null) {
+ for (final BodyDeclaration<?> member : n.getAnonymousClassBody()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final PackageDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ n.getName().accept(this, arg);
+ }
+
+ @Override public void visit(final Parameter n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ n.getElementType().accept(this, arg);
+ n.getId().accept(this, arg);
+ }
+
+ @Override public void visit(final PrimitiveType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ }
+
+ @Override public void visit(final QualifiedNameExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getQualifier().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ArrayType n, A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ n.getComponentType().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ArrayCreationLevel n, A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ if(n.getDimension()!=null) {
+ n.getDimension().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final IntersectionType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ for (ReferenceType element : n.getElements()) {
+ element.accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final UnionType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ for (ReferenceType element : n.getElements()) {
+ element.accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ReturnStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final SingleMemberAnnotationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ n.getMemberValue().accept(this, arg);
+ }
+
+ @Override public void visit(final StringLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final SuperExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final SwitchEntryStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getLabel() != null) {
+ n.getLabel().accept(this, arg);
+ }
+ if (n.getStmts() != null) {
+ for (final Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final SwitchStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getSelector().accept(this, arg);
+ if (n.getEntries() != null) {
+ for (final SwitchEntryStmt e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final SynchronizedStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExpr().accept(this, arg);
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final ThisExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ThrowStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final TryStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getResources() != null) {
+ for (final VariableDeclarationExpr v : n.getResources()) {
+ v.accept(this, arg);
+ }
+ }
+ n.getTryBlock().accept(this, arg);
+ if (n.getCatchs() != null) {
+ for (final CatchClause c : n.getCatchs()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getFinallyBlock() != null) {
+ n.getFinallyBlock().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final TypeDeclarationStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getTypeDeclaration().accept(this, arg);
+ }
+
+ @Override public void visit(final TypeParameter n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getTypeBound() != null) {
+ for (final ClassOrInterfaceType c : n.getTypeBound()) {
+ c.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final UnaryExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final UnknownType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final VariableDeclarationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ n.getElementType().accept(this, arg);
+ for (final VariableDeclarator v : n.getVariables()) {
+ v.accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final VariableDeclarator n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getId().accept(this, arg);
+ if (n.getInit() != null) {
+ n.getInit().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final VariableDeclaratorId n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final VoidType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+
+ }
+
+ @Override public void visit(final WhileStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getCondition().accept(this, arg);
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final WildcardType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ visitAnnotations(n, arg);
+ if (n.getExtends() != null) {
+ n.getExtends().accept(this, arg);
+ }
+ if (n.getSuper() != null) {
+ n.getSuper().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(LambdaExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getParameters() != null) {
+ for (final Parameter a : n.getParameters()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getBody() != null) {
+ n.getBody().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(MethodReferenceExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getTypeArguments() != null) {
+ for (final Type t : n.getTypeArguments()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(TypeExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getType() != null) {
+ n.getType().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(ArrayBracketPair n, A arg) {
+ visitAnnotations(n, arg);
+ }
+
+ private void visitComment(final Comment n, final A arg) {
+ if (n != null) {
+ n.accept(this, arg);
+ }
+ }
+
+ private void visitAnnotations(NodeWithAnnotations<?> n, A arg) {
+ for (AnnotationExpr annotation : n.getAnnotations()) {
+ annotation.accept(this, arg);
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/ClassUtils.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/ClassUtils.java
new file mode 100644
index 000000000..476986812
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/ClassUtils.java
@@ -0,0 +1,69 @@
+package com.github.javaparser.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ClassUtils {
+ /**
+ * Maps primitive {@code Class}es to their corresponding wrapper {@code Class}.
+ */
+ private static final Map<Class<?>, Class<?>> primitiveWrapperMap = new HashMap<Class<?>, Class<?>>();
+ static {
+ primitiveWrapperMap.put(Boolean.TYPE, Boolean.class);
+ primitiveWrapperMap.put(Byte.TYPE, Byte.class);
+ primitiveWrapperMap.put(Character.TYPE, Character.class);
+ primitiveWrapperMap.put(Short.TYPE, Short.class);
+ primitiveWrapperMap.put(Integer.TYPE, Integer.class);
+ primitiveWrapperMap.put(Long.TYPE, Long.class);
+ primitiveWrapperMap.put(Double.TYPE, Double.class);
+ primitiveWrapperMap.put(Float.TYPE, Float.class);
+ primitiveWrapperMap.put(Void.TYPE, Void.TYPE);
+ }
+
+ /**
+ * Maps wrapper {@code Class}es to their corresponding primitive types.
+ */
+ private static final Map<Class<?>, Class<?>> wrapperPrimitiveMap = new HashMap<Class<?>, Class<?>>();
+ static {
+ for (final Class<?> primitiveClass : primitiveWrapperMap.keySet()) {
+ final Class<?> wrapperClass = primitiveWrapperMap.get(primitiveClass);
+ if (!primitiveClass.equals(wrapperClass)) {
+ wrapperPrimitiveMap.put(wrapperClass, primitiveClass);
+ }
+ }
+ }
+
+ /**
+ * Returns whether the given {@code type} is a primitive or primitive wrapper ({@link Boolean}, {@link Byte},
+ * {@link Character},
+ * {@link Short}, {@link Integer}, {@link Long}, {@link Double}, {@link Float}).
+ *
+ * @param type
+ * The class to query or null.
+ * @return true if the given {@code type} is a primitive or primitive wrapper ({@link Boolean}, {@link Byte},
+ * {@link Character},
+ * {@link Short}, {@link Integer}, {@link Long}, {@link Double}, {@link Float}).
+ */
+ public static boolean isPrimitiveOrWrapper(final Class<?> type) {
+ if (type == null) {
+ return false;
+ }
+ return type.isPrimitive() || isPrimitiveWrapper(type);
+ }
+
+ /**
+ * Returns whether the given {@code type} is a primitive wrapper ({@link Boolean}, {@link Byte}, {@link Character},
+ * {@link Short},
+ * {@link Integer}, {@link Long}, {@link Double}, {@link Float}).
+ *
+ * @param type
+ * The class to query or null.
+ * @return true if the given {@code type} is a primitive wrapper ({@link Boolean}, {@link Byte}, {@link Character},
+ * {@link Short},
+ * {@link Integer}, {@link Long}, {@link Double}, {@link Float}).
+ * @since 3.1
+ */
+ public static boolean isPrimitiveWrapper(final Class<?> type) {
+ return wrapperPrimitiveMap.containsKey(type);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/Pair.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/Pair.java
new file mode 100644
index 000000000..40ce85d83
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/Pair.java
@@ -0,0 +1,16 @@
+package com.github.javaparser.utils;
+
+/**
+ * Simply a pair of objects.
+ * @param <A> type of object a.
+ * @param <B> type of object b.
+ */
+public class Pair<A, B> {
+ public final A a;
+ public final B b;
+
+ public Pair(A a, B b) {
+ this.a = a;
+ this.b = b;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/PositionUtils.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/PositionUtils.java
new file mode 100644
index 000000000..e1ecf190e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/PositionUtils.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.utils;
+
+import static java.lang.Integer.signum;
+
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
+import com.github.javaparser.ast.nodeTypes.NodeWithElementType;
+import com.github.javaparser.ast.nodeTypes.NodeWithType;
+
+public final class PositionUtils {
+
+ private PositionUtils() {
+ // prevent instantiation
+ }
+
+ public static <T extends Node> void sortByBeginPosition(List<T> nodes){
+ sortByBeginPosition(nodes, false);
+ }
+
+ public static <T extends Node> void sortByBeginPosition(List<T> nodes, final boolean ignoringAnnotations){
+ Collections.sort(nodes, (o1, o2) -> PositionUtils.compare(o1, o2, ignoringAnnotations));
+ }
+
+ public static boolean areInOrder(Node a, Node b){
+ return areInOrder(a, b, false);
+ }
+
+ public static boolean areInOrder(Node a, Node b, boolean ignoringAnnotations){
+ return compare(a, b, ignoringAnnotations) <= 0;
+ }
+
+ private static int compare(Node a, Node b, boolean ignoringAnnotations) {
+ if (ignoringAnnotations) {
+ int signLine = signum(beginLineWithoutConsideringAnnotation(a) - beginLineWithoutConsideringAnnotation(b));
+ if (signLine == 0) {
+ return signum(beginColumnWithoutConsideringAnnotation(a) - beginColumnWithoutConsideringAnnotation(b));
+ } else {
+ return signLine;
+ }
+ }
+
+ int signLine = signum( a.getBegin().line - b.getBegin().line );
+ if (signLine == 0) {
+ return signum(a.getBegin().column - b.getBegin().column);
+ } else {
+ return signLine;
+ }
+ }
+
+ public static AnnotationExpr getLastAnnotation(Node node) {
+ if (node instanceof NodeWithAnnotations){
+ List<AnnotationExpr> annotations = new LinkedList<>();
+ annotations.addAll(((NodeWithAnnotations<?>) node).getAnnotations());
+ if (annotations.isEmpty()){
+ return null;
+ }
+ sortByBeginPosition(annotations);
+ return annotations.get(annotations.size()-1);
+ } else {
+ return null;
+ }
+ }
+
+ private static int beginLineWithoutConsideringAnnotation(Node node) {
+ return beginNodeWithoutConsideringAnnotations(node).getBegin().line;
+ }
+
+
+ private static int beginColumnWithoutConsideringAnnotation(Node node) {
+ return beginNodeWithoutConsideringAnnotations(node).getBegin().column;
+ }
+
+ private static Node beginNodeWithoutConsideringAnnotations(Node node) {
+ if (node instanceof MethodDeclaration || node instanceof FieldDeclaration) {
+ NodeWithElementType<?> casted = (NodeWithElementType<?>) node;
+ return casted.getElementType();
+ } else if (node instanceof ClassOrInterfaceDeclaration) {
+ ClassOrInterfaceDeclaration casted = (ClassOrInterfaceDeclaration) node;
+ return casted.getNameExpr();
+ } else {
+ return node;
+ }
+ }
+
+ public static boolean nodeContains(Node container, Node contained, boolean ignoringAnnotations){
+ if (!ignoringAnnotations || PositionUtils.getLastAnnotation(container)==null){
+ return container.contains(contained);
+ }
+ if (!container.contains(contained)){
+ return false;
+ }
+ // if the node is contained, but it comes immediately after the annotations,
+ // let's not consider it contained
+ if (container instanceof NodeWithAnnotations){
+ int bl = beginLineWithoutConsideringAnnotation(container);
+ int bc = beginColumnWithoutConsideringAnnotation(container);
+ if (bl>contained.getBegin().line) return false;
+ if (bl==contained.getBegin().line && bc>contained.getBegin().column) return false;
+ if (container.getEnd().line<contained.getEnd().line) return false;
+ // TODO < or <= ?
+ return !(container.getEnd().line == contained.getEnd().line && container.getEnd().column < contained.getEnd().column);
+ }
+ return true;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/Utils.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/Utils.java
new file mode 100644
index 000000000..b9320852d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/utils/Utils.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.utils;
+
+import com.github.javaparser.Provider;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.Reader;
+import java.util.*;
+
+/**
+ * Any kind of utility.
+ *
+ * @author Federico Tomassetti
+ */
+public class Utils {
+ public static final String EOL = System.getProperty("line.separator");
+ public static <T> List<T> ensureNotNull(List<T> list) {
+ return list == null ? new ArrayList<T>() : list;
+ }
+
+ public static <E> boolean isNullOrEmpty(Collection<E> collection) {
+ return collection == null || collection.isEmpty();
+ }
+
+ public static <T> T assertNotNull(T o) {
+ if (o == null) {
+ throw new NullPointerException("Assertion failed.");
+ }
+ return o;
+ }
+
+ /**
+ * @return string with ASCII characters 10 and 13 replaced by the text "\n" and "\r".
+ */
+ public static String escapeEndOfLines(String string) {
+ StringBuilder escapedString = new StringBuilder();
+ for (char c : string.toCharArray()) {
+ switch (c) {
+ case '\n':
+ escapedString.append("\\n");
+ break;
+ case '\r':
+ escapedString.append("\\r");
+ break;
+ default:
+ escapedString.append(c);
+ }
+ }
+ return escapedString.toString();
+ }
+
+ public static String readerToString(Reader reader) throws IOException {
+ final StringBuilder result = new StringBuilder();
+ final char[] buffer = new char[8 * 1024];
+ int numChars;
+
+ while ((numChars = reader.read(buffer, 0, buffer.length)) > 0) {
+ result.append(buffer, 0, numChars);
+ }
+
+ return result.toString();
+ }
+
+ public static String providerToString(Provider provider) throws IOException {
+ final StringBuilder result = new StringBuilder();
+ final char[] buffer = new char[8 * 1024];
+ int numChars;
+
+ while ((numChars = provider.read(buffer, 0, buffer.length)) != -1) {
+ result.append(buffer, 0, numChars);
+ }
+
+ return result.toString();
+ }
+
+ /**
+ * Puts varargs in a mutable list.
+ * This does not have the disadvantage of Arrays#asList that it has a static size.
+ */
+ public static <T> List<T> arrayToList(T[] array){
+ List<T> list = new LinkedList<>();
+ Collections.addAll(list, array);
+ return list;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParser.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParser.java
new file mode 100644
index 000000000..97ed88103
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParser.java
@@ -0,0 +1,9318 @@
+/* ASTParser.java */
+/* Generated By:JavaCC: Do not edit this line. ASTParser.java */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+import java.io.*;
+import java.util.*;
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.body.*;
+import com.github.javaparser.ast.comments.*;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.*;
+import com.github.javaparser.ast.type.*;
+import com.github.javaparser.utils.*;
+import static com.github.javaparser.ASTParser.*;
+import static com.github.javaparser.Range.*;
+import static com.github.javaparser.Position.*;
+import static com.github.javaparser.ast.type.ArrayType.*;
+
+/**
+ * <p>This class was generated automatically by javacc, do not edit.</p>
+ */
+final class ASTParser implements ASTParserConstants {
+
+ private final Position INVALID = pos(-1, 0);
+ List<Problem> problems = new ArrayList<Problem>();
+
+ void reset(InputStream in, String encoding) throws IOException {
+ ReInit(new StreamProvider(in, encoding));
+ }
+
+ private <T> List<T> add(List<T> list, T obj) {
+ if (list == null) {
+ list = new LinkedList<T>();
+ }
+ list.add(obj);
+ return list;
+ }
+
+ private <T> List<T> add(int pos, List<T> list, T obj) {
+ if (list == null) {
+ list = new LinkedList<T>();
+ }
+ list.add(pos, obj);
+ return list;
+ }
+
+ private class ModifierHolder {
+ final EnumSet<Modifier> modifiers;
+ final List<AnnotationExpr> annotations;
+ final Position begin;
+
+ public ModifierHolder(Position begin, EnumSet<Modifier> modifiers, List<AnnotationExpr> annotations) {
+ this.begin = begin;
+ this.modifiers = modifiers;
+ this.annotations = annotations;
+ }
+ }
+
+ public void addModifier(EnumSet<Modifier> modifiers, Modifier mod) {
+ if (modifiers.contains(mod)) {
+ addProblem("Duplicated modifier");
+ }
+ modifiers.add(mod);
+ }
+
+ public void addMultipleModifier(EnumSet<Modifier> modifiers, EnumSet<Modifier> mods) {
+ if(mods == null)
+ return;
+ for(Modifier m : mods)
+ if (modifiers.contains(m))
+ addProblem("Duplicated modifier");
+ for(Modifier m : mods)
+ modifiers.add(m);
+ }
+
+ /**
+ * Return the list of tokens that have been encountered while parsing code using
+ * this parser.
+ *
+ * @return a list of tokens
+ */
+ public List<Token> getTokens() {
+ return token_source.getTokens();
+ }
+
+ public CommentsCollection getCommentsCollection() {
+ return token_source.getCommentsCollection();
+ }
+
+ private void addProblem(String message) {
+ problems.add(new Problem(message + ": \"" + token.image, Optional.of(tokenRange()), Optional.empty()));
+ }
+
+ private Expression generateLambda(Expression ret, Statement lambdaBody) {
+ if (ret instanceof EnclosedExpr) {
+ Expression inner = ((EnclosedExpr) ret).getInner();
+ if (inner != null && inner instanceof NameExpr) {
+ VariableDeclaratorId id = new VariableDeclaratorId(inner.getRange(), ((NameExpr)inner).getName(), null);
+ List<Parameter> params = add(null, new Parameter(ret.getRange(), EnumSet.noneOf(Modifier.class), null, new UnknownType(), null, false, id));
+ ret = new LambdaExpr(range(ret.getBegin(), lambdaBody.getEnd()), params, lambdaBody, true);
+ } else {
+ ret = new LambdaExpr(range(ret.getBegin(), lambdaBody.getEnd()), null, lambdaBody, true);
+ }
+ } else if (ret instanceof NameExpr) {
+ VariableDeclaratorId id = new VariableDeclaratorId(ret.getRange(), ((NameExpr)ret).getName(), null);
+ List<Parameter> params = add(null, new Parameter(ret.getRange(), EnumSet.noneOf(Modifier.class), null, new UnknownType(), null, false, id));
+ ret = new LambdaExpr(ret.getRange(), params, lambdaBody, false);
+ } else if (ret instanceof LambdaExpr) {
+ ((LambdaExpr) ret).setBody(lambdaBody);
+ ret.setEnd(lambdaBody.getEnd());
+ } else if (ret instanceof CastExpr) {
+ CastExpr castExpr = (CastExpr)ret;
+ Expression inner = generateLambda(castExpr.getExpr(), lambdaBody);
+ castExpr.setExpr(inner);
+ } else {
+ addProblem("Failed to parse lambda expression! Please create an issue at https://github.com/javaparser/javaparser/issues");
+ }
+ return ret;
+ }
+
+ private ArrayCreationExpr juggleArrayCreation(Range range, Type type, List<Expression> dimensions, List<List<AnnotationExpr>> arrayAnnotations, ArrayInitializerExpr arrayInitializerExpr) {
+ List<ArrayCreationLevel> levels = new ArrayList<ArrayCreationLevel>();
+
+ for(int i = 0; i < arrayAnnotations.size(); i++){
+ levels.add(new ArrayCreationLevel(range, dimensions.get(i), arrayAnnotations.get(i)));
+ }
+ return new ArrayCreationExpr(range, type, levels, arrayInitializerExpr);
+ }
+
+
+ static final class GTToken extends Token {
+ int realKind = ASTParserConstants.GT;
+
+ GTToken(int kind, String image) {
+ this.kind = kind;
+ this.image = image;
+ }
+
+ public static Token newToken(int kind, String image) {
+ return new GTToken(kind, image);
+ }
+ }
+
+ private static class RangedList<T> {
+ Range range = Range.UNKNOWN;
+ List<T> list;
+ RangedList(List<T> list) {
+ this.list = list;
+ }
+ void beginAt(Position begin) {
+ range=range.withBegin(begin);
+ }
+ void endAt(Position end) {
+ range=range.withEnd(end);
+ }
+ void add(T t) {
+ if (list == null) {
+ list = new LinkedList<T>();
+ }
+ list.add(t);
+ }
+ }
+
+ private Position tokenBegin() {
+ return pos(token.beginLine,token.beginColumn);
+ }
+
+ private Position tokenEnd() {
+ return pos(token.endLine,token.endColumn);
+ }
+
+ private Range tokenRange() {
+ return tokenRange(token);
+ }
+
+ public static Range tokenRange(Token token) {
+ return range(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
+ }
+
+/*****************************************
+ * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
+ *****************************************/
+
+/*
+ * Program structuring syntax follows.
+ */
+ final public
+CompilationUnit CompilationUnit() {PackageDeclaration pakage = null;
+ List<ImportDeclaration> imports = null;
+ ImportDeclaration in = null;
+ List<TypeDeclaration<?>> types = null;
+ TypeDeclaration tn = null;
+ Position begin = INVALID;
+ if (jj_2_1(2147483647)) {
+ pakage = PackageDeclaration();
+begin = begin.orIfInvalid(pakage.getBegin());
+ } else {
+ ;
+ }
+ label_1:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IMPORT:
+ case SEMICOLON:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[0] = jj_gen;
+ break label_1;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IMPORT:{
+ in = ImportDeclaration();
+begin = begin.orIfInvalid(in.getBegin()); imports = add(imports, in);
+ break;
+ }
+ case SEMICOLON:{
+ in = EmptyImportDeclaration();
+begin = begin.orIfInvalid(in.getBegin()); imports = add(imports, in);
+ break;
+ }
+ default:
+ jj_la1[1] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ label_2:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ABSTRACT:
+ case CLASS:
+ case ENUM:
+ case FINAL:
+ case INTERFACE:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case SEMICOLON:
+ case AT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[2] = jj_gen;
+ break label_2;
+ }
+ tn = TypeDeclaration();
+begin = begin.orIfInvalid(tn.getBegin()); types = add(types, tn);
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case 0:{
+ jj_consume_token(0);
+ break;
+ }
+ case 156:{
+ jj_consume_token(156);
+ break;
+ }
+ default:
+ jj_la1[3] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return new CompilationUnit(begin.invalid() ? Range.UNKNOWN : range(begin, tokenEnd()), pakage, imports, types);
+ }
+
+ final public ImportDeclaration EmptyImportDeclaration() {Position begin;
+ jj_consume_token(SEMICOLON);
+begin = tokenBegin();
+return ImportDeclaration.createEmptyDeclaration(range(begin, tokenEnd()));
+ }
+
+ final public PackageDeclaration PackageDeclaration() {List<AnnotationExpr> annotations = null;
+ NameExpr name;
+ Position begin;
+ annotations = Annotations();
+ jj_consume_token(PACKAGE);
+begin = tokenBegin();
+ name = Name();
+ jj_consume_token(SEMICOLON);
+return new PackageDeclaration(range(begin, tokenEnd()), annotations, name);
+ }
+
+ final public ImportDeclaration ImportDeclaration() {NameExpr name;
+ boolean isStatic = false;
+ boolean isAsterisk = false;
+ Position begin;
+ jj_consume_token(IMPORT);
+begin = tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case STATIC:{
+ jj_consume_token(STATIC);
+isStatic = true;
+ break;
+ }
+ default:
+ jj_la1[4] = jj_gen;
+ ;
+ }
+ name = Name();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case DOT:{
+ jj_consume_token(DOT);
+ jj_consume_token(STAR);
+isAsterisk = true;
+ break;
+ }
+ default:
+ jj_la1[5] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+return new ImportDeclaration(range(begin, tokenEnd()),name, isStatic, isAsterisk);
+ }
+
+/*
+ * Modifiers. We match all modifiers in a single rule to reduce the chances of
+ * syntax errors for simple modifier mistakes. It will also enable us to give
+ * better error messages.
+ */
+ final public
+ModifierHolder Modifiers() {Position begin = INVALID;
+ EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class);
+ List<AnnotationExpr> annotations = null;
+ AnnotationExpr ann;
+ label_3:
+ while (true) {
+ if (jj_2_2(2)) {
+ ;
+ } else {
+ break label_3;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case PUBLIC:{
+ jj_consume_token(PUBLIC);
+addModifier(modifiers, Modifier.PUBLIC); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case STATIC:{
+ jj_consume_token(STATIC);
+addModifier(modifiers, Modifier.STATIC); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case PROTECTED:{
+ jj_consume_token(PROTECTED);
+addModifier(modifiers, Modifier.PROTECTED); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case PRIVATE:{
+ jj_consume_token(PRIVATE);
+addModifier(modifiers, Modifier.PRIVATE); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case FINAL:{
+ jj_consume_token(FINAL);
+addModifier(modifiers, Modifier.FINAL); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case ABSTRACT:{
+ jj_consume_token(ABSTRACT);
+addModifier(modifiers, Modifier.ABSTRACT); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case SYNCHRONIZED:{
+ jj_consume_token(SYNCHRONIZED);
+addModifier(modifiers, Modifier.SYNCHRONIZED); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case NATIVE:{
+ jj_consume_token(NATIVE);
+addModifier(modifiers, Modifier.NATIVE); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case TRANSIENT:{
+ jj_consume_token(TRANSIENT);
+addModifier(modifiers, Modifier.TRANSIENT); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case VOLATILE:{
+ jj_consume_token(VOLATILE);
+addModifier(modifiers, Modifier.VOLATILE); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case STRICTFP:{
+ jj_consume_token(STRICTFP);
+addModifier(modifiers, Modifier.STRICTFP); begin = begin.orIfInvalid(tokenBegin());
+ break;
+ }
+ case AT:{
+ ann = Annotation();
+annotations = add(annotations, ann); begin = begin.orIfInvalid(ann.getBegin());
+ break;
+ }
+ default:
+ jj_la1[6] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+return new ModifierHolder(begin, modifiers, annotations);
+ }
+
+/*
+ * Declaration syntax follows.
+ */
+ final public TypeDeclaration TypeDeclaration() {ModifierHolder modifier;
+ TypeDeclaration ret;
+
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case SEMICOLON:{
+ jj_consume_token(SEMICOLON);
+ret = new EmptyTypeDeclaration(tokenRange());
+ break;
+ }
+ case ABSTRACT:
+ case CLASS:
+ case ENUM:
+ case FINAL:
+ case INTERFACE:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case AT:{
+ modifier = Modifiers();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case CLASS:
+ case INTERFACE:{
+ ret = ClassOrInterfaceDeclaration(modifier);
+ break;
+ }
+ case ENUM:{
+ ret = EnumDeclaration(modifier);
+ break;
+ }
+ case AT:{
+ ret = AnnotationTypeDeclaration(modifier);
+ break;
+ }
+ default:
+ jj_la1[7] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ }
+ default:
+ jj_la1[8] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public ClassOrInterfaceDeclaration ClassOrInterfaceDeclaration(ModifierHolder modifier) {boolean isInterface = false;
+ NameExpr name;
+ RangedList<TypeParameter> typePar = new RangedList<TypeParameter>(null);
+ List<ClassOrInterfaceType> extList = null;
+ List<ClassOrInterfaceType> impList = null;
+ List<BodyDeclaration<?>> members;
+ Position begin = modifier.begin;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case CLASS:{
+ jj_consume_token(CLASS);
+ break;
+ }
+ case INTERFACE:{
+ jj_consume_token(INTERFACE);
+isInterface = true;
+ break;
+ }
+ default:
+ jj_la1[9] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+begin = begin.orIfInvalid(tokenBegin());
+ name = Name();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typePar = TypeParameters();
+ break;
+ }
+ default:
+ jj_la1[10] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case EXTENDS:{
+ extList = ExtendsList(isInterface);
+ break;
+ }
+ default:
+ jj_la1[11] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IMPLEMENTS:{
+ impList = ImplementsList(isInterface);
+ break;
+ }
+ default:
+ jj_la1[12] = jj_gen;
+ ;
+ }
+ members = ClassOrInterfaceBody(isInterface);
+ClassOrInterfaceDeclaration tmp = new ClassOrInterfaceDeclaration(range(begin, tokenEnd()), modifier.modifiers, modifier.annotations, isInterface, null, typePar.list, extList, impList, members);
+ tmp.setNameExpr(name);
+ return tmp;
+ }
+
+ final public List<ClassOrInterfaceType> ExtendsList(boolean isInterface) {boolean extendsMoreThanOne = false;
+ List<ClassOrInterfaceType> ret = new LinkedList<ClassOrInterfaceType>();
+ ClassOrInterfaceType cit;
+ jj_consume_token(EXTENDS);
+ cit = AnnotatedClassOrInterfaceType();
+ret.add(cit);
+ label_4:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[13] = jj_gen;
+ break label_4;
+ }
+ jj_consume_token(COMMA);
+ cit = AnnotatedClassOrInterfaceType();
+ret.add(cit); extendsMoreThanOne = true;
+ }
+if (extendsMoreThanOne && !isInterface)
+ addProblem("A class cannot extend more than one other class");
+return ret;
+ }
+
+ final public List<ClassOrInterfaceType> ImplementsList(boolean isInterface) {List<ClassOrInterfaceType> ret = new LinkedList<ClassOrInterfaceType>();
+ ClassOrInterfaceType cit;
+ jj_consume_token(IMPLEMENTS);
+ cit = AnnotatedClassOrInterfaceType();
+ret.add(cit);
+ label_5:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[14] = jj_gen;
+ break label_5;
+ }
+ jj_consume_token(COMMA);
+ cit = AnnotatedClassOrInterfaceType();
+ret.add(cit);
+ }
+if (isInterface)
+ addProblem("An interface cannot implement other interfaces");
+return ret;
+ }
+
+ final public EnumDeclaration EnumDeclaration(ModifierHolder modifier) {NameExpr name;
+ List<ClassOrInterfaceType> impList = null;
+ EnumConstantDeclaration entry;
+ List<EnumConstantDeclaration> entries = null;
+ BodyDeclaration<?> member;
+ List<BodyDeclaration<?>> members = null;
+ Position begin = modifier.begin;
+ jj_consume_token(ENUM);
+begin = begin.orIfInvalid(tokenBegin());
+ name = Name();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IMPLEMENTS:{
+ impList = ImplementsList(false);
+ break;
+ }
+ default:
+ jj_la1[15] = jj_gen;
+ ;
+ }
+ jj_consume_token(LBRACE);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IDENTIFIER:
+ case AT:{
+entries = new LinkedList<EnumConstantDeclaration>();
+ entry = EnumConstantDeclaration();
+entries.add(entry);
+ label_6:
+ while (true) {
+ if (jj_2_3(2)) {
+ ;
+ } else {
+ break label_6;
+ }
+ jj_consume_token(COMMA);
+ entry = EnumConstantDeclaration();
+entries.add(entry);
+ }
+ break;
+ }
+ default:
+ jj_la1[16] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ jj_consume_token(COMMA);
+ break;
+ }
+ default:
+ jj_la1[17] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case SEMICOLON:{
+ jj_consume_token(SEMICOLON);
+ label_7:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case _DEFAULT:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case LT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[18] = jj_gen;
+ break label_7;
+ }
+ member = ClassOrInterfaceBodyDeclaration(false);
+members = add(members, member);
+ }
+ break;
+ }
+ default:
+ jj_la1[19] = jj_gen;
+ ;
+ }
+ jj_consume_token(RBRACE);
+EnumDeclaration tmp = new EnumDeclaration(range(begin, tokenEnd()), modifier.modifiers, modifier.annotations, null, impList, entries, members);
+ tmp.setNameExpr(name);
+ return tmp;
+ }
+
+ final public EnumConstantDeclaration EnumConstantDeclaration() {List<AnnotationExpr> annotations = null;
+ AnnotationExpr ann;
+ String name;
+ List<Expression> args = null;
+ List<BodyDeclaration<?>> classBody = null;
+ Position begin = INVALID;
+
+ label_8:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case AT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[20] = jj_gen;
+ break label_8;
+ }
+ ann = Annotation();
+annotations = add(annotations, ann); begin = begin.orIfInvalid(ann.getBegin());
+ }
+ jj_consume_token(IDENTIFIER);
+name = token.image; begin = begin.orIfInvalid(tokenBegin());
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LPAREN:{
+ args = Arguments();
+ break;
+ }
+ default:
+ jj_la1[21] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LBRACE:{
+ classBody = ClassOrInterfaceBody(false);
+ break;
+ }
+ default:
+ jj_la1[22] = jj_gen;
+ ;
+ }
+return new EnumConstantDeclaration(range(begin, tokenEnd()), annotations, name, args, classBody);
+ }
+
+/**
+ * If the list inside the returned RangedList is null, there are no brackets.
+ * If it is empty, there are brackets, but nothing is in them <>.
+ * The normal case is that it contains TypeParameters, like <A, B, C>.
+ */
+ final public RangedList<TypeParameter> TypeParameters() {RangedList<TypeParameter> ret = new RangedList<TypeParameter>(new LinkedList<TypeParameter>());
+ TypeParameter tp;
+ List<AnnotationExpr> annotations = null;
+ jj_consume_token(LT);
+ret.beginAt(tokenBegin());
+ annotations = Annotations();
+ tp = TypeParameter();
+ret.add(tp); tp.setAnnotations(annotations); annotations = null;
+ label_9:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[23] = jj_gen;
+ break label_9;
+ }
+ jj_consume_token(COMMA);
+ annotations = Annotations();
+ tp = TypeParameter();
+ret.add(tp); tp.setAnnotations(annotations); annotations = null;
+ }
+ jj_consume_token(GT);
+ret.endAt(tokenEnd());
+return ret;
+ }
+
+ final public TypeParameter TypeParameter() {String name;
+ List<ClassOrInterfaceType> typeBound = null;
+ Position begin;
+ jj_consume_token(IDENTIFIER);
+name = token.image; begin=tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case EXTENDS:{
+ typeBound = TypeBound();
+ break;
+ }
+ default:
+ jj_la1[24] = jj_gen;
+ ;
+ }
+return new TypeParameter(range(begin, tokenEnd()),name, typeBound);
+ }
+
+ final public List<ClassOrInterfaceType> TypeBound() {List<ClassOrInterfaceType> ret = new LinkedList<ClassOrInterfaceType>();
+ ClassOrInterfaceType cit;
+ jj_consume_token(EXTENDS);
+ cit = AnnotatedClassOrInterfaceType();
+ret.add(cit);
+ label_10:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BIT_AND:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[25] = jj_gen;
+ break label_10;
+ }
+ jj_consume_token(BIT_AND);
+ cit = AnnotatedClassOrInterfaceType();
+ret.add(cit);
+ }
+return ret;
+ }
+
+ final public List<BodyDeclaration<?>> ClassOrInterfaceBody(boolean isInterface) {List<BodyDeclaration<?>> ret = new LinkedList<BodyDeclaration<?>>();
+ BodyDeclaration member;
+ jj_consume_token(LBRACE);
+ label_11:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case _DEFAULT:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case LT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[26] = jj_gen;
+ break label_11;
+ }
+ member = ClassOrInterfaceBodyDeclaration(isInterface);
+ret.add(member);
+ }
+ jj_consume_token(RBRACE);
+return ret;
+ }
+
+ final public BodyDeclaration<?> ClassOrInterfaceBodyDeclaration(boolean isInterface) {ModifierHolder modifier;
+ ModifierHolder modifier2 = null;
+ EnumSet<Modifier> aux = null;
+ BodyDeclaration<?> ret;
+ boolean isDefault = false;
+
+ if (jj_2_6(2)) {
+ ret = InitializerDeclaration();
+if (isInterface)
+ addProblem("An interface cannot have initializers");
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case _DEFAULT:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ case LT:{
+ modifier = Modifiers();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case _DEFAULT:{
+ jj_consume_token(_DEFAULT);
+ modifier2 = Modifiers();
+if(!isInterface)
+ {
+ addProblem("A class cannot have default members");
+ }
+ isDefault = true;
+ break;
+ }
+ default:
+ jj_la1[27] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case CLASS:
+ case INTERFACE:{
+ ret = ClassOrInterfaceDeclaration(modifier);
+ break;
+ }
+ case ENUM:{
+ ret = EnumDeclaration(modifier);
+ break;
+ }
+ case AT:{
+ ret = AnnotationTypeDeclaration(modifier);
+ break;
+ }
+ default:
+ jj_la1[28] = jj_gen;
+ if (jj_2_4(2147483647)) {
+ ret = ConstructorDeclaration(modifier);
+ } else if (jj_2_5(2147483647)) {
+ ret = FieldDeclaration(modifier);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case VOID:
+ case IDENTIFIER:
+ case LT:{
+ ret = MethodDeclaration(modifier);
+if(isDefault && ret!= null && ((MethodDeclaration)ret).getBody() == null)
+ {
+ addProblem("\"default\" methods must have a body");
+ }
+ ((MethodDeclaration)ret).setDefault(isDefault);
+ if(modifier2!= null)
+ {
+ aux = modifier2.modifiers;
+ }
+ addMultipleModifier(modifier.modifiers, aux);
+ ((MethodDeclaration)ret).setModifiers(modifier.modifiers);
+ break;
+ }
+ default:
+ jj_la1[29] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+if(isDefault && ! (ret instanceof MethodDeclaration))
+ {
+ addProblem("Only methods can have the keyword \"default\".");
+ }
+ break;
+ }
+ case SEMICOLON:{
+ jj_consume_token(SEMICOLON);
+ret = new EmptyMemberDeclaration(tokenRange());
+ break;
+ }
+ default:
+ jj_la1[30] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+return ret;
+ }
+
+ final public FieldDeclaration FieldDeclaration(ModifierHolder modifier) {Type type;
+ List<VariableDeclarator> variables = new LinkedList<VariableDeclarator>();
+ VariableDeclarator val;
+ // Modifiers are already matched in the caller
+ type = Type();
+ val = VariableDeclarator();
+variables.add(val);
+ label_12:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[31] = jj_gen;
+ break label_12;
+ }
+ jj_consume_token(COMMA);
+ val = VariableDeclarator();
+variables.add(val);
+ }
+ jj_consume_token(SEMICOLON);
+Position begin = modifier.begin.orIfInvalid(type.getBegin());
+ Pair<Type, List<ArrayBracketPair>> typeListPair = unwrapArrayTypes(type);
+ return new FieldDeclaration(range(begin, tokenEnd()), modifier.modifiers, modifier.annotations, typeListPair.a, variables, typeListPair.b);
+ }
+
+ final public VariableDeclarator VariableDeclarator() {VariableDeclaratorId id;
+ Expression init = null;
+ id = VariableDeclaratorId();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ASSIGN:{
+ jj_consume_token(ASSIGN);
+ init = VariableInitializer();
+ break;
+ }
+ default:
+ jj_la1[32] = jj_gen;
+ ;
+ }
+return new VariableDeclarator(range(id.getBegin(), tokenEnd()), id, init);
+ }
+
+ final public VariableDeclaratorId VariableDeclaratorId() {String name;
+ Position begin;
+ ArrayBracketPair arrayBracketPair;
+ List<ArrayBracketPair> arrayBracketPairs = null;
+ jj_consume_token(IDENTIFIER);
+name = token.image; begin=tokenBegin();
+ label_13:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LBRACKET:
+ case AT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[33] = jj_gen;
+ break label_13;
+ }
+ arrayBracketPair = ArrayBracketPair();
+arrayBracketPairs=add(arrayBracketPairs, arrayBracketPair);
+ }
+return new VariableDeclaratorId(range(begin, tokenEnd()),name, arrayBracketPairs);
+ }
+
+ final public Expression VariableInitializer() {Expression ret;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LBRACE:{
+ ret = ArrayInitializer();
+ break;
+ }
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ ret = Expression();
+ break;
+ }
+ default:
+ jj_la1[34] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public ArrayInitializerExpr ArrayInitializer() {List<Expression> values = null;
+ Expression val;
+ Position begin;
+ jj_consume_token(LBRACE);
+begin=tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ val = VariableInitializer();
+values = add(values, val);
+ label_14:
+ while (true) {
+ if (jj_2_7(2)) {
+ ;
+ } else {
+ break label_14;
+ }
+ jj_consume_token(COMMA);
+ val = VariableInitializer();
+values = add(values, val);
+ }
+ break;
+ }
+ default:
+ jj_la1[35] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ jj_consume_token(COMMA);
+ break;
+ }
+ default:
+ jj_la1[36] = jj_gen;
+ ;
+ }
+ jj_consume_token(RBRACE);
+return new ArrayInitializerExpr(range(begin, tokenEnd()), values);
+ }
+
+ final public MethodDeclaration MethodDeclaration(ModifierHolder modifier) {RangedList<TypeParameter> typeParameters = new RangedList<TypeParameter>(null);
+ Type type;
+ NameExpr name;
+ List<Parameter> parameters;
+ ArrayBracketPair arrayBracketPair;
+ List<ArrayBracketPair> arrayBracketPairs = null;
+ List<ReferenceType> throws_ = null;
+ BlockStmt block = null;
+ Position begin = modifier.begin;
+ ReferenceType throwType;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeParameters = TypeParameters();
+begin = begin.orIfInvalid(typeParameters.range.begin);
+ break;
+ }
+ default:
+ jj_la1[37] = jj_gen;
+ ;
+ }
+ type = ResultType();
+begin = begin.orIfInvalid(type.getBegin());
+ name = Name();
+ parameters = FormalParameters();
+ label_15:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LBRACKET:
+ case AT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[38] = jj_gen;
+ break label_15;
+ }
+ arrayBracketPair = ArrayBracketPair();
+arrayBracketPairs=add(arrayBracketPairs, arrayBracketPair);
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case THROWS:{
+ jj_consume_token(THROWS);
+ throwType = ReferenceTypeWithAnnotations();
+throws_ = add(throws_, throwType);
+ label_16:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[39] = jj_gen;
+ break label_16;
+ }
+ jj_consume_token(COMMA);
+ throwType = ReferenceTypeWithAnnotations();
+throws_ = add(throws_, throwType);
+ }
+ break;
+ }
+ default:
+ jj_la1[40] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LBRACE:{
+ block = Block();
+ break;
+ }
+ case SEMICOLON:{
+ jj_consume_token(SEMICOLON);
+ break;
+ }
+ default:
+ jj_la1[41] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+Pair<Type, List<ArrayBracketPair>> typeListPair = unwrapArrayTypes(type);
+ return new MethodDeclaration(range(begin, pos(token.endLine, token.endColumn)), modifier.modifiers, modifier.annotations, typeParameters.list, typeListPair.a, typeListPair.b, name, parameters, arrayBracketPairs, throws_, block);
+ }
+
+ final public ReferenceType ReferenceTypeWithAnnotations() {List<AnnotationExpr> annotations;
+ ReferenceType type;
+ annotations = Annotations();
+ type = ReferenceType();
+if(annotations != null){
+ if (type.getAnnotations() != null) {
+ type.getAnnotations().addAll(annotations);
+ } else {
+ type.setAnnotations(annotations);
+ }
+ }
+ return type;
+ }
+
+ final public List<Parameter> FormalParameters() {List<Parameter> ret = null;
+ Parameter par;
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:{
+ par = FormalParameter();
+ret = add(ret, par);
+ label_17:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[42] = jj_gen;
+ break label_17;
+ }
+ jj_consume_token(COMMA);
+ par = FormalParameter();
+ret = add(ret, par);
+ }
+ break;
+ }
+ default:
+ jj_la1[43] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+return ret;
+ }
+
+ final public List<Parameter> FormalLambdaParameters() {List<Parameter> ret = null;
+ Parameter par;
+ jj_consume_token(COMMA);
+ par = FormalParameter();
+ret = add(ret, par);
+ label_18:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[44] = jj_gen;
+ break label_18;
+ }
+ jj_consume_token(COMMA);
+ par = FormalParameter();
+ret = add(ret, par);
+ }
+return ret;
+ }
+
+ final public List<Parameter> InferredLambdaParameters() {List<Parameter> ret = null;
+ VariableDeclaratorId id;
+ jj_consume_token(COMMA);
+ id = VariableDeclaratorId();
+ret = add(ret, new Parameter(range(id.getBegin(), id.getEnd()), EnumSet.noneOf(Modifier.class), null, new UnknownType(), null, false, id));
+ label_19:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[45] = jj_gen;
+ break label_19;
+ }
+ jj_consume_token(COMMA);
+ id = VariableDeclaratorId();
+ret = add(ret, new Parameter(range(id.getBegin(), id.getEnd()), EnumSet.noneOf(Modifier.class), null, new UnknownType(), null, false, id));
+ }
+return ret;
+ }
+
+ final public Parameter FormalParameter() {ModifierHolder modifier;
+ Type type;
+ boolean isVarArg = false;
+ VariableDeclaratorId id;
+ modifier = Modifiers();
+ type = Type();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ELLIPSIS:{
+ jj_consume_token(ELLIPSIS);
+isVarArg = true;
+ break;
+ }
+ default:
+ jj_la1[46] = jj_gen;
+ ;
+ }
+ id = VariableDeclaratorId();
+Position begin = modifier.begin.orIfInvalid(type.getBegin());
+ Pair<Type, List<ArrayBracketPair>> typeListPair = unwrapArrayTypes(type);
+ return new Parameter(range(begin, tokenEnd()), modifier.modifiers, modifier.annotations, typeListPair.a, typeListPair.b, isVarArg, id);
+ }
+
+ final public ConstructorDeclaration ConstructorDeclaration(ModifierHolder modifier) {RangedList<TypeParameter> typeParameters = new RangedList<TypeParameter>(null);
+ NameExpr name;
+ List<Parameter> parameters;
+ List<ReferenceType> throws_ = null;
+ ExplicitConstructorInvocationStmt exConsInv = null;
+ List<Statement> stmts;
+ Position begin = modifier.begin;
+ Position blockBegin = INVALID;
+ ReferenceType throwType;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeParameters = TypeParameters();
+begin = begin.orIfInvalid(typeParameters.range.begin);
+ break;
+ }
+ default:
+ jj_la1[47] = jj_gen;
+ ;
+ }
+ // Modifiers matched in the caller
+ name = SimpleName();
+begin = begin.orIfInvalid(typeParameters.range.begin);
+ parameters = FormalParameters();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case THROWS:{
+ jj_consume_token(THROWS);
+ throwType = ReferenceTypeWithAnnotations();
+throws_ = add(throws_, throwType);
+ label_20:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[48] = jj_gen;
+ break label_20;
+ }
+ jj_consume_token(COMMA);
+ throwType = ReferenceTypeWithAnnotations();
+throws_ = add(throws_, throwType);
+ }
+ break;
+ }
+ default:
+ jj_la1[49] = jj_gen;
+ ;
+ }
+ jj_consume_token(LBRACE);
+blockBegin=tokenBegin();
+ if (jj_2_8(2147483647)) {
+ exConsInv = ExplicitConstructorInvocation();
+ } else {
+ ;
+ }
+ stmts = Statements();
+ jj_consume_token(RBRACE);
+if (exConsInv != null) {
+ stmts = add(0, stmts, exConsInv);
+ }
+ ConstructorDeclaration tmp = new ConstructorDeclaration(range(begin, pos(token.endLine, token.endColumn)), modifier.modifiers, modifier.annotations, typeParameters.list, null, parameters, throws_, new BlockStmt(range(blockBegin, tokenEnd()), stmts));
+ tmp.setNameExpr(name);
+ return tmp;
+ }
+
+ final public ExplicitConstructorInvocationStmt ExplicitConstructorInvocation() {boolean isThis = false;
+ List<Expression> args;
+ Expression expr = null;
+ RangedList<Type<?>> typeArgs = new RangedList<Type<?>>(null);
+ Position begin = INVALID;
+ if (jj_2_10(2147483647)) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeArgs = TypeArguments();
+begin=typeArgs.range.begin;
+ break;
+ }
+ default:
+ jj_la1[50] = jj_gen;
+ ;
+ }
+ jj_consume_token(THIS);
+begin = begin.orIfInvalid(tokenBegin()); isThis = true;
+ args = Arguments();
+ jj_consume_token(SEMICOLON);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LT:{
+ if (jj_2_9(2147483647)) {
+ expr = PrimaryExpressionWithoutSuperSuffix();
+ jj_consume_token(DOT);
+begin=expr.getBegin();
+ } else {
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeArgs = TypeArguments();
+begin = begin.orIfInvalid(typeArgs.range.begin);
+ break;
+ }
+ default:
+ jj_la1[51] = jj_gen;
+ ;
+ }
+ jj_consume_token(SUPER);
+begin = begin.orIfInvalid(tokenBegin());
+ args = Arguments();
+ jj_consume_token(SEMICOLON);
+ break;
+ }
+ default:
+ jj_la1[52] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+return new ExplicitConstructorInvocationStmt(range(begin, tokenEnd()),typeArgs.list, isThis, expr, args);
+ }
+
+ final public List<Statement> Statements() {List<Statement> ret = null;
+ Statement stmt;
+ label_21:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ABSTRACT:
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case CONTINUE:
+ case DO:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case FOR:
+ case IF:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case RETURN:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case TRANSIENT:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case VOLATILE:
+ case WHILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case INCR:
+ case DECR:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[53] = jj_gen;
+ break label_21;
+ }
+ stmt = BlockStatement();
+ret = add(ret, stmt);
+ }
+return ret;
+ }
+
+ final public InitializerDeclaration InitializerDeclaration() {BlockStmt block;
+ Position begin = INVALID;
+ boolean isStatic = false;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case STATIC:{
+ jj_consume_token(STATIC);
+isStatic = true; begin=tokenBegin();
+ break;
+ }
+ default:
+ jj_la1[54] = jj_gen;
+ ;
+ }
+ block = Block();
+begin = begin.orIfInvalid(block.getBegin());
+return new InitializerDeclaration(range(begin, tokenEnd()), isStatic, block);
+ }
+
+/*
+ * Type, name and expression syntax follows.
+ */
+ final public
+Type Type() {Type ret;
+ if (jj_2_11(2)) {
+ ret = ReferenceType();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:{
+ ret = PrimitiveType();
+ break;
+ }
+ default:
+ jj_la1[55] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+return ret;
+ }
+
+ final public ReferenceType ReferenceType() {Type type;
+ ArrayBracketPair arrayBracketPair;
+ List<ArrayBracketPair> arrayBracketPairs = null;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:{
+ type = PrimitiveType();
+ label_22:
+ while (true) {
+ arrayBracketPair = ArrayBracketPair();
+arrayBracketPairs=add(arrayBracketPairs, arrayBracketPair);
+ if (jj_2_12(2)) {
+ ;
+ } else {
+ break label_22;
+ }
+ }
+ break;
+ }
+ case IDENTIFIER:{
+ type = ClassOrInterfaceType();
+ label_23:
+ while (true) {
+ if (jj_2_13(2)) {
+ ;
+ } else {
+ break label_23;
+ }
+ arrayBracketPair = ArrayBracketPair();
+arrayBracketPairs=add(arrayBracketPairs, arrayBracketPair);
+ }
+ break;
+ }
+ default:
+ jj_la1[56] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return (ReferenceType)wrapInArrayTypes(type, arrayBracketPairs);
+ }
+
+ final public ArrayBracketPair ArrayBracketPair() {List<AnnotationExpr> annotations = null;
+ Position begin = INVALID;
+ annotations = Annotations();
+ jj_consume_token(LBRACKET);
+begin = begin.orIfInvalid(tokenBegin());
+ jj_consume_token(RBRACKET);
+return new ArrayBracketPair(range(begin, tokenEnd()), annotations);
+ }
+
+ final public IntersectionType IntersectionType() {Position begin;
+ ReferenceType elementType;
+ List<ReferenceType> elements = null;
+ elementType = ReferenceType();
+begin=elementType.getBegin(); elements = add(elements, elementType);
+ jj_consume_token(BIT_AND);
+ label_24:
+ while (true) {
+ elementType = ReferenceType();
+elements = add(elements, elementType);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[57] = jj_gen;
+ break label_24;
+ }
+ }
+return new IntersectionType(range(begin, tokenEnd()), elements);
+ }
+
+ final public ClassOrInterfaceType AnnotatedClassOrInterfaceType() {List<AnnotationExpr> annotations;
+ ClassOrInterfaceType cit;
+ annotations = Annotations();
+ cit = ClassOrInterfaceType();
+if (cit.getScope()!=null) {
+ cit.getScope().setAnnotations(annotations);
+ } else {
+ cit.setAnnotations(annotations);
+ }
+ return cit;
+ }
+
+ final public ClassOrInterfaceType ClassOrInterfaceType() {ClassOrInterfaceType ret;
+ String name;
+ RangedList<Type<?>> typeArgs = new RangedList<Type<?>>(null);
+ Position begin;
+ List<AnnotationExpr> annotations = null;
+ jj_consume_token(IDENTIFIER);
+begin=tokenBegin();
+name = token.image;
+ if (jj_2_14(2)) {
+ typeArgs = TypeArguments();
+ } else {
+ ;
+ }
+ret = new ClassOrInterfaceType(range(begin, tokenEnd()),null, name, typeArgs.list);
+ label_25:
+ while (true) {
+ if (jj_2_15(2)) {
+ ;
+ } else {
+ break label_25;
+ }
+ jj_consume_token(DOT);
+ annotations = Annotations();
+ jj_consume_token(IDENTIFIER);
+name = token.image;
+ if (jj_2_16(2)) {
+ typeArgs = TypeArguments();
+ } else {
+ ;
+ }
+ret = new ClassOrInterfaceType(range(begin, tokenEnd()),ret, name, typeArgs.list);
+ ret.setAnnotations(annotations);
+ annotations = null;
+ }
+return ret;
+ }
+
+ final public RangedList<Type<?>> TypeArguments() {RangedList<Type<?>> ret = new RangedList<Type<?>>(new LinkedList<Type<?>>());
+ Type type;
+ jj_consume_token(LT);
+ret.beginAt(tokenBegin());
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ case AT:
+ case HOOK:{
+ type = TypeArgument();
+ret.add(type);
+ label_26:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[58] = jj_gen;
+ break label_26;
+ }
+ jj_consume_token(COMMA);
+ type = TypeArgument();
+ret.add(type);
+ }
+ break;
+ }
+ default:
+ jj_la1[59] = jj_gen;
+ ;
+ }
+ jj_consume_token(GT);
+ret.endAt(tokenEnd());
+return ret;
+ }
+
+ final public Type TypeArgument() {Type ret;
+ List<AnnotationExpr> annotations = null;
+ annotations = Annotations();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:{
+ ret = ReferenceType();
+ break;
+ }
+ case HOOK:{
+ ret = Wildcard();
+ break;
+ }
+ default:
+ jj_la1[60] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ret.setAnnotations(annotations); return ret;
+ }
+
+ final public WildcardType Wildcard() {ReferenceType ext = null;
+ ReferenceType sup = null;
+ Position begin;
+ List<AnnotationExpr> annotations = null;
+ jj_consume_token(HOOK);
+begin=tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case EXTENDS:
+ case SUPER:{
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case EXTENDS:{
+ jj_consume_token(EXTENDS);
+ annotations = Annotations();
+ ext = ReferenceType();
+ext.setAnnotations(annotations);
+ break;
+ }
+ case SUPER:{
+ jj_consume_token(SUPER);
+ annotations = Annotations();
+ sup = ReferenceType();
+sup.setAnnotations(annotations);
+ break;
+ }
+ default:
+ jj_la1[61] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ }
+ default:
+ jj_la1[62] = jj_gen;
+ ;
+ }
+return new WildcardType(range(begin, tokenEnd()),ext, sup);
+ }
+
+ final public PrimitiveType PrimitiveType() {PrimitiveType ret;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:{
+ jj_consume_token(BOOLEAN);
+ret = new PrimitiveType(tokenRange(), PrimitiveType.Primitive.Boolean);
+ break;
+ }
+ case CHAR:{
+ jj_consume_token(CHAR);
+ret = new PrimitiveType(tokenRange(), PrimitiveType.Primitive.Char);
+ break;
+ }
+ case BYTE:{
+ jj_consume_token(BYTE);
+ret = new PrimitiveType(tokenRange(), PrimitiveType.Primitive.Byte);
+ break;
+ }
+ case SHORT:{
+ jj_consume_token(SHORT);
+ret = new PrimitiveType(tokenRange(), PrimitiveType.Primitive.Short);
+ break;
+ }
+ case INT:{
+ jj_consume_token(INT);
+ret = new PrimitiveType(tokenRange(), PrimitiveType.Primitive.Int);
+ break;
+ }
+ case LONG:{
+ jj_consume_token(LONG);
+ret = new PrimitiveType(tokenRange(), PrimitiveType.Primitive.Long);
+ break;
+ }
+ case FLOAT:{
+ jj_consume_token(FLOAT);
+ret = new PrimitiveType(tokenRange(), PrimitiveType.Primitive.Float);
+ break;
+ }
+ case DOUBLE:{
+ jj_consume_token(DOUBLE);
+ret = new PrimitiveType(tokenRange(), PrimitiveType.Primitive.Double);
+ break;
+ }
+ default:
+ jj_la1[63] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public Type ResultType() {Type ret;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case VOID:{
+ jj_consume_token(VOID);
+ret = new VoidType(tokenRange());
+ break;
+ }
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:{
+ ret = Type();
+ break;
+ }
+ default:
+ jj_la1[64] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public NameExpr Name() {NameExpr ret;
+ jj_consume_token(IDENTIFIER);
+ret = new NameExpr(tokenRange(), token.image);
+ label_27:
+ while (true) {
+ if (jj_2_17(2)) {
+ ;
+ } else {
+ break label_27;
+ }
+ jj_consume_token(DOT);
+ jj_consume_token(IDENTIFIER);
+ret = new QualifiedNameExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, token.image);
+ }
+return ret;
+ }
+
+ final public NameExpr SimpleName() {NameExpr ret;
+ jj_consume_token(IDENTIFIER);
+ret = new NameExpr(tokenRange(), token.image);
+return ret;
+ }
+
+/*
+ * Expression syntax follows.
+ */
+ final public
+Expression Expression() {Expression ret;
+ AssignExpr.Operator op;
+ Expression value;
+ Statement lambdaBody = null;
+ RangedList<Type<?>> typeArgs = new RangedList<Type<?>>(null);
+ ret = ConditionalExpression();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ASSIGN:
+ case PLUSASSIGN:
+ case MINUSASSIGN:
+ case STARASSIGN:
+ case SLASHASSIGN:
+ case ANDASSIGN:
+ case ORASSIGN:
+ case XORASSIGN:
+ case REMASSIGN:
+ case LSHIFTASSIGN:
+ case RSIGNEDSHIFTASSIGN:
+ case RUNSIGNEDSHIFTASSIGN:
+ case ARROW:
+ case DOUBLECOLON:{
+ if (jj_2_18(2)) {
+ op = AssignmentOperator();
+ value = Expression();
+ret = new AssignExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, value, op);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ARROW:{
+ jj_consume_token(ARROW);
+ lambdaBody = LambdaBody();
+if (ret instanceof CastExpr)
+ {
+ ret = generateLambda(ret, lambdaBody);
+ }
+ else if (ret instanceof ConditionalExpr){
+ ConditionalExpr ce = (ConditionalExpr) ret;
+ if(ce.getElseExpr() != null){
+ ce.setElseExpr(generateLambda(ce.getElseExpr(), lambdaBody));
+ }
+ }
+ else
+ {
+ ret = generateLambda(ret, lambdaBody);
+ }
+ break;
+ }
+ case DOUBLECOLON:{
+ jj_consume_token(DOUBLECOLON);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeArgs = TypeArguments();
+ break;
+ }
+ default:
+ jj_la1[65] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IDENTIFIER:{
+ jj_consume_token(IDENTIFIER);
+ break;
+ }
+ case NEW:{
+ jj_consume_token(NEW);
+ break;
+ }
+ default:
+ jj_la1[66] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ret = new MethodReferenceExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, typeArgs.list, token.image);
+ break;
+ }
+ default:
+ jj_la1[67] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ }
+ default:
+ jj_la1[68] = jj_gen;
+ ;
+ }
+return ret;
+ }
+
+ final public AssignExpr.Operator AssignmentOperator() {AssignExpr.Operator ret;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ASSIGN:{
+ jj_consume_token(ASSIGN);
+ret = AssignExpr.Operator.assign;
+ break;
+ }
+ case STARASSIGN:{
+ jj_consume_token(STARASSIGN);
+ret = AssignExpr.Operator.star;
+ break;
+ }
+ case SLASHASSIGN:{
+ jj_consume_token(SLASHASSIGN);
+ret = AssignExpr.Operator.slash;
+ break;
+ }
+ case REMASSIGN:{
+ jj_consume_token(REMASSIGN);
+ret = AssignExpr.Operator.rem;
+ break;
+ }
+ case PLUSASSIGN:{
+ jj_consume_token(PLUSASSIGN);
+ret = AssignExpr.Operator.plus;
+ break;
+ }
+ case MINUSASSIGN:{
+ jj_consume_token(MINUSASSIGN);
+ret = AssignExpr.Operator.minus;
+ break;
+ }
+ case LSHIFTASSIGN:{
+ jj_consume_token(LSHIFTASSIGN);
+ret = AssignExpr.Operator.lShift;
+ break;
+ }
+ case RSIGNEDSHIFTASSIGN:{
+ jj_consume_token(RSIGNEDSHIFTASSIGN);
+ret = AssignExpr.Operator.rSignedShift;
+ break;
+ }
+ case RUNSIGNEDSHIFTASSIGN:{
+ jj_consume_token(RUNSIGNEDSHIFTASSIGN);
+ret = AssignExpr.Operator.rUnsignedShift;
+ break;
+ }
+ case ANDASSIGN:{
+ jj_consume_token(ANDASSIGN);
+ret = AssignExpr.Operator.and;
+ break;
+ }
+ case XORASSIGN:{
+ jj_consume_token(XORASSIGN);
+ret = AssignExpr.Operator.xor;
+ break;
+ }
+ case ORASSIGN:{
+ jj_consume_token(ORASSIGN);
+ret = AssignExpr.Operator.or;
+ break;
+ }
+ default:
+ jj_la1[69] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public Expression ConditionalExpression() {Expression ret;
+ Expression left;
+ Expression right;
+ ret = ConditionalOrExpression();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case HOOK:{
+ jj_consume_token(HOOK);
+ left = Expression();
+ jj_consume_token(COLON);
+ right = ConditionalExpression();
+ret = new ConditionalExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, left, right);
+ break;
+ }
+ default:
+ jj_la1[70] = jj_gen;
+ ;
+ }
+return ret;
+ }
+
+ final public Expression ConditionalOrExpression() {Expression ret;
+ Expression right;
+ ret = ConditionalAndExpression();
+ label_28:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case SC_OR:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[71] = jj_gen;
+ break label_28;
+ }
+ jj_consume_token(SC_OR);
+ right = ConditionalAndExpression();
+ret = new BinaryExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, right, BinaryExpr.Operator.or);
+ }
+return ret;
+ }
+
+ final public Expression ConditionalAndExpression() {Expression ret;
+ Expression right;
+ ret = InclusiveOrExpression();
+ label_29:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case SC_AND:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[72] = jj_gen;
+ break label_29;
+ }
+ jj_consume_token(SC_AND);
+ right = InclusiveOrExpression();
+ret = new BinaryExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, right, BinaryExpr.Operator.and);
+ }
+return ret;
+ }
+
+ final public Expression InclusiveOrExpression() {Expression ret;
+ Expression right;
+ ret = ExclusiveOrExpression();
+ label_30:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BIT_OR:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[73] = jj_gen;
+ break label_30;
+ }
+ jj_consume_token(BIT_OR);
+ right = ExclusiveOrExpression();
+ret = new BinaryExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, right, BinaryExpr.Operator.binOr);
+ }
+return ret;
+ }
+
+ final public Expression ExclusiveOrExpression() {Expression ret;
+ Expression right;
+ ret = AndExpression();
+ label_31:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case XOR:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[74] = jj_gen;
+ break label_31;
+ }
+ jj_consume_token(XOR);
+ right = AndExpression();
+ret = new BinaryExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, right, BinaryExpr.Operator.xor);
+ }
+return ret;
+ }
+
+ final public Expression AndExpression() {Expression ret;
+ Expression right;
+ ret = EqualityExpression();
+ label_32:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BIT_AND:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[75] = jj_gen;
+ break label_32;
+ }
+ jj_consume_token(BIT_AND);
+ right = EqualityExpression();
+ret = new BinaryExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, right, BinaryExpr.Operator.binAnd);
+ }
+return ret;
+ }
+
+ final public Expression EqualityExpression() {Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = InstanceOfExpression();
+ label_33:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case EQ:
+ case NE:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[76] = jj_gen;
+ break label_33;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case EQ:{
+ jj_consume_token(EQ);
+op = BinaryExpr.Operator.equals;
+ break;
+ }
+ case NE:{
+ jj_consume_token(NE);
+op = BinaryExpr.Operator.notEquals;
+ break;
+ }
+ default:
+ jj_la1[77] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = InstanceOfExpression();
+ret = new BinaryExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, right, op);
+ }
+return ret;
+ }
+
+ final public Expression InstanceOfExpression() {Expression ret;
+ Type type;
+ ret = RelationalExpression();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case INSTANCEOF:{
+ jj_consume_token(INSTANCEOF);
+ type = Type();
+ret = new InstanceOfExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, type);
+ break;
+ }
+ default:
+ jj_la1[78] = jj_gen;
+ ;
+ }
+return ret;
+ }
+
+ final public Expression RelationalExpression() {Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = ShiftExpression();
+ label_34:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:
+ case LE:
+ case GE:
+ case GT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[79] = jj_gen;
+ break label_34;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ jj_consume_token(LT);
+op = BinaryExpr.Operator.less;
+ break;
+ }
+ case GT:{
+ jj_consume_token(GT);
+op = BinaryExpr.Operator.greater;
+ break;
+ }
+ case LE:{
+ jj_consume_token(LE);
+op = BinaryExpr.Operator.lessEquals;
+ break;
+ }
+ case GE:{
+ jj_consume_token(GE);
+op = BinaryExpr.Operator.greaterEquals;
+ break;
+ }
+ default:
+ jj_la1[80] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = ShiftExpression();
+ret = new BinaryExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, right, op);
+ }
+return ret;
+ }
+
+ final public Expression ShiftExpression() {Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = AdditiveExpression();
+ label_35:
+ while (true) {
+ if (jj_2_19(1)) {
+ ;
+ } else {
+ break label_35;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LSHIFT:{
+ jj_consume_token(LSHIFT);
+op = BinaryExpr.Operator.lShift;
+ break;
+ }
+ default:
+ jj_la1[81] = jj_gen;
+ if (jj_2_20(1)) {
+ RSIGNEDSHIFT();
+op = BinaryExpr.Operator.rSignedShift;
+ } else if (jj_2_21(1)) {
+ RUNSIGNEDSHIFT();
+op = BinaryExpr.Operator.rUnsignedShift;
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ right = AdditiveExpression();
+ret = new BinaryExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, right, op);
+ }
+return ret;
+ }
+
+ final public Expression AdditiveExpression() {Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = MultiplicativeExpression();
+ label_36:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case PLUS:
+ case MINUS:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[82] = jj_gen;
+ break label_36;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case PLUS:{
+ jj_consume_token(PLUS);
+op = BinaryExpr.Operator.plus;
+ break;
+ }
+ case MINUS:{
+ jj_consume_token(MINUS);
+op = BinaryExpr.Operator.minus;
+ break;
+ }
+ default:
+ jj_la1[83] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = MultiplicativeExpression();
+ret = new BinaryExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, right, op);
+ }
+return ret;
+ }
+
+ final public Expression MultiplicativeExpression() {Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = UnaryExpression();
+ label_37:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case STAR:
+ case SLASH:
+ case REM:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[84] = jj_gen;
+ break label_37;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case STAR:{
+ jj_consume_token(STAR);
+op = BinaryExpr.Operator.times;
+ break;
+ }
+ case SLASH:{
+ jj_consume_token(SLASH);
+op = BinaryExpr.Operator.divide;
+ break;
+ }
+ case REM:{
+ jj_consume_token(REM);
+op = BinaryExpr.Operator.remainder;
+ break;
+ }
+ default:
+ jj_la1[85] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = UnaryExpression();
+ret = new BinaryExpr(range(ret.getBegin(), tokenEnd()), ret, right, op);
+ }
+return ret;
+ }
+
+ final public Expression UnaryExpression() {Expression ret;
+ UnaryExpr.Operator op;
+ Position begin = INVALID;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case INCR:{
+ ret = PreIncrementExpression();
+ break;
+ }
+ case DECR:{
+ ret = PreDecrementExpression();
+ break;
+ }
+ case PLUS:
+ case MINUS:{
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case PLUS:{
+ jj_consume_token(PLUS);
+op = UnaryExpr.Operator.positive; begin=tokenBegin();
+ break;
+ }
+ case MINUS:{
+ jj_consume_token(MINUS);
+op = UnaryExpr.Operator.negative; begin=tokenBegin();
+ break;
+ }
+ default:
+ jj_la1[86] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = UnaryExpression();
+if(op == UnaryExpr.Operator.negative) {
+ if (ret instanceof IntegerLiteralExpr && ((IntegerLiteralExpr)ret).isMinValue()) {
+ ret = new IntegerLiteralMinValueExpr(range(begin, tokenEnd()));
+ } else if (ret instanceof LongLiteralExpr && ((LongLiteralExpr)ret).isMinValue()) {
+ ret = new LongLiteralMinValueExpr(range(begin, tokenEnd()));
+ } else {
+ ret = new UnaryExpr(range(begin, tokenEnd()), ret, op);
+ }
+ } else {
+ ret = new UnaryExpr(range(begin, tokenEnd()), ret, op);
+ }
+ break;
+ }
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:{
+ ret = UnaryExpressionNotPlusMinus();
+ break;
+ }
+ default:
+ jj_la1[87] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public Expression PreIncrementExpression() {Expression ret;
+ Position begin = INVALID;
+ jj_consume_token(INCR);
+begin=tokenBegin();
+ ret = UnaryExpression();
+ret = new UnaryExpr(range(begin, tokenEnd()), ret, UnaryExpr.Operator.preIncrement);
+return ret;
+ }
+
+ final public Expression PreDecrementExpression() {Expression ret;
+ Position begin;
+ jj_consume_token(DECR);
+begin=tokenBegin();
+ ret = UnaryExpression();
+ret = new UnaryExpr(range(begin, tokenEnd()), ret, UnaryExpr.Operator.preDecrement);
+return ret;
+ }
+
+ final public Expression UnaryExpressionNotPlusMinus() {Expression ret;
+ UnaryExpr.Operator op;
+ Position begin = INVALID;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BANG:
+ case TILDE:{
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case TILDE:{
+ jj_consume_token(TILDE);
+op = UnaryExpr.Operator.inverse; begin=tokenBegin();
+ break;
+ }
+ case BANG:{
+ jj_consume_token(BANG);
+op = UnaryExpr.Operator.not; begin=tokenBegin();
+ break;
+ }
+ default:
+ jj_la1[88] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = UnaryExpression();
+ret = new UnaryExpr(range(begin, tokenEnd()), ret, op);
+ break;
+ }
+ default:
+ jj_la1[89] = jj_gen;
+ if (jj_2_22(2147483647)) {
+ ret = CastExpression();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:{
+ ret = PostfixExpression();
+ break;
+ }
+ default:
+ jj_la1[90] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+return ret;
+ }
+
+ final public Expression PostfixExpression() {Expression ret;
+ UnaryExpr.Operator op;
+ ret = PrimaryExpression();
+ if (jj_2_23(2)) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case INCR:{
+ jj_consume_token(INCR);
+op = UnaryExpr.Operator.posIncrement;
+ break;
+ }
+ case DECR:{
+ jj_consume_token(DECR);
+op = UnaryExpr.Operator.posDecrement;
+ break;
+ }
+ default:
+ jj_la1[91] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ret = new UnaryExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, op);
+ } else {
+ ;
+ }
+return ret;
+ }
+
+ final public Expression CastExpression() {Expression ret;
+ ReferenceType referenceType;
+ PrimitiveType primitiveType;
+ Position begin = INVALID;
+ List<AnnotationExpr> annotations = null;
+ List<ReferenceType> typesOfMultiCast = null;
+ jj_consume_token(LPAREN);
+begin=tokenBegin();
+ annotations = Annotations();
+ if (jj_2_24(2)) {
+ primitiveType = PrimitiveType();
+ jj_consume_token(RPAREN);
+ ret = UnaryExpression();
+primitiveType.setAnnotations(annotations); ret = new CastExpr(range(begin, tokenEnd()), primitiveType, ret);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:{
+ referenceType = ReferenceType();
+typesOfMultiCast = add(typesOfMultiCast, referenceType); referenceType.setAnnotations(annotations);
+ label_38:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BIT_AND:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[92] = jj_gen;
+ break label_38;
+ }
+ jj_consume_token(BIT_AND);
+ referenceType = ReferenceType();
+typesOfMultiCast = add(typesOfMultiCast, referenceType);
+ }
+ jj_consume_token(RPAREN);
+ ret = UnaryExpressionNotPlusMinus();
+if (typesOfMultiCast.size() > 1) {
+ ret = new CastExpr(range(begin, tokenEnd()), new IntersectionType(range(begin, tokenEnd()), typesOfMultiCast), ret);
+ }
+ ret = new CastExpr(range(begin, tokenEnd()), referenceType, ret);
+ break;
+ }
+ default:
+ jj_la1[93] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+return ret;
+ }
+
+ final public Expression PrimaryExpression() {Expression ret;
+ ret = PrimaryPrefix();
+ label_39:
+ while (true) {
+ if (jj_2_25(2)) {
+ ;
+ } else {
+ break label_39;
+ }
+ ret = PrimarySuffix(ret);
+ }
+return ret;
+ }
+
+ final public Expression PrimaryExpressionWithoutSuperSuffix() {Expression ret;
+ ret = PrimaryPrefix();
+ label_40:
+ while (true) {
+ if (jj_2_26(2147483647)) {
+ ;
+ } else {
+ break label_40;
+ }
+ ret = PrimarySuffixWithoutSuper(ret);
+ }
+return ret;
+ }
+
+ final public Expression PrimaryPrefix() {Expression ret = null;
+ NameExpr name;
+ RangedList<Type<?>> typeArgs = new RangedList<Type<?>>(null);
+ List<Expression> args = null;
+ List<Parameter> params = null;
+ boolean hasArgs = false;
+ boolean isLambda = false;
+ Type type;
+ Position begin;
+ Parameter p = null;
+ VariableDeclaratorId id = null;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case FALSE:
+ case NULL:
+ case TRUE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:{
+ ret = Literal();
+ break;
+ }
+ case THIS:{
+ jj_consume_token(THIS);
+ret = new ThisExpr(tokenRange(), null);
+ break;
+ }
+ case SUPER:{
+ jj_consume_token(SUPER);
+ret = new SuperExpr(tokenRange(), null);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case DOT:{
+ jj_consume_token(DOT);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeArgs = TypeArguments();
+ break;
+ }
+ default:
+ jj_la1[94] = jj_gen;
+ ;
+ }
+ name = SimpleName();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LPAREN:{
+ args = Arguments();
+hasArgs=true;
+ break;
+ }
+ default:
+ jj_la1[95] = jj_gen;
+ ;
+ }
+if (hasArgs) {
+ MethodCallExpr m = new MethodCallExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, typeArgs.list, null, args);
+ m.setNameExpr(name);
+ ret = m;
+ } else {
+ FieldAccessExpr f = new FieldAccessExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, null, null);
+ f.setFieldExpr(name);
+ ret = f;
+ }
+ break;
+ }
+ case DOUBLECOLON:{
+ jj_consume_token(DOUBLECOLON);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeArgs = TypeArguments();
+ break;
+ }
+ default:
+ jj_la1[96] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IDENTIFIER:{
+ jj_consume_token(IDENTIFIER);
+ break;
+ }
+ case NEW:{
+ jj_consume_token(NEW);
+ break;
+ }
+ default:
+ jj_la1[97] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ret = new MethodReferenceExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, typeArgs.list, token.image);
+ break;
+ }
+ default:
+ jj_la1[98] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ }
+ case LPAREN:{
+ jj_consume_token(LPAREN);
+begin=tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SYNCHRONIZED:
+ case THIS:
+ case TRANSIENT:
+ case TRUE:
+ case VOID:
+ case VOLATILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ if (jj_2_27(2147483647)) {
+ p = FormalParameter();
+isLambda = true;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ params = FormalLambdaParameters();
+ break;
+ }
+ default:
+ jj_la1[99] = jj_gen;
+ ;
+ }
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ ret = Expression();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ params = InferredLambdaParameters();
+isLambda = true;
+ break;
+ }
+ default:
+ jj_la1[100] = jj_gen;
+ ;
+ }
+ break;
+ }
+ default:
+ jj_la1[101] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ }
+ default:
+ jj_la1[102] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+if(!isLambda) { ret = new EnclosedExpr(range(begin, tokenEnd()), ret);}
+ else{
+ if(ret != null){
+ if(ret instanceof NameExpr)
+ {
+ id = new VariableDeclaratorId(range(ret.getBegin(), ret.getEnd()), ((NameExpr)ret).getName(), null);
+ p = new Parameter(range(ret.getBegin(), ret.getEnd()), EnumSet.noneOf(Modifier.class), null, new UnknownType(), null, false, id);
+ }
+
+ }
+ params = add(0, params, p);
+ // TODO p may be null here
+ ret = new LambdaExpr(range(p.getBegin(), tokenEnd()), params, null, true);
+ }
+ break;
+ }
+ case NEW:{
+ ret = AllocationExpression(null);
+ break;
+ }
+ default:
+ jj_la1[106] = jj_gen;
+ if (jj_2_28(2147483647)) {
+ type = ResultType();
+ jj_consume_token(DOT);
+ jj_consume_token(CLASS);
+ret = new ClassExpr(range(type.getBegin(), tokenEnd()), type);
+ } else if (jj_2_29(2147483647)) {
+ type = ResultType();
+ jj_consume_token(DOUBLECOLON);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeArgs = TypeArguments();
+ break;
+ }
+ default:
+ jj_la1[103] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IDENTIFIER:{
+ jj_consume_token(IDENTIFIER);
+ break;
+ }
+ case NEW:{
+ jj_consume_token(NEW);
+ break;
+ }
+ default:
+ jj_la1[104] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ret = new TypeExpr(type.getRange(), type);
+ ret = new MethodReferenceExpr(ret.getRange(), ret, typeArgs.list, token.image);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IDENTIFIER:{
+ name = SimpleName();
+begin=tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LPAREN:{
+ args = Arguments();
+hasArgs=true;
+ break;
+ }
+ default:
+ jj_la1[105] = jj_gen;
+ ;
+ }
+if (hasArgs) {
+ MethodCallExpr m = new MethodCallExpr(range(begin, tokenEnd()), null, null, null, args);
+ m.setNameExpr(name);
+ ret = m;
+ } else {
+ ret = name;
+ }
+ break;
+ }
+ default:
+ jj_la1[107] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+return ret;
+ }
+
+ final public Expression PrimarySuffix(Expression scope) {Expression ret;
+ if (jj_2_30(2)) {
+ ret = PrimarySuffixWithoutSuper(scope);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case DOT:{
+ jj_consume_token(DOT);
+ jj_consume_token(SUPER);
+ret = new SuperExpr(range(scope.getBegin(), tokenEnd()), scope);
+ break;
+ }
+ default:
+ jj_la1[108] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+return ret;
+ }
+
+ final public Expression PrimarySuffixWithoutSuper(Expression scope) {Expression ret;
+ RangedList<Type<?>> typeArgs = new RangedList<Type<?>>(null);
+ List<Expression> args = null;
+ boolean hasArgs = false;
+ NameExpr name;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case DOT:{
+ jj_consume_token(DOT);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case THIS:{
+ jj_consume_token(THIS);
+ret = new ThisExpr(range(scope.getBegin(), tokenEnd()), scope);
+ break;
+ }
+ case NEW:{
+ ret = AllocationExpression(scope);
+ break;
+ }
+ default:
+ jj_la1[111] = jj_gen;
+ if (jj_2_31(2147483647)) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeArgs = TypeArguments();
+ break;
+ }
+ default:
+ jj_la1[109] = jj_gen;
+ ;
+ }
+ name = SimpleName();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LPAREN:{
+ args = Arguments();
+hasArgs=true;
+ break;
+ }
+ default:
+ jj_la1[110] = jj_gen;
+ ;
+ }
+if (hasArgs) {
+ MethodCallExpr m = new MethodCallExpr(range(scope.getBegin(), tokenEnd()), scope, typeArgs.list, null, args);
+ m.setNameExpr(name);
+ ret = m;
+ } else {
+ FieldAccessExpr f = new FieldAccessExpr(range(scope.getBegin(), tokenEnd()), scope, typeArgs.list, null);
+ f.setFieldExpr(name);
+ ret = f;
+ }
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ }
+ case LBRACKET:{
+ jj_consume_token(LBRACKET);
+ ret = Expression();
+ jj_consume_token(RBRACKET);
+ret = new ArrayAccessExpr(range(scope.getBegin(), tokenEnd()), scope, ret);
+ break;
+ }
+ default:
+ jj_la1[112] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public Expression Literal() {Expression ret;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case INTEGER_LITERAL:{
+ jj_consume_token(INTEGER_LITERAL);
+ret = new IntegerLiteralExpr(tokenRange(), token.image);
+ break;
+ }
+ case LONG_LITERAL:{
+ jj_consume_token(LONG_LITERAL);
+ret = new LongLiteralExpr(tokenRange(), token.image);
+ break;
+ }
+ case FLOATING_POINT_LITERAL:{
+ jj_consume_token(FLOATING_POINT_LITERAL);
+ret = new DoubleLiteralExpr(tokenRange(), token.image);
+ break;
+ }
+ case CHARACTER_LITERAL:{
+ jj_consume_token(CHARACTER_LITERAL);
+ret = new CharLiteralExpr(tokenRange(), token.image.substring(1, token.image.length()-1));
+ break;
+ }
+ case STRING_LITERAL:{
+ jj_consume_token(STRING_LITERAL);
+ret = new StringLiteralExpr(tokenRange(), token.image.substring(1, token.image.length()-1));
+ break;
+ }
+ case FALSE:
+ case TRUE:{
+ ret = BooleanLiteral();
+ break;
+ }
+ case NULL:{
+ ret = NullLiteral();
+ break;
+ }
+ default:
+ jj_la1[113] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public Expression BooleanLiteral() {Expression ret;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case TRUE:{
+ jj_consume_token(TRUE);
+ret = new BooleanLiteralExpr(tokenRange(), true);
+ break;
+ }
+ case FALSE:{
+ jj_consume_token(FALSE);
+ret = new BooleanLiteralExpr(tokenRange(), false);
+ break;
+ }
+ default:
+ jj_la1[114] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public Expression NullLiteral() {
+ jj_consume_token(NULL);
+return new NullLiteralExpr(tokenRange());
+ }
+
+ final public List<Expression> Arguments() {List<Expression> ret = null;
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ ret = ArgumentList();
+ break;
+ }
+ default:
+ jj_la1[115] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+return ret;
+ }
+
+ final public List<Expression> ArgumentList() {List<Expression> ret = new LinkedList<Expression>();
+ Expression expr;
+ expr = Expression();
+ret.add(expr);
+ label_41:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[116] = jj_gen;
+ break label_41;
+ }
+ jj_consume_token(COMMA);
+ expr = Expression();
+ret.add(expr);
+ }
+return ret;
+ }
+
+ final public Expression AllocationExpression(Expression scope) {Expression ret;
+ Type type;
+ RangedList<Type<?>> typeArgs = new RangedList<Type<?>>(null);
+ List<BodyDeclaration<?>> anonymousBody = null;
+ List<Expression> args;
+ Position begin;
+ List<AnnotationExpr> annotations = null;
+ jj_consume_token(NEW);
+if(scope==null) {begin=tokenBegin();} else {begin=scope.getBegin();}
+ annotations = Annotations();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:{
+ type = PrimitiveType();
+type.setAnnotations(annotations);
+ ret = ArrayCreation(begin, type);
+ break;
+ }
+ case IDENTIFIER:
+ case AT:
+ case LT:{
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeArgs = TypeArguments();
+ annotations = Annotations();
+ break;
+ }
+ default:
+ jj_la1[117] = jj_gen;
+ ;
+ }
+ type = AnnotatedClassOrInterfaceType();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LBRACKET:
+ case AT:{
+ ret = ArrayCreation(begin, type);
+ break;
+ }
+ case LPAREN:{
+ args = Arguments();
+ if (jj_2_32(2)) {
+ anonymousBody = ClassOrInterfaceBody(false);
+ } else {
+ ;
+ }
+ret = new ObjectCreationExpr(range(begin, tokenEnd()), scope, (ClassOrInterfaceType) type, typeArgs.list, args, anonymousBody);
+ break;
+ }
+ default:
+ jj_la1[118] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ }
+ default:
+ jj_la1[119] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+/*
+ * The third LOOKAHEAD specification below is to parse to PrimarySuffix
+ * if there is an expression between the "[...]".
+ */
+ final public ArrayCreationExpr ArrayCreation(Position begin, Type type) {Expression expr = null;
+ ArrayInitializerExpr arrayInitializerExpr = null;
+ List<Expression> inits = null;
+ List<List<AnnotationExpr>> accum = null;
+ List<AnnotationExpr> annotations = null;
+ label_42:
+ while (true) {
+ annotations = Annotations();
+ jj_consume_token(LBRACKET);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ expr = Expression();
+ break;
+ }
+ default:
+ jj_la1[120] = jj_gen;
+ ;
+ }
+accum = add(accum, annotations); inits = add(inits, expr); annotations=null; expr=null;
+ jj_consume_token(RBRACKET);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LBRACKET:
+ case AT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[121] = jj_gen;
+ break label_42;
+ }
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LBRACE:{
+ arrayInitializerExpr = ArrayInitializer();
+ break;
+ }
+ default:
+ jj_la1[122] = jj_gen;
+ ;
+ }
+return juggleArrayCreation(range(begin, tokenEnd()), type, inits, accum, arrayInitializerExpr);
+ }
+
+/*
+ * Statement syntax follows.
+ */
+ final public
+Statement Statement() {Statement ret;
+ if (jj_2_33(2)) {
+ ret = LabeledStatement();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ASSERT:{
+ ret = AssertStatement();
+ break;
+ }
+ case LBRACE:{
+ ret = Block();
+ break;
+ }
+ case SEMICOLON:{
+ ret = EmptyStatement();
+ break;
+ }
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case INCR:
+ case DECR:{
+ ret = StatementExpression();
+ break;
+ }
+ case SWITCH:{
+ ret = SwitchStatement();
+ break;
+ }
+ case IF:{
+ ret = IfStatement();
+ break;
+ }
+ case WHILE:{
+ ret = WhileStatement();
+ break;
+ }
+ case DO:{
+ ret = DoStatement();
+ break;
+ }
+ case FOR:{
+ ret = ForStatement();
+ break;
+ }
+ case BREAK:{
+ ret = BreakStatement();
+ break;
+ }
+ case CONTINUE:{
+ ret = ContinueStatement();
+ break;
+ }
+ case RETURN:{
+ ret = ReturnStatement();
+ break;
+ }
+ case THROW:{
+ ret = ThrowStatement();
+ break;
+ }
+ case SYNCHRONIZED:{
+ ret = SynchronizedStatement();
+ break;
+ }
+ case TRY:{
+ ret = TryStatement();
+ break;
+ }
+ default:
+ jj_la1[123] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+return ret;
+ }
+
+ final public AssertStmt AssertStatement() {Expression check;
+ Expression msg = null;
+ Position begin;
+ jj_consume_token(ASSERT);
+begin=tokenBegin();
+ check = Expression();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COLON:{
+ jj_consume_token(COLON);
+ msg = Expression();
+ break;
+ }
+ default:
+ jj_la1[124] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+return new AssertStmt(range(begin, tokenEnd()),check, msg);
+ }
+
+ final public LabeledStmt LabeledStatement() {String label;
+ Statement stmt;
+ Position begin;
+ jj_consume_token(IDENTIFIER);
+begin=tokenBegin();
+label = token.image;
+ jj_consume_token(COLON);
+ stmt = Statement();
+return new LabeledStmt(range(begin, tokenEnd()),label, stmt);
+ }
+
+ final public BlockStmt Block() {List<Statement> stmts;
+ Position begin;
+ jj_consume_token(LBRACE);
+begin=tokenBegin();
+ stmts = Statements();
+ jj_consume_token(RBRACE);
+return new BlockStmt(range(begin, tokenEnd()), stmts);
+ }
+
+/*
+ * Classes inside block stametents can only be abstract or final. The semantic must check it.
+ */
+ final public Statement BlockStatement() {Statement ret;
+ Expression expr;
+ ClassOrInterfaceDeclaration typeDecl;
+ ModifierHolder modifier;
+ if (jj_2_34(2147483647)) {
+
+ modifier = Modifiers();
+ typeDecl = ClassOrInterfaceDeclaration(modifier);
+ret = new TypeDeclarationStmt(range(typeDecl.getBegin().line, typeDecl.getBegin().column, token.endLine, token.endColumn), typeDecl);
+ } else if (jj_2_35(2147483647)) {
+ expr = VariableDeclarationExpression();
+ jj_consume_token(SEMICOLON);
+ret = new ExpressionStmt(range(expr.getBegin().line, expr.getBegin().column, token.endLine, token.endColumn), expr);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CHAR:
+ case CONTINUE:
+ case DO:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case FOR:
+ case IF:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case RETURN:
+ case SHORT:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case WHILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case SEMICOLON:
+ case INCR:
+ case DECR:{
+ ret = Statement();
+ break;
+ }
+ default:
+ jj_la1[125] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+return ret;
+ }
+
+ final public VariableDeclarationExpr VariableDeclarationExpression() {ModifierHolder modifier;
+ Type type;
+ List<VariableDeclarator> variables = new LinkedList<VariableDeclarator>();
+ VariableDeclarator var;
+ modifier = Modifiers();
+ type = Type();
+ var = VariableDeclarator();
+variables.add(var);
+ label_43:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[126] = jj_gen;
+ break label_43;
+ }
+ jj_consume_token(COMMA);
+ var = VariableDeclarator();
+variables.add(var);
+ }
+Position begin=modifier.begin.orIfInvalid(type.getBegin());
+ Pair<Type, List<ArrayBracketPair>> typeListPair = unwrapArrayTypes(type);
+ return new VariableDeclarationExpr(range(begin, tokenEnd()), modifier.modifiers, modifier.annotations, typeListPair.a, variables, typeListPair.b);
+ }
+
+ final public EmptyStmt EmptyStatement() {
+ jj_consume_token(SEMICOLON);
+return new EmptyStmt(tokenRange());
+ }
+
+ final public Statement LambdaBody() {Expression expr;
+ Statement n = null;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ expr = Expression();
+n = new ExpressionStmt(range(expr.getBegin(), tokenEnd()), expr);
+ break;
+ }
+ case LBRACE:{
+ n = Block();
+ break;
+ }
+ default:
+ jj_la1[127] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return n;
+ }
+
+ final public ExpressionStmt StatementExpression() {Expression expr;
+ AssignExpr.Operator op;
+ Expression value;
+ RangedList<Type<?>> typeArgs = new RangedList<Type<?>>(null);
+ Statement lambdaBody;
+ if (jj_2_36(2)) {
+ expr = PreIncrementExpression();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case DECR:{
+ expr = PreDecrementExpression();
+ break;
+ }
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:{
+ expr = PrimaryExpression();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ASSIGN:
+ case INCR:
+ case DECR:
+ case PLUSASSIGN:
+ case MINUSASSIGN:
+ case STARASSIGN:
+ case SLASHASSIGN:
+ case ANDASSIGN:
+ case ORASSIGN:
+ case XORASSIGN:
+ case REMASSIGN:
+ case LSHIFTASSIGN:
+ case RSIGNEDSHIFTASSIGN:
+ case RUNSIGNEDSHIFTASSIGN:
+ case ARROW:
+ case DOUBLECOLON:{
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case INCR:{
+ jj_consume_token(INCR);
+expr = new UnaryExpr(range(expr.getBegin(), tokenEnd()), expr, UnaryExpr.Operator.posIncrement);
+ break;
+ }
+ case DECR:{
+ jj_consume_token(DECR);
+expr = new UnaryExpr(range(expr.getBegin(), tokenEnd()), expr, UnaryExpr.Operator.posDecrement);
+ break;
+ }
+ case ASSIGN:
+ case PLUSASSIGN:
+ case MINUSASSIGN:
+ case STARASSIGN:
+ case SLASHASSIGN:
+ case ANDASSIGN:
+ case ORASSIGN:
+ case XORASSIGN:
+ case REMASSIGN:
+ case LSHIFTASSIGN:
+ case RSIGNEDSHIFTASSIGN:
+ case RUNSIGNEDSHIFTASSIGN:{
+ op = AssignmentOperator();
+ value = Expression();
+expr = new AssignExpr(range(expr.getBegin(), tokenEnd()), expr, value, op);
+ break;
+ }
+ case DOUBLECOLON:{
+ jj_consume_token(DOUBLECOLON);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LT:{
+ typeArgs = TypeArguments();
+ break;
+ }
+ default:
+ jj_la1[128] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IDENTIFIER:{
+ jj_consume_token(IDENTIFIER);
+ break;
+ }
+ case NEW:{
+ jj_consume_token(NEW);
+ break;
+ }
+ default:
+ jj_la1[129] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+expr = new MethodReferenceExpr(range(expr.getBegin(), tokenEnd()), expr, typeArgs.list, token.image);
+ break;
+ }
+ case ARROW:{
+ jj_consume_token(ARROW);
+ lambdaBody = LambdaBody();
+expr = generateLambda(expr, lambdaBody);
+ break;
+ }
+ default:
+ jj_la1[130] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ }
+ default:
+ jj_la1[131] = jj_gen;
+ ;
+ }
+ break;
+ }
+ default:
+ jj_la1[132] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ jj_consume_token(SEMICOLON);
+return new ExpressionStmt(range(expr.getBegin(), tokenEnd()), expr);
+ }
+
+ final public SwitchStmt SwitchStatement() {Expression selector;
+ SwitchEntryStmt entry;
+ List<SwitchEntryStmt> entries = null;
+ Position begin;
+ jj_consume_token(SWITCH);
+begin=tokenBegin();
+ jj_consume_token(LPAREN);
+ selector = Expression();
+ jj_consume_token(RPAREN);
+ jj_consume_token(LBRACE);
+ label_44:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case CASE:
+ case _DEFAULT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[133] = jj_gen;
+ break label_44;
+ }
+ entry = SwitchEntry();
+entries = add(entries, entry);
+ }
+ jj_consume_token(RBRACE);
+return new SwitchStmt(range(begin, tokenEnd()), selector, entries);
+ }
+
+ final public SwitchEntryStmt SwitchEntry() {Expression label = null;
+ List<Statement> stmts;
+ Position begin;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case CASE:{
+ jj_consume_token(CASE);
+begin=tokenBegin();
+ label = Expression();
+ break;
+ }
+ case _DEFAULT:{
+ jj_consume_token(_DEFAULT);
+begin=tokenBegin();
+ break;
+ }
+ default:
+ jj_la1[134] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(COLON);
+ stmts = Statements();
+return new SwitchEntryStmt(range(begin, tokenEnd()),label, stmts);
+ }
+
+ final public IfStmt IfStatement() {Expression condition;
+ Statement thenStmt;
+ Statement elseStmt = null;
+ Position begin;
+ Comment thenCmmt = null;
+ Comment elseCmmt = null;
+ jj_consume_token(IF);
+begin=tokenBegin();
+ jj_consume_token(LPAREN);
+ condition = Expression();
+ jj_consume_token(RPAREN);
+
+ thenStmt = Statement();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ELSE:{
+ jj_consume_token(ELSE);
+
+ elseStmt = Statement();
+ break;
+ }
+ default:
+ jj_la1[135] = jj_gen;
+ ;
+ }
+IfStmt tmp = new IfStmt(range(begin, tokenEnd()),condition, thenStmt, elseStmt);
+
+ // TODO comment is always null
+ thenStmt.setComment(thenCmmt);
+ if (elseStmt != null)
+ // TODO comment is always null
+ elseStmt.setComment(elseCmmt);
+ return tmp;
+ }
+
+ final public WhileStmt WhileStatement() {Expression condition;
+ Statement body;
+ Position begin;
+ jj_consume_token(WHILE);
+begin=tokenBegin();
+ jj_consume_token(LPAREN);
+ condition = Expression();
+ jj_consume_token(RPAREN);
+ body = Statement();
+return new WhileStmt(range(begin, tokenEnd()),condition, body);
+ }
+
+ final public DoStmt DoStatement() {Expression condition;
+ Statement body;
+ Position begin;
+ jj_consume_token(DO);
+begin=tokenBegin();
+ body = Statement();
+ jj_consume_token(WHILE);
+ jj_consume_token(LPAREN);
+ condition = Expression();
+ jj_consume_token(RPAREN);
+ jj_consume_token(SEMICOLON);
+return new DoStmt(range(begin, tokenEnd()),body, condition);
+ }
+
+ final public Statement ForStatement() {VariableDeclarationExpr varExpr = null;
+ Expression expr = null;
+ List<Expression> init = null;
+ List<Expression> update = null;
+ Statement body;
+ Position begin;
+ jj_consume_token(FOR);
+begin=tokenBegin();
+ jj_consume_token(LPAREN);
+ if (jj_2_37(2147483647)) {
+ varExpr = VariableDeclarationExpression();
+ jj_consume_token(COLON);
+ expr = Expression();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SYNCHRONIZED:
+ case THIS:
+ case TRANSIENT:
+ case TRUE:
+ case VOID:
+ case VOLATILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case SEMICOLON:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SYNCHRONIZED:
+ case THIS:
+ case TRANSIENT:
+ case TRUE:
+ case VOID:
+ case VOLATILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ init = ForInit();
+ break;
+ }
+ default:
+ jj_la1[136] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ expr = Expression();
+ break;
+ }
+ default:
+ jj_la1[137] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ update = ForUpdate();
+ break;
+ }
+ default:
+ jj_la1[138] = jj_gen;
+ ;
+ }
+ break;
+ }
+ default:
+ jj_la1[139] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ jj_consume_token(RPAREN);
+ body = Statement();
+if (varExpr != null) {
+ return new ForeachStmt(range(begin, tokenEnd()),varExpr, expr, body);
+ }
+ return new ForStmt(range(begin, tokenEnd()),init, expr, update, body);
+ }
+
+ final public List<Expression> ForInit() {List<Expression> ret;
+ Expression expr;
+ if (jj_2_38(2147483647)) {
+ expr = VariableDeclarationExpression();
+ret = new LinkedList<Expression>(); ret.add(expr);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ ret = ExpressionList();
+ break;
+ }
+ default:
+ jj_la1[140] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+return ret;
+ }
+
+ final public List<Expression> ExpressionList() {List<Expression> ret = new LinkedList<Expression>();
+ Expression expr;
+ expr = Expression();
+ret.add(expr);
+ label_45:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[141] = jj_gen;
+ break label_45;
+ }
+ jj_consume_token(COMMA);
+ expr = Expression();
+ret.add(expr);
+ }
+return ret;
+ }
+
+ final public List<Expression> ForUpdate() {List<Expression> ret;
+ ret = ExpressionList();
+return ret;
+ }
+
+ final public BreakStmt BreakStatement() {String id = null;
+ Position begin;
+ jj_consume_token(BREAK);
+begin=tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IDENTIFIER:{
+ jj_consume_token(IDENTIFIER);
+id = token.image;
+ break;
+ }
+ default:
+ jj_la1[142] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+return new BreakStmt(range(begin, tokenEnd()),id);
+ }
+
+ final public ContinueStmt ContinueStatement() {String id = null;
+ Position begin;
+ jj_consume_token(CONTINUE);
+begin=tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IDENTIFIER:{
+ jj_consume_token(IDENTIFIER);
+id = token.image;
+ break;
+ }
+ default:
+ jj_la1[143] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+return new ContinueStmt(range(begin, tokenEnd()),id);
+ }
+
+ final public ReturnStmt ReturnStatement() {Expression expr = null;
+ Position begin;
+ jj_consume_token(RETURN);
+begin=tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ expr = Expression();
+ break;
+ }
+ default:
+ jj_la1[144] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+return new ReturnStmt(range(begin, tokenEnd()),expr);
+ }
+
+ final public ThrowStmt ThrowStatement() {Expression expr;
+ Position begin;
+ jj_consume_token(THROW);
+begin=tokenBegin();
+ expr = Expression();
+ jj_consume_token(SEMICOLON);
+return new ThrowStmt(range(begin, tokenEnd()),expr);
+ }
+
+ final public SynchronizedStmt SynchronizedStatement() {Expression expr;
+ BlockStmt block;
+ Position begin;
+ jj_consume_token(SYNCHRONIZED);
+begin=tokenBegin();
+ jj_consume_token(LPAREN);
+ expr = Expression();
+ jj_consume_token(RPAREN);
+ block = Block();
+return new SynchronizedStmt(range(begin, tokenEnd()),expr, block);
+ }
+
+ final public TryStmt TryStatement() {List<VariableDeclarationExpr> resources = null;
+ BlockStmt tryBlock;
+ BlockStmt finallyBlock = null;
+ List<CatchClause> catchs = null;
+ BlockStmt catchBlock;
+ ModifierHolder exceptModifier;
+ ReferenceType exceptionType;
+ List<ReferenceType> exceptionTypes = new LinkedList<ReferenceType>();
+ VariableDeclaratorId exceptId;
+ Position begin;
+ Position catchBegin;
+ Type type;
+ jj_consume_token(TRY);
+begin=tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case LPAREN:{
+ resources = ResourceSpecification();
+ break;
+ }
+ default:
+ jj_la1[145] = jj_gen;
+ ;
+ }
+ tryBlock = Block();
+ label_46:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case CATCH:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[146] = jj_gen;
+ break label_46;
+ }
+ jj_consume_token(CATCH);
+catchBegin=tokenBegin();
+ jj_consume_token(LPAREN);
+ exceptModifier = Modifiers();
+ exceptionType = ReferenceType();
+exceptionTypes.add(exceptionType);
+ label_47:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BIT_OR:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[147] = jj_gen;
+ break label_47;
+ }
+ jj_consume_token(BIT_OR);
+ exceptionType = ReferenceTypeWithAnnotations();
+exceptionTypes.add(exceptionType);
+ }
+ exceptId = VariableDeclaratorId();
+ jj_consume_token(RPAREN);
+ catchBlock = Block();
+if (exceptionTypes.size() > 1) {
+ type = new UnionType(exceptionTypes);
+ } else {
+ type = (Type)exceptionTypes.get(0);
+ }
+ catchs = add(catchs, new CatchClause(range(catchBegin, tokenEnd()), exceptModifier.modifiers, exceptModifier.annotations, type, exceptId, catchBlock));
+ exceptionTypes = new LinkedList<ReferenceType>();
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case FINALLY:{
+ jj_consume_token(FINALLY);
+ finallyBlock = Block();
+ break;
+ }
+ default:
+ jj_la1[148] = jj_gen;
+ ;
+ }
+if (finallyBlock==null && catchs==null && resources==null) {
+ addProblem("Try has no finally, no catch, and no resources");
+ }
+ return new TryStmt(range(begin, tokenEnd()), resources, tryBlock, catchs, finallyBlock);
+ }
+
+ final public List<VariableDeclarationExpr> ResourceSpecification() {List<VariableDeclarationExpr> variables;
+ jj_consume_token(LPAREN);
+ variables = Resources();
+ if (jj_2_39(2)) {
+ jj_consume_token(SEMICOLON);
+ } else {
+ ;
+ }
+ jj_consume_token(RPAREN);
+return variables;
+ }
+
+ final public List<VariableDeclarationExpr> Resources() {List<VariableDeclarationExpr> variables = new LinkedList<VariableDeclarationExpr>();
+ VariableDeclarationExpr var;
+ /*this is a bit more lenient than we need to be, eg allowing access modifiers like private*/
+ var = VariableDeclarationExpression();
+variables.add(var);
+ label_48:
+ while (true) {
+ if (jj_2_40(2)) {
+ ;
+ } else {
+ break label_48;
+ }
+ jj_consume_token(SEMICOLON);
+ var = VariableDeclarationExpression();
+variables.add(var);
+ }
+return variables;
+ }
+
+/* We use productions to match >>>, >> and > so that we can keep the
+ * type declaration syntax with generics clean
+ */
+ final public
+void RUNSIGNEDSHIFT() {
+ if (getToken(1).kind == GT &&
+ ((GTToken)getToken(1)).realKind == RUNSIGNEDSHIFT) {
+
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ }
+
+ final public void RSIGNEDSHIFT() {
+ if (getToken(1).kind == GT &&
+ ((GTToken)getToken(1)).realKind == RSIGNEDSHIFT) {
+
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ }
+
+/* Annotation syntax follows. */
+ final public
+List<AnnotationExpr> Annotations() {List<AnnotationExpr> annotations = null;
+ AnnotationExpr annotation;
+ label_49:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case AT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[149] = jj_gen;
+ break label_49;
+ }
+ annotation = Annotation();
+annotations = add(annotations, annotation);
+ }
+return annotations;
+ }
+
+ final public AnnotationExpr Annotation() {AnnotationExpr ret;
+ if (jj_2_41(2147483647)) {
+ ret = NormalAnnotation();
+ } else if (jj_2_42(2147483647)) {
+ ret = SingleMemberAnnotation();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case AT:{
+ ret = MarkerAnnotation();
+ break;
+ }
+ default:
+ jj_la1[150] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+return ret;
+ }
+
+ final public NormalAnnotationExpr NormalAnnotation() {NameExpr name;
+ List<MemberValuePair> pairs = null;
+ Position begin;
+ jj_consume_token(AT);
+begin=tokenBegin();
+ name = Name();
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case IDENTIFIER:{
+ pairs = MemberValuePairs();
+ break;
+ }
+ default:
+ jj_la1[151] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+return new NormalAnnotationExpr(range(begin, tokenEnd()),name, pairs);
+ }
+
+ final public MarkerAnnotationExpr MarkerAnnotation() {NameExpr name;
+ Position begin;
+ jj_consume_token(AT);
+begin=tokenBegin();
+ name = Name();
+return new MarkerAnnotationExpr(range(begin, tokenEnd()),name);
+ }
+
+ final public SingleMemberAnnotationExpr SingleMemberAnnotation() {NameExpr name;
+ Expression memberVal;
+ Position begin;
+ jj_consume_token(AT);
+begin=tokenBegin();
+ name = Name();
+ jj_consume_token(LPAREN);
+ memberVal = MemberValue();
+ jj_consume_token(RPAREN);
+return new SingleMemberAnnotationExpr(range(begin, tokenEnd()),name, memberVal);
+ }
+
+ final public List<MemberValuePair> MemberValuePairs() {List<MemberValuePair> ret = new LinkedList<MemberValuePair>();
+ MemberValuePair pair;
+ pair = MemberValuePair();
+ret.add(pair);
+ label_50:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[152] = jj_gen;
+ break label_50;
+ }
+ jj_consume_token(COMMA);
+ pair = MemberValuePair();
+ret.add(pair);
+ }
+return ret;
+ }
+
+ final public MemberValuePair MemberValuePair() {String name;
+ Expression value;
+ Position begin;
+ jj_consume_token(IDENTIFIER);
+name = token.image; begin=tokenBegin();
+ jj_consume_token(ASSIGN);
+ value = MemberValue();
+return new MemberValuePair(range(begin, tokenEnd()),name, value);
+ }
+
+ final public Expression MemberValue() {Expression ret;
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case AT:{
+ ret = Annotation();
+ break;
+ }
+ case LBRACE:{
+ ret = MemberValueArrayInitializer();
+ break;
+ }
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ ret = ConditionalExpression();
+ break;
+ }
+ default:
+ jj_la1[153] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public Expression MemberValueArrayInitializer() {List<Expression> ret = new LinkedList<Expression>();
+ Expression member;
+ Position begin;
+ jj_consume_token(LBRACE);
+begin=tokenBegin();
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:{
+ member = MemberValue();
+ret.add(member);
+ label_51:
+ while (true) {
+ if (jj_2_43(2)) {
+ ;
+ } else {
+ break label_51;
+ }
+ jj_consume_token(COMMA);
+ member = MemberValue();
+ret.add(member);
+ }
+ break;
+ }
+ default:
+ jj_la1[154] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case COMMA:{
+ jj_consume_token(COMMA);
+ break;
+ }
+ default:
+ jj_la1[155] = jj_gen;
+ ;
+ }
+ jj_consume_token(RBRACE);
+return new ArrayInitializerExpr(range(begin, tokenEnd()),ret);
+ }
+
+/* Annotation Types. */
+ final public
+AnnotationDeclaration AnnotationTypeDeclaration(ModifierHolder modifier) {NameExpr name;
+ List<BodyDeclaration<?>> members;
+ Position begin = modifier.begin;
+ jj_consume_token(AT);
+begin=begin.orIfInvalid(tokenBegin());
+ jj_consume_token(INTERFACE);
+ name = Name();
+ members = AnnotationTypeBody();
+AnnotationDeclaration tmp = new AnnotationDeclaration(range(begin, tokenEnd()), modifier.modifiers, modifier.annotations, null, members);
+ tmp.setNameExpr(name);
+ return tmp;
+ }
+
+ final public List<BodyDeclaration<?>> AnnotationTypeBody() {List<BodyDeclaration<?>> ret = null;
+ BodyDeclaration member;
+ jj_consume_token(LBRACE);
+ label_52:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case SEMICOLON:
+ case AT:{
+ ;
+ break;
+ }
+ default:
+ jj_la1[156] = jj_gen;
+ break label_52;
+ }
+ member = AnnotationBodyDeclaration();
+ret = add(ret, member);
+ }
+ jj_consume_token(RBRACE);
+return ret;
+ }
+
+ final public BodyDeclaration<?> AnnotationBodyDeclaration() {ModifierHolder modifier;
+ BodyDeclaration ret;
+
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case SEMICOLON:{
+ jj_consume_token(SEMICOLON);
+ret = new EmptyTypeDeclaration(tokenRange());
+ break;
+ }
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:{
+ modifier = Modifiers();
+ if (jj_2_44(2147483647)) {
+ ret = AnnotationTypeMemberDeclaration(modifier);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case CLASS:
+ case INTERFACE:{
+ ret = ClassOrInterfaceDeclaration(modifier);
+ break;
+ }
+ case ENUM:{
+ ret = EnumDeclaration(modifier);
+ break;
+ }
+ case AT:{
+ ret = AnnotationTypeDeclaration(modifier);
+ break;
+ }
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:{
+ ret = FieldDeclaration(modifier);
+ break;
+ }
+ default:
+ jj_la1[157] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ }
+ default:
+ jj_la1[158] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+return ret;
+ }
+
+ final public AnnotationMemberDeclaration AnnotationTypeMemberDeclaration(ModifierHolder modifier) {Type type;
+ String name;
+ Expression defaultVal = null;
+ type = Type();
+ jj_consume_token(IDENTIFIER);
+name = token.image;
+ jj_consume_token(LPAREN);
+ jj_consume_token(RPAREN);
+ switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+ case _DEFAULT:{
+ defaultVal = DefaultValue();
+ break;
+ }
+ default:
+ jj_la1[159] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+Position begin = modifier.begin.orIfInvalid(tokenBegin());
+ return new AnnotationMemberDeclaration(range(begin, tokenEnd()), modifier.modifiers, modifier.annotations, type, name, defaultVal);
+ }
+
+ final public Expression DefaultValue() {Expression ret;
+ jj_consume_token(_DEFAULT);
+ ret = MemberValue();
+return ret;
+ }
+
+ private boolean jj_2_1(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_1(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(0, xla); }
+ }
+
+ private boolean jj_2_2(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_2(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(1, xla); }
+ }
+
+ private boolean jj_2_3(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_3(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(2, xla); }
+ }
+
+ private boolean jj_2_4(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_4(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(3, xla); }
+ }
+
+ private boolean jj_2_5(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_5(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(4, xla); }
+ }
+
+ private boolean jj_2_6(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_6(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(5, xla); }
+ }
+
+ private boolean jj_2_7(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_7(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(6, xla); }
+ }
+
+ private boolean jj_2_8(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_8(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(7, xla); }
+ }
+
+ private boolean jj_2_9(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_9(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(8, xla); }
+ }
+
+ private boolean jj_2_10(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_10(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(9, xla); }
+ }
+
+ private boolean jj_2_11(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_11(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(10, xla); }
+ }
+
+ private boolean jj_2_12(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_12(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(11, xla); }
+ }
+
+ private boolean jj_2_13(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_13(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(12, xla); }
+ }
+
+ private boolean jj_2_14(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_14(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(13, xla); }
+ }
+
+ private boolean jj_2_15(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_15(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(14, xla); }
+ }
+
+ private boolean jj_2_16(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_16(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(15, xla); }
+ }
+
+ private boolean jj_2_17(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_17(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(16, xla); }
+ }
+
+ private boolean jj_2_18(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_18(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(17, xla); }
+ }
+
+ private boolean jj_2_19(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_19(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(18, xla); }
+ }
+
+ private boolean jj_2_20(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_20(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(19, xla); }
+ }
+
+ private boolean jj_2_21(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_21(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(20, xla); }
+ }
+
+ private boolean jj_2_22(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_22(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(21, xla); }
+ }
+
+ private boolean jj_2_23(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_23(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(22, xla); }
+ }
+
+ private boolean jj_2_24(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_24(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(23, xla); }
+ }
+
+ private boolean jj_2_25(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_25(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(24, xla); }
+ }
+
+ private boolean jj_2_26(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_26(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(25, xla); }
+ }
+
+ private boolean jj_2_27(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_27(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(26, xla); }
+ }
+
+ private boolean jj_2_28(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_28(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(27, xla); }
+ }
+
+ private boolean jj_2_29(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_29(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(28, xla); }
+ }
+
+ private boolean jj_2_30(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_30(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(29, xla); }
+ }
+
+ private boolean jj_2_31(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_31(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(30, xla); }
+ }
+
+ private boolean jj_2_32(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_32(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(31, xla); }
+ }
+
+ private boolean jj_2_33(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_33(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(32, xla); }
+ }
+
+ private boolean jj_2_34(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_34(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(33, xla); }
+ }
+
+ private boolean jj_2_35(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_35(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(34, xla); }
+ }
+
+ private boolean jj_2_36(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_36(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(35, xla); }
+ }
+
+ private boolean jj_2_37(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_37(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(36, xla); }
+ }
+
+ private boolean jj_2_38(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_38(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(37, xla); }
+ }
+
+ private boolean jj_2_39(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_39(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(38, xla); }
+ }
+
+ private boolean jj_2_40(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_40(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(39, xla); }
+ }
+
+ private boolean jj_2_41(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_41(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(40, xla); }
+ }
+
+ private boolean jj_2_42(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_42(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(41, xla); }
+ }
+
+ private boolean jj_2_43(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_43(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(42, xla); }
+ }
+
+ private boolean jj_2_44(int xla)
+ {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_44(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(43, xla); }
+ }
+
+ private boolean jj_3_38()
+ {
+ if (jj_3R_95()) return true;
+ if (jj_3R_68()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_341()
+ {
+ if (jj_3R_345()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_373()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_385()
+ {
+ if (jj_scan_token(ELSE)) return true;
+ if (jj_3R_277()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_377()
+ {
+ if (jj_3R_93()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_427()
+ {
+ if (jj_3R_80()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_429()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_159()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_78()) return true;
+ if (jj_3R_158()) return true;
+ return false;
+ }
+
+ private boolean jj_3_21()
+ {
+ if (jj_3R_83()) return true;
+ return false;
+ }
+
+ private boolean jj_3_20()
+ {
+ if (jj_3R_82()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_426()
+ {
+ if (jj_3R_427()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_81()
+ {
+ if (jj_scan_token(LSHIFT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_402()
+ {
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_103()
+ {
+ if (jj_scan_token(LT)) return true;
+ if (jj_3R_78()) return true;
+ if (jj_3R_158()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_159()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ private boolean jj_3_19()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_81()) {
+ jj_scanpos = xsp;
+ if (jj_3_20()) {
+ jj_scanpos = xsp;
+ if (jj_3_21()) return true;
+ }
+ }
+ if (jj_3R_341()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_425()
+ {
+ if (jj_3R_96()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_342()
+ {
+ if (jj_scan_token(INSTANCEOF)) return true;
+ if (jj_3R_68()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_339()
+ {
+ if (jj_3R_341()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_19()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_419()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_425()) {
+ jj_scanpos = xsp;
+ if (jj_3R_426()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_364()
+ {
+ if (jj_scan_token(GE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_363()
+ {
+ if (jj_scan_token(LE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_362()
+ {
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_361()
+ {
+ if (jj_scan_token(LT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_376()
+ {
+ if (jj_3R_163()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_346()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_361()) {
+ jj_scanpos = xsp;
+ if (jj_3R_362()) {
+ jj_scanpos = xsp;
+ if (jj_3R_363()) {
+ jj_scanpos = xsp;
+ if (jj_3R_364()) return true;
+ }
+ }
+ }
+ if (jj_3R_339()) return true;
+ return false;
+ }
+
+ private boolean jj_3_37()
+ {
+ if (jj_3R_96()) return true;
+ if (jj_scan_token(COLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_102()
+ {
+ if (jj_3R_101()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_367()
+ {
+ if (jj_3R_183()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_66()
+ {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_102()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(IDENTIFIER)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_376()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_377()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_401()
+ {
+ if (jj_3R_419()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_387()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_401()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_402()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_403()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_337()
+ {
+ if (jj_3R_339()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_346()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_386()
+ {
+ if (jj_3R_96()) return true;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_352()
+ {
+ if (jj_scan_token(SEMICOLON)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_367()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_338()
+ {
+ if (jj_scan_token(BIT_AND)) return true;
+ if (jj_3R_314()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_325()
+ {
+ if (jj_scan_token(FOR)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_386()) {
+ jj_scanpos = xsp;
+ if (jj_3R_387()) return true;
+ }
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_277()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_332()
+ {
+ if (jj_3R_337()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_342()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_351()
+ {
+ if (jj_3R_66()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_3()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_344()
+ {
+ if (jj_scan_token(NE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_343()
+ {
+ if (jj_scan_token(EQ)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_340()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_343()) {
+ jj_scanpos = xsp;
+ if (jj_3R_344()) return true;
+ }
+ if (jj_3R_332()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_333()
+ {
+ if (jj_scan_token(XOR)) return true;
+ if (jj_3R_285()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_324()
+ {
+ if (jj_scan_token(DO)) return true;
+ if (jj_3R_277()) return true;
+ if (jj_scan_token(WHILE)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_80()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_350()
+ {
+ if (jj_3R_366()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_315()
+ {
+ if (jj_scan_token(BIT_OR)) return true;
+ if (jj_3R_265()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_314()
+ {
+ if (jj_3R_332()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_340()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_271()
+ {
+ if (jj_scan_token(ENUM)) return true;
+ if (jj_3R_98()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_350()) jj_scanpos = xsp;
+ if (jj_scan_token(LBRACE)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_351()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(113)) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_352()) jj_scanpos = xsp;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_323()
+ {
+ if (jj_scan_token(WHILE)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_80()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_277()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_286()
+ {
+ if (jj_scan_token(SC_AND)) return true;
+ if (jj_3R_237()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_285()
+ {
+ if (jj_3R_314()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_338()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_267()
+ {
+ if (jj_scan_token(SC_OR)) return true;
+ if (jj_3R_207()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_375()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_251()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_366()
+ {
+ if (jj_scan_token(IMPLEMENTS)) return true;
+ if (jj_3R_251()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_375()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_265()
+ {
+ if (jj_3R_285()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_333()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_322()
+ {
+ if (jj_scan_token(IF)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_80()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_277()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_385()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_237()
+ {
+ if (jj_3R_265()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_315()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_374()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_251()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_365()
+ {
+ if (jj_scan_token(EXTENDS)) return true;
+ if (jj_3R_251()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_374()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_207()
+ {
+ if (jj_3R_237()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_286()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_418()
+ {
+ if (jj_scan_token(_DEFAULT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_417()
+ {
+ if (jj_scan_token(CASE)) return true;
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_289()
+ {
+ if (jj_scan_token(INTERFACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_349()
+ {
+ if (jj_3R_366()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_176()
+ {
+ if (jj_3R_207()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_267()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_348()
+ {
+ if (jj_3R_365()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_400()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_417()) {
+ jj_scanpos = xsp;
+ if (jj_3R_418()) return true;
+ }
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_160()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_347()
+ {
+ if (jj_3R_103()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_270()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(45)) {
+ jj_scanpos = xsp;
+ if (jj_3R_289()) return true;
+ }
+ if (jj_3R_98()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_347()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_348()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_349()) jj_scanpos = xsp;
+ if (jj_3R_93()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_150()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_149()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_241()
+ {
+ if (jj_scan_token(HOOK)) return true;
+ if (jj_3R_80()) return true;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_129()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_384()
+ {
+ if (jj_3R_400()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_129()
+ {
+ if (jj_3R_176()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_241()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_321()
+ {
+ if (jj_scan_token(SWITCH)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_80()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_384()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_128()
+ {
+ if (jj_scan_token(ORASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_424()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_127()
+ {
+ if (jj_scan_token(XORASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_126()
+ {
+ if (jj_scan_token(ANDASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_125()
+ {
+ if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_124()
+ {
+ if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_123()
+ {
+ if (jj_scan_token(LSHIFTASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_416()
+ {
+ if (jj_scan_token(ARROW)) return true;
+ if (jj_3R_268()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_122()
+ {
+ if (jj_scan_token(MINUSASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_121()
+ {
+ if (jj_scan_token(PLUSASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_415()
+ {
+ if (jj_scan_token(DOUBLECOLON)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_424()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(103)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(68)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_120()
+ {
+ if (jj_scan_token(REMASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_414()
+ {
+ if (jj_3R_79()) return true;
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_119()
+ {
+ if (jj_scan_token(SLASHASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_118()
+ {
+ if (jj_scan_token(STARASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_413()
+ {
+ if (jj_scan_token(DECR)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_117()
+ {
+ if (jj_scan_token(ASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_412()
+ {
+ if (jj_scan_token(INCR)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_399()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_412()) {
+ jj_scanpos = xsp;
+ if (jj_3R_413()) {
+ jj_scanpos = xsp;
+ if (jj_3R_414()) {
+ jj_scanpos = xsp;
+ if (jj_3R_415()) {
+ jj_scanpos = xsp;
+ if (jj_3R_416()) return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_79()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_117()) {
+ jj_scanpos = xsp;
+ if (jj_3R_118()) {
+ jj_scanpos = xsp;
+ if (jj_3R_119()) {
+ jj_scanpos = xsp;
+ if (jj_3R_120()) {
+ jj_scanpos = xsp;
+ if (jj_3R_121()) {
+ jj_scanpos = xsp;
+ if (jj_3R_122()) {
+ jj_scanpos = xsp;
+ if (jj_3R_123()) {
+ jj_scanpos = xsp;
+ if (jj_3R_124()) {
+ jj_scanpos = xsp;
+ if (jj_3R_125()) {
+ jj_scanpos = xsp;
+ if (jj_3R_126()) {
+ jj_scanpos = xsp;
+ if (jj_3R_127()) {
+ jj_scanpos = xsp;
+ if (jj_3R_128()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_336()
+ {
+ if (jj_3R_266()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_399()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_335()
+ {
+ if (jj_3R_216()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_269()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3_36()
+ {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_243()
+ {
+ if (jj_scan_token(DOUBLECOLON)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_269()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(103)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(68)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_320()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_36()) {
+ jj_scanpos = xsp;
+ if (jj_3R_335()) {
+ jj_scanpos = xsp;
+ if (jj_3R_336()) return true;
+ }
+ }
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_65()
+ {
+ if (jj_3R_101()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_64()
+ {
+ if (jj_scan_token(STRICTFP)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_63()
+ {
+ if (jj_scan_token(VOLATILE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_62()
+ {
+ if (jj_scan_token(TRANSIENT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_61()
+ {
+ if (jj_scan_token(NATIVE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_60()
+ {
+ if (jj_scan_token(SYNCHRONIZED)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_288()
+ {
+ if (jj_3R_106()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_59()
+ {
+ if (jj_scan_token(ABSTRACT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_58()
+ {
+ if (jj_scan_token(FINAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3_18()
+ {
+ if (jj_3R_79()) return true;
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_242()
+ {
+ if (jj_scan_token(ARROW)) return true;
+ if (jj_3R_268()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_57()
+ {
+ if (jj_scan_token(PRIVATE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_56()
+ {
+ if (jj_scan_token(PROTECTED)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_213()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_18()) {
+ jj_scanpos = xsp;
+ if (jj_3R_242()) {
+ jj_scanpos = xsp;
+ if (jj_3R_243()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_287()
+ {
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_55()
+ {
+ if (jj_scan_token(STATIC)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_54()
+ {
+ if (jj_scan_token(PUBLIC)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_80()
+ {
+ if (jj_3R_129()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_213()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3_2()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_54()) {
+ jj_scanpos = xsp;
+ if (jj_3R_55()) {
+ jj_scanpos = xsp;
+ if (jj_3R_56()) {
+ jj_scanpos = xsp;
+ if (jj_3R_57()) {
+ jj_scanpos = xsp;
+ if (jj_3R_58()) {
+ jj_scanpos = xsp;
+ if (jj_3R_59()) {
+ jj_scanpos = xsp;
+ if (jj_3R_60()) {
+ jj_scanpos = xsp;
+ if (jj_3R_61()) {
+ jj_scanpos = xsp;
+ if (jj_3R_62()) {
+ jj_scanpos = xsp;
+ if (jj_3R_63()) {
+ jj_scanpos = xsp;
+ if (jj_3R_64()) {
+ jj_scanpos = xsp;
+ if (jj_3R_65()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_268()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_287()) {
+ jj_scanpos = xsp;
+ if (jj_3R_288()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_95()
+ {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_2()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_319()
+ {
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3_35()
+ {
+ if (jj_3R_96()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_96()
+ {
+ if (jj_3R_95()) return true;
+ if (jj_3R_68()) return true;
+ if (jj_3R_149()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_150()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_202()
+ {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3_34()
+ {
+ if (jj_3R_95()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(45)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(65)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_255()
+ {
+ if (jj_3R_277()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_383()
+ {
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3_17()
+ {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_254()
+ {
+ if (jj_3R_96()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_98()
+ {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_17()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_53()
+ {
+ if (jj_3R_78()) return true;
+ if (jj_scan_token(PACKAGE)) return true;
+ if (jj_3R_98()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_253()
+ {
+ if (jj_3R_95()) return true;
+ if (jj_3R_270()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_147()
+ {
+ if (jj_3R_68()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_146()
+ {
+ if (jj_scan_token(VOID)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_220()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_253()) {
+ jj_scanpos = xsp;
+ if (jj_3R_254()) {
+ jj_scanpos = xsp;
+ if (jj_3R_255()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_1()
+ {
+ if (jj_3R_53()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_91()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_146()) {
+ jj_scanpos = xsp;
+ if (jj_3R_147()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_140()
+ {
+ if (jj_scan_token(DOUBLE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_106()
+ {
+ if (jj_scan_token(LBRACE)) return true;
+ if (jj_3R_160()) return true;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_139()
+ {
+ if (jj_scan_token(FLOAT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_138()
+ {
+ if (jj_scan_token(LONG)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_137()
+ {
+ if (jj_scan_token(INT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_136()
+ {
+ if (jj_scan_token(SHORT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_135()
+ {
+ if (jj_scan_token(BYTE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_94()
+ {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_277()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_134()
+ {
+ if (jj_scan_token(CHAR)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_133()
+ {
+ if (jj_scan_token(BOOLEAN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_313()
+ {
+ if (jj_scan_token(SUPER)) return true;
+ if (jj_3R_78()) return true;
+ if (jj_3R_75()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_87()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_133()) {
+ jj_scanpos = xsp;
+ if (jj_3R_134()) {
+ jj_scanpos = xsp;
+ if (jj_3R_135()) {
+ jj_scanpos = xsp;
+ if (jj_3R_136()) {
+ jj_scanpos = xsp;
+ if (jj_3R_137()) {
+ jj_scanpos = xsp;
+ if (jj_3R_138()) {
+ jj_scanpos = xsp;
+ if (jj_3R_139()) {
+ jj_scanpos = xsp;
+ if (jj_3R_140()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_204()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_175()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_312()
+ {
+ if (jj_scan_token(EXTENDS)) return true;
+ if (jj_3R_78()) return true;
+ if (jj_3R_75()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_284()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_312()) {
+ jj_scanpos = xsp;
+ if (jj_3R_313()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_318()
+ {
+ if (jj_scan_token(ASSERT)) return true;
+ if (jj_3R_80()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_383()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_308()
+ {
+ if (jj_3R_331()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_307()
+ {
+ if (jj_3R_330()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_306()
+ {
+ if (jj_3R_329()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_305()
+ {
+ if (jj_3R_328()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_304()
+ {
+ if (jj_3R_327()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_303()
+ {
+ if (jj_3R_326()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_236()
+ {
+ if (jj_scan_token(HOOK)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_284()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_302()
+ {
+ if (jj_3R_325()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_301()
+ {
+ if (jj_3R_324()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_300()
+ {
+ if (jj_3R_323()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_299()
+ {
+ if (jj_3R_322()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_298()
+ {
+ if (jj_3R_321()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_297()
+ {
+ if (jj_3R_320()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_206()
+ {
+ if (jj_3R_236()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_296()
+ {
+ if (jj_3R_319()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_205()
+ {
+ if (jj_3R_75()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_295()
+ {
+ if (jj_3R_106()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_294()
+ {
+ if (jj_3R_318()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_175()
+ {
+ if (jj_3R_78()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_205()) {
+ jj_scanpos = xsp;
+ if (jj_3R_206()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_33()
+ {
+ if (jj_3R_94()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_115()
+ {
+ if (jj_3R_175()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_204()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_277()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_33()) {
+ jj_scanpos = xsp;
+ if (jj_3R_294()) {
+ jj_scanpos = xsp;
+ if (jj_3R_295()) {
+ jj_scanpos = xsp;
+ if (jj_3R_296()) {
+ jj_scanpos = xsp;
+ if (jj_3R_297()) {
+ jj_scanpos = xsp;
+ if (jj_3R_298()) {
+ jj_scanpos = xsp;
+ if (jj_3R_299()) {
+ jj_scanpos = xsp;
+ if (jj_3R_300()) {
+ jj_scanpos = xsp;
+ if (jj_3R_301()) {
+ jj_scanpos = xsp;
+ if (jj_3R_302()) {
+ jj_scanpos = xsp;
+ if (jj_3R_303()) {
+ jj_scanpos = xsp;
+ if (jj_3R_304()) {
+ jj_scanpos = xsp;
+ if (jj_3R_305()) {
+ jj_scanpos = xsp;
+ if (jj_3R_306()) {
+ jj_scanpos = xsp;
+ if (jj_3R_307()) {
+ jj_scanpos = xsp;
+ if (jj_3R_308()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_77()
+ {
+ if (jj_scan_token(LT)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_115()) jj_scanpos = xsp;
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ private boolean jj_3_16()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3_32()
+ {
+ if (jj_3R_93()) return true;
+ return false;
+ }
+
+ private boolean jj_3_15()
+ {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_3R_78()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_16()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_311()
+ {
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_283()
+ {
+ if (jj_3R_161()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_282()
+ {
+ if (jj_3R_78()) return true;
+ if (jj_scan_token(LBRACKET)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_311()) jj_scanpos = xsp;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_261()
+ {
+ Token xsp;
+ if (jj_3R_282()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_282()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_283()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3_14()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_174()
+ {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_14()) jj_scanpos = xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_15()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_256()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_264()
+ {
+ if (jj_3R_163()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_32()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_263()
+ {
+ if (jj_3R_261()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_262()
+ {
+ if (jj_3R_77()) return true;
+ if (jj_3R_78()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_235()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_262()) jj_scanpos = xsp;
+ if (jj_3R_251()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_263()) {
+ jj_scanpos = xsp;
+ if (jj_3R_264()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_234()
+ {
+ if (jj_3R_87()) return true;
+ if (jj_3R_261()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_251()
+ {
+ if (jj_3R_78()) return true;
+ if (jj_3R_174()) return true;
+ return false;
+ }
+
+ private boolean jj_3_13()
+ {
+ if (jj_3R_76()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_428()
+ {
+ if (jj_3R_430()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_200()
+ {
+ if (jj_scan_token(NEW)) return true;
+ if (jj_3R_78()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_234()) {
+ jj_scanpos = xsp;
+ if (jj_3R_235()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_12()
+ {
+ if (jj_3R_76()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_355()
+ {
+ if (jj_scan_token(THROWS)) return true;
+ if (jj_3R_370()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_371()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_76()
+ {
+ if (jj_3R_78()) return true;
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_221()
+ {
+ if (jj_3R_80()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_256()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_195()
+ {
+ if (jj_3R_221()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_114()
+ {
+ if (jj_3R_174()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_13()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_163()
+ {
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_195()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_113()
+ {
+ if (jj_3R_87()) return true;
+ Token xsp;
+ if (jj_3_12()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_12()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_75()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_113()) {
+ jj_scanpos = xsp;
+ if (jj_3R_114()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_258()
+ {
+ if (jj_scan_token(NULL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_279()
+ {
+ if (jj_scan_token(FALSE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_278()
+ {
+ if (jj_scan_token(TRUE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_104()
+ {
+ if (jj_3R_87()) return true;
+ return false;
+ }
+
+ private boolean jj_3_11()
+ {
+ if (jj_3R_75()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_68()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_11()) {
+ jj_scanpos = xsp;
+ if (jj_3R_104()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_257()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_278()) {
+ jj_scanpos = xsp;
+ if (jj_3R_279()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_430()
+ {
+ if (jj_scan_token(_DEFAULT)) return true;
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_228()
+ {
+ if (jj_3R_258()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_227()
+ {
+ if (jj_3R_257()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_226()
+ {
+ if (jj_scan_token(STRING_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_105()
+ {
+ if (jj_scan_token(STATIC)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_225()
+ {
+ if (jj_scan_token(CHARACTER_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_423()
+ {
+ if (jj_3R_68()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_428()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_70()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_105()) jj_scanpos = xsp;
+ if (jj_3R_106()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_224()
+ {
+ if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_194()
+ {
+ if (jj_3R_220()) return true;
+ return false;
+ }
+
+ private boolean jj_3_44()
+ {
+ if (jj_3R_68()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_411()
+ {
+ if (jj_3R_274()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_160()
+ {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_194()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_410()
+ {
+ if (jj_3R_272()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_223()
+ {
+ if (jj_scan_token(LONG_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3_9()
+ {
+ if (jj_3R_73()) return true;
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_409()
+ {
+ if (jj_3R_271()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_408()
+ {
+ if (jj_3R_270()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_222()
+ {
+ if (jj_scan_token(INTEGER_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_407()
+ {
+ if (jj_3R_423()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_74()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_165()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3_10()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_74()) jj_scanpos = xsp;
+ if (jj_scan_token(THIS)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_164()
+ {
+ if (jj_3R_73()) return true;
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ private boolean jj_3_43()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_92()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_196()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_222()) {
+ jj_scanpos = xsp;
+ if (jj_3R_223()) {
+ jj_scanpos = xsp;
+ if (jj_3R_224()) {
+ jj_scanpos = xsp;
+ if (jj_3R_225()) {
+ jj_scanpos = xsp;
+ if (jj_3R_226()) {
+ jj_scanpos = xsp;
+ if (jj_3R_227()) {
+ jj_scanpos = xsp;
+ if (jj_3R_228()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_394()
+ {
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_110()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_164()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_165()) jj_scanpos = xsp;
+ if (jj_scan_token(SUPER)) return true;
+ if (jj_3R_163()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_143()
+ {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_3R_80()) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3_31()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_92()) jj_scanpos = xsp;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_395()
+ {
+ if (jj_3R_95()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_407()) {
+ jj_scanpos = xsp;
+ if (jj_3R_408()) {
+ jj_scanpos = xsp;
+ if (jj_3R_409()) {
+ jj_scanpos = xsp;
+ if (jj_3R_410()) {
+ jj_scanpos = xsp;
+ if (jj_3R_411()) return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_162()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_109()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_162()) jj_scanpos = xsp;
+ if (jj_scan_token(THIS)) return true;
+ if (jj_3R_163()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_212()
+ {
+ if (jj_3R_163()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_378()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_394()) {
+ jj_scanpos = xsp;
+ if (jj_3R_395()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_211()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_181()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_211()) jj_scanpos = xsp;
+ if (jj_3R_202()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_212()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_368()
+ {
+ if (jj_3R_378()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_180()
+ {
+ if (jj_3R_200()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_72()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_109()) {
+ jj_scanpos = xsp;
+ if (jj_3R_110()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_179()
+ {
+ if (jj_scan_token(THIS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_353()
+ {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_368()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_259()
+ {
+ if (jj_3R_280()) return true;
+ return false;
+ }
+
+ private boolean jj_3_8()
+ {
+ if (jj_3R_72()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_144()
+ {
+ if (jj_scan_token(ELLIPSIS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_142()
+ {
+ if (jj_scan_token(DOT)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_179()) {
+ jj_scanpos = xsp;
+ if (jj_3R_180()) {
+ jj_scanpos = xsp;
+ if (jj_3R_181()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_309()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_90()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_89()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_142()) {
+ jj_scanpos = xsp;
+ if (jj_3R_143()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_356()
+ {
+ if (jj_3R_72()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_272()
+ {
+ if (jj_scan_token(AT)) return true;
+ if (jj_scan_token(INTERFACE)) return true;
+ if (jj_3R_98()) return true;
+ if (jj_3R_353()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_371()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_370()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_317()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_316()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_290()
+ {
+ if (jj_3R_103()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_141()
+ {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(SUPER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_273()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_290()) jj_scanpos = xsp;
+ if (jj_3R_202()) return true;
+ if (jj_3R_354()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_355()) jj_scanpos = xsp;
+ if (jj_scan_token(LBRACE)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_356()) jj_scanpos = xsp;
+ if (jj_3R_160()) return true;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_334()
+ {
+ if (jj_3R_100()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_43()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3_30()
+ {
+ if (jj_3R_89()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_201()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_379()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_90()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_88()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_30()) {
+ jj_scanpos = xsp;
+ if (jj_3R_141()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_189()
+ {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_334()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(113)) jj_scanpos = xsp;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_203()
+ {
+ if (jj_3R_163()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_154()
+ {
+ if (jj_3R_129()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_153()
+ {
+ if (jj_3R_189()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_173()
+ {
+ if (jj_3R_202()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_203()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_152()
+ {
+ if (jj_3R_101()) return true;
+ return false;
+ }
+
+ private boolean jj_3_29()
+ {
+ if (jj_3R_91()) return true;
+ if (jj_scan_token(DOUBLECOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3_28()
+ {
+ if (jj_3R_91()) return true;
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(CLASS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_90()
+ {
+ if (jj_3R_95()) return true;
+ if (jj_3R_68()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_144()) jj_scanpos = xsp;
+ if (jj_3R_145()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_100()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_152()) {
+ jj_scanpos = xsp;
+ if (jj_3R_153()) {
+ jj_scanpos = xsp;
+ if (jj_3R_154()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_7()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_71()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_260()
+ {
+ if (jj_3R_281()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_172()
+ {
+ if (jj_3R_91()) return true;
+ if (jj_scan_token(DOUBLECOLON)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_201()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(103)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(68)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_276()
+ {
+ if (jj_3R_293()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_171()
+ {
+ if (jj_3R_91()) return true;
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(CLASS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_316()
+ {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(ASSIGN)) return true;
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_310()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_145()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_170()
+ {
+ if (jj_3R_200()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_281()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_145()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_310()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3_27()
+ {
+ if (jj_3R_90()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_293()
+ {
+ if (jj_3R_316()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_317()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_358()
+ {
+ if (jj_3R_76()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_233()
+ {
+ if (jj_3R_80()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_260()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_280()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_90()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_309()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_232()
+ {
+ if (jj_3R_90()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_259()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_199()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_232()) {
+ jj_scanpos = xsp;
+ if (jj_3R_233()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_231()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_369()
+ {
+ if (jj_3R_90()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_379()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_191()
+ {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_98()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_100()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_99()
+ {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(ASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_169()
+ {
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_199()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_198()
+ {
+ if (jj_scan_token(DOUBLECOLON)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_231()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(103)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(68)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_354()
+ {
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_369()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_192()
+ {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_98()) return true;
+ return false;
+ }
+
+ private boolean jj_3_42()
+ {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_98()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3_41()
+ {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_98()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_99()) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(107)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_230()
+ {
+ if (jj_3R_163()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_190()
+ {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_98()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_276()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_370()
+ {
+ if (jj_3R_78()) return true;
+ if (jj_3R_75()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_197()
+ {
+ if (jj_scan_token(DOT)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_229()) jj_scanpos = xsp;
+ if (jj_3R_202()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_230()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_229()
+ {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3_40()
+ {
+ if (jj_scan_token(SEMICOLON)) return true;
+ if (jj_3R_96()) return true;
+ return false;
+ }
+
+ private boolean jj_3_26()
+ {
+ if (jj_3R_89()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_157()
+ {
+ if (jj_3R_192()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_182()
+ {
+ if (jj_3R_76()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_168()
+ {
+ if (jj_scan_token(SUPER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_197()) {
+ jj_scanpos = xsp;
+ if (jj_3R_198()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_156()
+ {
+ if (jj_3R_191()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_167()
+ {
+ if (jj_scan_token(THIS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_155()
+ {
+ if (jj_3R_190()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_166()
+ {
+ if (jj_3R_196()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_292()
+ {
+ if (jj_3R_71()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_7()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_372()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_370()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_360()
+ {
+ if (jj_3R_106()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_112()
+ {
+ if (jj_3R_89()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_359()
+ {
+ if (jj_scan_token(THROWS)) return true;
+ if (jj_3R_370()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_372()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_291()
+ {
+ if (jj_3R_103()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_111()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_166()) {
+ jj_scanpos = xsp;
+ if (jj_3R_167()) {
+ jj_scanpos = xsp;
+ if (jj_3R_168()) {
+ jj_scanpos = xsp;
+ if (jj_3R_169()) {
+ jj_scanpos = xsp;
+ if (jj_3R_170()) {
+ jj_scanpos = xsp;
+ if (jj_3R_171()) {
+ jj_scanpos = xsp;
+ if (jj_3R_172()) {
+ jj_scanpos = xsp;
+ if (jj_3R_173()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_101()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_155()) {
+ jj_scanpos = xsp;
+ if (jj_3R_156()) {
+ jj_scanpos = xsp;
+ if (jj_3R_157()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_275()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_291()) jj_scanpos = xsp;
+ if (jj_3R_91()) return true;
+ if (jj_3R_98()) return true;
+ if (jj_3R_354()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_358()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_359()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_360()) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(112)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_25()
+ {
+ if (jj_3R_88()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_116()
+ {
+ if (jj_3R_101()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_78()
+ {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_116()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_130()
+ {
+ return false;
+ }
+
+ private boolean jj_3R_73()
+ {
+ if (jj_3R_111()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_112()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_131()
+ {
+ return false;
+ }
+
+ private boolean jj_3R_161()
+ {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_292()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(113)) jj_scanpos = xsp;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_82()
+ {
+ jj_lookingAhead = true;
+ jj_semLA = getToken(1).kind == GT &&
+ ((GTToken)getToken(1)).realKind == RSIGNEDSHIFT;
+ jj_lookingAhead = false;
+ if (!jj_semLA || jj_3R_130()) return true;
+ if (jj_scan_token(GT)) return true;
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_108()
+ {
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_107()
+ {
+ if (jj_3R_161()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_184()
+ {
+ if (jj_scan_token(ASSIGN)) return true;
+ if (jj_3R_71()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_266()
+ {
+ if (jj_3R_111()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_25()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_83()
+ {
+ jj_lookingAhead = true;
+ jj_semLA = getToken(1).kind == GT &&
+ ((GTToken)getToken(1)).realKind == RUNSIGNEDSHIFT;
+ jj_lookingAhead = false;
+ if (!jj_semLA || jj_3R_131()) return true;
+ if (jj_scan_token(GT)) return true;
+ if (jj_scan_token(GT)) return true;
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_71()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_107()) {
+ jj_scanpos = xsp;
+ if (jj_3R_108()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_177()
+ {
+ if (jj_scan_token(BIT_AND)) return true;
+ if (jj_3R_75()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_132()
+ {
+ if (jj_3R_75()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_177()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_178()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_421()
+ {
+ if (jj_3R_96()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_40()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_145()
+ {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_182()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3_24()
+ {
+ if (jj_3R_87()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_151()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_84()
+ {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_78()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_24()) {
+ jj_scanpos = xsp;
+ if (jj_3R_132()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_39()
+ {
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_149()
+ {
+ if (jj_3R_145()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_184()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_404()
+ {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_421()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_39()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_406()
+ {
+ if (jj_scan_token(FINALLY)) return true;
+ if (jj_3R_106()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_393()
+ {
+ if (jj_scan_token(FINALLY)) return true;
+ if (jj_3R_106()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_422()
+ {
+ if (jj_scan_token(BIT_OR)) return true;
+ if (jj_3R_370()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_69()
+ {
+ if (jj_3R_76()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_86()
+ {
+ if (jj_scan_token(DECR)) return true;
+ return false;
+ }
+
+ private boolean jj_3_23()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_85()) {
+ jj_scanpos = xsp;
+ if (jj_3R_86()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_85()
+ {
+ if (jj_scan_token(INCR)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_357()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_149()) return true;
+ return false;
+ }
+
+ private boolean jj_3_22()
+ {
+ if (jj_3R_84()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_405()
+ {
+ if (jj_scan_token(CATCH)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_95()) return true;
+ if (jj_3R_75()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_422()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_145()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_106()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_274()
+ {
+ if (jj_3R_68()) return true;
+ if (jj_3R_149()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_357()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_240()
+ {
+ if (jj_3R_266()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_23()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_215()
+ {
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_209()
+ {
+ if (jj_3R_84()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_210()
+ {
+ if (jj_3R_240()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_239()
+ {
+ if (jj_scan_token(BANG)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_238()
+ {
+ if (jj_scan_token(TILDE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_208()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_238()) {
+ jj_scanpos = xsp;
+ if (jj_3R_239()) return true;
+ }
+ if (jj_3R_151()) return true;
+ return false;
+ }
+
+ private boolean jj_3_5()
+ {
+ if (jj_3R_68()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_69()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(113)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(116)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(112)) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_392()
+ {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_405()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_406()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_67()
+ {
+ if (jj_3R_103()) return true;
+ return false;
+ }
+
+ private boolean jj_3_4()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_67()) jj_scanpos = xsp;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_178()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_208()) {
+ jj_scanpos = xsp;
+ if (jj_3R_209()) {
+ jj_scanpos = xsp;
+ if (jj_3R_210()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_250()
+ {
+ if (jj_3R_275()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_391()
+ {
+ if (jj_3R_404()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_331()
+ {
+ if (jj_scan_token(TRY)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_391()) jj_scanpos = xsp;
+ if (jj_3R_106()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_392()) {
+ jj_scanpos = xsp;
+ if (jj_3R_393()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_244()
+ {
+ if (jj_scan_token(_DEFAULT)) return true;
+ if (jj_3R_95()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_249()
+ {
+ if (jj_3R_274()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_248()
+ {
+ if (jj_3R_273()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_247()
+ {
+ if (jj_3R_272()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_216()
+ {
+ if (jj_scan_token(DECR)) return true;
+ if (jj_3R_151()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_246()
+ {
+ if (jj_3R_271()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_245()
+ {
+ if (jj_3R_270()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_390()
+ {
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_193()
+ {
+ if (jj_3R_219()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_97()
+ {
+ if (jj_scan_token(INCR)) return true;
+ if (jj_3R_151()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_188()
+ {
+ if (jj_3R_178()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_389()
+ {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_330()
+ {
+ if (jj_scan_token(SYNCHRONIZED)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_80()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_106()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_214()
+ {
+ if (jj_3R_95()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_244()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_245()) {
+ jj_scanpos = xsp;
+ if (jj_3R_246()) {
+ jj_scanpos = xsp;
+ if (jj_3R_247()) {
+ jj_scanpos = xsp;
+ if (jj_3R_248()) {
+ jj_scanpos = xsp;
+ if (jj_3R_249()) {
+ jj_scanpos = xsp;
+ if (jj_3R_250()) return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_6()
+ {
+ if (jj_3R_70()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_388()
+ {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_218()
+ {
+ if (jj_scan_token(MINUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_217()
+ {
+ if (jj_scan_token(PLUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_329()
+ {
+ if (jj_scan_token(THROW)) return true;
+ if (jj_3R_80()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_187()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_217()) {
+ jj_scanpos = xsp;
+ if (jj_3R_218()) return true;
+ }
+ if (jj_3R_151()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_186()
+ {
+ if (jj_3R_216()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_185()
+ {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_183()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_6()) {
+ jj_scanpos = xsp;
+ if (jj_3R_214()) {
+ jj_scanpos = xsp;
+ if (jj_3R_215()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_429()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_328()
+ {
+ if (jj_scan_token(RETURN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_390()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_148()
+ {
+ if (jj_3R_183()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_151()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_185()) {
+ jj_scanpos = xsp;
+ if (jj_3R_186()) {
+ jj_scanpos = xsp;
+ if (jj_3R_187()) {
+ jj_scanpos = xsp;
+ if (jj_3R_188()) return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_398()
+ {
+ if (jj_scan_token(REM)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_397()
+ {
+ if (jj_scan_token(SLASH)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_327()
+ {
+ if (jj_scan_token(CONTINUE)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_389()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_93()
+ {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_148()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_396()
+ {
+ if (jj_scan_token(STAR)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_380()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_396()) {
+ jj_scanpos = xsp;
+ if (jj_3R_397()) {
+ jj_scanpos = xsp;
+ if (jj_3R_398()) return true;
+ }
+ }
+ if (jj_3R_151()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_403()
+ {
+ if (jj_3R_420()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_252()
+ {
+ if (jj_scan_token(BIT_AND)) return true;
+ if (jj_3R_251()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_326()
+ {
+ if (jj_scan_token(BREAK)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_388()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_219()
+ {
+ if (jj_scan_token(EXTENDS)) return true;
+ if (jj_3R_251()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_252()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_345()
+ {
+ if (jj_3R_151()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_380()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_382()
+ {
+ if (jj_scan_token(MINUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_381()
+ {
+ if (jj_scan_token(PLUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3_3()
+ {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_66()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_373()
+ {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_381()) {
+ jj_scanpos = xsp;
+ if (jj_3R_382()) return true;
+ }
+ if (jj_3R_345()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_158()
+ {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_193()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_420()
+ {
+ if (jj_3R_427()) return true;
+ return false;
+ }
+
+ /** Generated Token Manager. */
+ public ASTParserTokenManager token_source;
+ JavaCharStream jj_input_stream;
+ /** Current token. */
+ public Token token;
+ /** Next token. */
+ public Token jj_nt;
+ private int jj_ntk;
+ private Token jj_scanpos, jj_lastpos;
+ private int jj_la;
+ /** Whether we are looking ahead. */
+ private boolean jj_lookingAhead = false;
+ private boolean jj_semLA;
+ private int jj_gen;
+ final private int[] jj_la1 = new int[160];
+ static private int[] jj_la1_0;
+ static private int[] jj_la1_1;
+ static private int[] jj_la1_2;
+ static private int[] jj_la1_3;
+ static private int[] jj_la1_4;
+ static {
+ jj_la1_init_0();
+ jj_la1_init_1();
+ jj_la1_init_2();
+ jj_la1_init_3();
+ jj_la1_init_4();
+ }
+ private static void jj_la1_init_0() {
+ jj_la1_0 = new int[] {0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
+ }
+ private static void jj_la1_init_1() {
+ jj_la1_1 = new int[] {0x40000000,0x40000000,0x902020,0x0,0x0,0x0,0x800020,0x102000,0x902020,0x2000,0x0,0x200000,0x20000000,0x0,0x0,0x20000000,0x0,0x0,0x29532a0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x29532a0,0x10000,0x102000,0x2041280,0x29532a0,0x0,0x0,0x0,0x2441280,0x2441280,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x28412a0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2441280,0x16c6b3e0,0x0,0x2041280,0x2041280,0x2041280,0x0,0x2041280,0x2041280,0x200000,0x200000,0x2041280,0x2041280,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2441280,0x0,0x0,0x2441280,0x0,0x0,0x2041280,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2441280,0x2c412a0,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x400000,0x2441280,0x0,0x0,0x0,0x2041280,0x2441280,0x0,0x0,0x164693c0,0x0,0x164693c0,0x0,0x2441280,0x0,0x0,0x0,0x0,0x2441280,0x10400,0x10400,0x80000,0x2c412a0,0x2441280,0x2441280,0x2c412a0,0x2441280,0x0,0x0,0x0,0x2441280,0x0,0x800,0x0,0x1000000,0x0,0x0,0x0,0x0,0x2441280,0x2441280,0x0,0x29432a0,0x2143280,0x29432a0,0x10000,};
+ }
+ private static void jj_la1_init_2() {
+ jj_la1_2 = new int[] {0x0,0x0,0x111338a,0x0,0x1000,0x0,0x1113388,0x2,0x111338a,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1913b8f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1913b8f,0x0,0x2,0x800805,0x1913b8f,0x0,0x0,0x0,0xca24835,0xca24835,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0x1113b8d,0x0,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0xca24835,0xff7ffbf,0x1000,0x805,0x805,0x805,0x0,0x805,0x805,0x4000,0x4000,0x805,0x800805,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xca24835,0x0,0x0,0xca24835,0x0,0x0,0x805,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0xca24835,0xdb37bbd,0x0,0x10,0x0,0xc224030,0x0,0x0,0x0,0x0,0x20010,0x0,0xc200020,0x200000,0xca24835,0x0,0x0,0x0,0x805,0xca24835,0x0,0x0,0xee7cc35,0x0,0xee7cc35,0x0,0xca24835,0x0,0x10,0x0,0x0,0xca24835,0x0,0x0,0x0,0xdb37bbd,0xca24835,0xca24835,0xdb37bbd,0xca24835,0x0,0x0,0x0,0xca24835,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xca24835,0xca24835,0x0,0x1113b8f,0x807,0x1113b8f,0x0,};
+ }
+ private static void jj_la1_init_3() {
+ jj_la1_3 = new int[] {0x10000,0x10000,0x90000,0x0,0x0,0x40000,0x80000,0x80000,0x90000,0x0,0x200000,0x0,0x0,0x20000,0x20000,0x0,0x80080,0x20000,0x291080,0x10000,0x80000,0x400,0x1000,0x20000,0x0,0x0,0x291080,0x0,0x80000,0x200080,0x290080,0x20000,0x100000,0x84000,0xc014e1,0xc014e1,0x20000,0x200000,0x84000,0x20000,0x0,0x11000,0x20000,0x80080,0x20000,0x20000,0x0,0x200000,0x20000,0x0,0x200000,0x200000,0x2004e1,0x914e1,0x0,0x0,0x80,0x80,0x20000,0x1080080,0x1000080,0x0,0x0,0x0,0x80,0x200000,0x80,0x0,0x100000,0x100000,0x1000000,0x40000000,0x80000000,0x0,0x0,0x0,0x24000000,0x24000000,0x0,0x18200000,0x18200000,0x0,0x0,0x0,0x0,0x0,0x0,0xc004e1,0xc00000,0xc00000,0x4e1,0x0,0x0,0x80,0x200000,0x400,0x200000,0x80,0x40000,0x20000,0x20000,0xc004e1,0xc804e1,0x200000,0x80,0x400,0x461,0x80,0x40000,0x200000,0x400,0x0,0x44000,0x61,0x0,0xc004e1,0x20000,0x200000,0x84400,0x280080,0xc004e1,0x84000,0x1000,0x114e1,0x2000000,0x114e1,0x20000,0xc014e1,0x200000,0x80,0x100000,0x100000,0x4e1,0x0,0x0,0x0,0xc804e1,0xc004e1,0xc004e1,0xc904e1,0xc004e1,0x20000,0x80,0x80,0xc004e1,0x400,0x0,0x0,0x0,0x80000,0x80000,0x80,0x20000,0xc814e1,0xc814e1,0x20000,0x90080,0x80080,0x90080,0x0,};
+ }
+ private static void jj_la1_init_4() {
+ jj_la1_4 = new int[] {0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1800000,0x1bff800,0x3ff800,0x0,0x0,0x0,0x80,0x100,0x40,0x0,0x0,0x0,0x8000000,0x8000000,0x400,0xc,0xc,0x230,0x230,0xc,0xf,0x0,0x0,0x0,0x3,0x40,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0xf,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x0,0xf,0x0,0x0,0x3,0x0,0x3,0x0,0xf,0x0,0x0,0x1bff803,0x1bff803,0x2,0x0,0x0,0x0,0xf,0xf,0xf,0xf,0xf,0x0,0x0,0x0,0xf,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0xf,0xf,0x0,0x0,0x0,0x0,0x0,};
+ }
+ final private JJCalls[] jj_2_rtns = new JJCalls[44];
+ private boolean jj_rescan = false;
+ private int jj_gc = 0;
+
+ /** Constructor. */
+ public ASTParser(Provider stream) {
+ jj_input_stream = new JavaCharStream(stream, 1, 1);
+ token_source = new ASTParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 160; i++) jj_la1[i] = -1;
+ for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+ }
+
+ /** Constructor. */
+ public ASTParser(String dsl) throws ParseException, TokenMgrException {
+ this(new StringProvider(dsl));
+ }
+
+ public void ReInit(String s) {
+ ReInit(new StringProvider(s));
+ }
+ /** Reinitialise. */
+ public void ReInit(Provider stream) {
+ if (jj_input_stream == null) {
+ jj_input_stream = new JavaCharStream(stream, 1, 1);
+ } else {
+ jj_input_stream.ReInit(stream, 1, 1);
+ }
+ if (token_source == null) {
+ token_source = new ASTParserTokenManager(jj_input_stream);
+ }
+
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 160; i++) jj_la1[i] = -1;
+ for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+ }
+
+ /** Constructor with generated Token Manager. */
+ public ASTParser(ASTParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 160; i++) jj_la1[i] = -1;
+ for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+ }
+
+ /** Reinitialise. */
+ public void ReInit(ASTParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 160; i++) jj_la1[i] = -1;
+ for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+ }
+
+ private Token jj_consume_token(int kind) {
+ Token oldToken;
+ if ((oldToken = token).next != null) token = token.next;
+ else token = token.next = token_source.getNextToken();
+ jj_ntk = -1;
+ if (token.kind == kind) {
+ jj_gen++;
+ if (++jj_gc > 100) {
+ jj_gc = 0;
+ for (int i = 0; i < jj_2_rtns.length; i++) {
+ JJCalls c = jj_2_rtns[i];
+ while (c != null) {
+ if (c.gen < jj_gen) c.first = null;
+ c = c.next;
+ }
+ }
+ }
+ return token;
+ }
+ token = oldToken;
+ jj_kind = kind;
+ throw generateParseException();
+ }
+
+ @SuppressWarnings("serial")
+ static private final class LookaheadSuccess extends java.lang.RuntimeException { }
+ final private LookaheadSuccess jj_ls = new LookaheadSuccess();
+ private boolean jj_scan_token(int kind) {
+ if (jj_scanpos == jj_lastpos) {
+ jj_la--;
+ if (jj_scanpos.next == null) {
+ jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
+ } else {
+ jj_lastpos = jj_scanpos = jj_scanpos.next;
+ }
+ } else {
+ jj_scanpos = jj_scanpos.next;
+ }
+ if (jj_rescan) {
+ int i = 0; Token tok = token;
+ while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
+ if (tok != null) jj_add_error_token(kind, i);
+ }
+ if (jj_scanpos.kind != kind) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
+ return false;
+ }
+
+
+/** Get the next Token. */
+ final public Token getNextToken() {
+ if (token.next != null) token = token.next;
+ else token = token.next = token_source.getNextToken();
+ jj_ntk = -1;
+ jj_gen++;
+ return token;
+ }
+
+/** Get the specific Token. */
+ final public Token getToken(int index) {
+ Token t = jj_lookingAhead ? jj_scanpos : token;
+ for (int i = 0; i < index; i++) {
+ if (t.next != null) t = t.next;
+ else t = t.next = token_source.getNextToken();
+ }
+ return t;
+ }
+
+ private int jj_ntk_f() {
+ if ((jj_nt=token.next) == null)
+ return (jj_ntk = (token.next=token_source.getNextToken()).kind);
+ else
+ return (jj_ntk = jj_nt.kind);
+ }
+
+ private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
+ private int[] jj_expentry;
+ private int jj_kind = -1;
+ private int[] jj_lasttokens = new int[100];
+ private int jj_endpos;
+
+ private void jj_add_error_token(int kind, int pos) {
+ if (pos >= 100) {
+ return;
+ }
+
+ if (pos == jj_endpos + 1) {
+ jj_lasttokens[jj_endpos++] = kind;
+ } else if (jj_endpos != 0) {
+ jj_expentry = new int[jj_endpos];
+
+ for (int i = 0; i < jj_endpos; i++) {
+ jj_expentry[i] = jj_lasttokens[i];
+ }
+
+ for (int[] oldentry : jj_expentries) {
+ if (oldentry.length == jj_expentry.length) {
+ boolean isMatched = true;
+
+ for (int i = 0; i < jj_expentry.length; i++) {
+ if (oldentry[i] != jj_expentry[i]) {
+ isMatched = false;
+ break;
+ }
+
+ }
+ if (isMatched) {
+ jj_expentries.add(jj_expentry);
+ break;
+ }
+ }
+ }
+
+ if (pos != 0) {
+ jj_lasttokens[(jj_endpos = pos) - 1] = kind;
+ }
+ }
+ }
+
+ /** Generate ParseException. */
+ public ParseException generateParseException() {
+ jj_expentries.clear();
+ boolean[] la1tokens = new boolean[157];
+ if (jj_kind >= 0) {
+ la1tokens[jj_kind] = true;
+ jj_kind = -1;
+ }
+ for (int i = 0; i < 160; i++) {
+ if (jj_la1[i] == jj_gen) {
+ for (int j = 0; j < 32; j++) {
+ if ((jj_la1_0[i] & (1<<j)) != 0) {
+ la1tokens[j] = true;
+ }
+ if ((jj_la1_1[i] & (1<<j)) != 0) {
+ la1tokens[32+j] = true;
+ }
+ if ((jj_la1_2[i] & (1<<j)) != 0) {
+ la1tokens[64+j] = true;
+ }
+ if ((jj_la1_3[i] & (1<<j)) != 0) {
+ la1tokens[96+j] = true;
+ }
+ if ((jj_la1_4[i] & (1<<j)) != 0) {
+ la1tokens[128+j] = true;
+ }
+ }
+ }
+ }
+ for (int i = 0; i < 157; i++) {
+ if (la1tokens[i]) {
+ jj_expentry = new int[1];
+ jj_expentry[0] = i;
+ jj_expentries.add(jj_expentry);
+ }
+ }
+ jj_endpos = 0;
+ jj_rescan_token();
+ jj_add_error_token(0, 0);
+ int[][] exptokseq = new int[jj_expentries.size()][];
+ for (int i = 0; i < jj_expentries.size(); i++) {
+ exptokseq[i] = jj_expentries.get(i);
+ }
+ return new ParseException(token, exptokseq, tokenImage, token_source == null ? null : ASTParserTokenManager.lexStateNames[token_source.curLexState]);
+ }
+
+ /** Enable tracing. */
+ final public void enable_tracing() {
+ }
+
+ /** Disable tracing. */
+ final public void disable_tracing() {
+ }
+
+ private void jj_rescan_token() {
+ jj_rescan = true;
+ for (int i = 0; i < 44; i++) {
+ try {
+ JJCalls p = jj_2_rtns[i];
+
+ do {
+ if (p.gen > jj_gen) {
+ jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
+ switch (i) {
+ case 0: jj_3_1(); break;
+ case 1: jj_3_2(); break;
+ case 2: jj_3_3(); break;
+ case 3: jj_3_4(); break;
+ case 4: jj_3_5(); break;
+ case 5: jj_3_6(); break;
+ case 6: jj_3_7(); break;
+ case 7: jj_3_8(); break;
+ case 8: jj_3_9(); break;
+ case 9: jj_3_10(); break;
+ case 10: jj_3_11(); break;
+ case 11: jj_3_12(); break;
+ case 12: jj_3_13(); break;
+ case 13: jj_3_14(); break;
+ case 14: jj_3_15(); break;
+ case 15: jj_3_16(); break;
+ case 16: jj_3_17(); break;
+ case 17: jj_3_18(); break;
+ case 18: jj_3_19(); break;
+ case 19: jj_3_20(); break;
+ case 20: jj_3_21(); break;
+ case 21: jj_3_22(); break;
+ case 22: jj_3_23(); break;
+ case 23: jj_3_24(); break;
+ case 24: jj_3_25(); break;
+ case 25: jj_3_26(); break;
+ case 26: jj_3_27(); break;
+ case 27: jj_3_28(); break;
+ case 28: jj_3_29(); break;
+ case 29: jj_3_30(); break;
+ case 30: jj_3_31(); break;
+ case 31: jj_3_32(); break;
+ case 32: jj_3_33(); break;
+ case 33: jj_3_34(); break;
+ case 34: jj_3_35(); break;
+ case 35: jj_3_36(); break;
+ case 36: jj_3_37(); break;
+ case 37: jj_3_38(); break;
+ case 38: jj_3_39(); break;
+ case 39: jj_3_40(); break;
+ case 40: jj_3_41(); break;
+ case 41: jj_3_42(); break;
+ case 42: jj_3_43(); break;
+ case 43: jj_3_44(); break;
+ }
+ }
+ p = p.next;
+ } while (p != null);
+
+ } catch(LookaheadSuccess ls) { }
+ }
+ jj_rescan = false;
+ }
+
+ private void jj_save(int index, int xla) {
+ JJCalls p = jj_2_rtns[index];
+ while (p.gen > jj_gen) {
+ if (p.next == null) { p = p.next = new JJCalls(); break; }
+ p = p.next;
+ }
+
+ p.gen = jj_gen + xla - jj_la;
+ p.first = token;
+ p.arg = xla;
+ }
+
+ static final class JJCalls {
+ int gen;
+ Token first;
+ int arg;
+ JJCalls next;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParserConstants.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParserConstants.java
new file mode 100644
index 000000000..b256848a9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParserConstants.java
@@ -0,0 +1,438 @@
+/* Generated By:JavaCC: Do not edit this line. ASTParserConstants.java */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+
+/**
+ * Token literal values and constants.
+ * Generated by org.javacc.parser.OtherFilesGen#start()
+ */
+public interface ASTParserConstants {
+
+ /** End of File. */
+ int EOF = 0;
+ /** RegularExpression Id. */
+ int SINGLE_LINE_COMMENT = 31;
+ /** RegularExpression Id. */
+ int JAVA_DOC_COMMENT = 34;
+ /** RegularExpression Id. */
+ int MULTI_LINE_COMMENT = 35;
+ /** RegularExpression Id. */
+ int ABSTRACT = 37;
+ /** RegularExpression Id. */
+ int ASSERT = 38;
+ /** RegularExpression Id. */
+ int BOOLEAN = 39;
+ /** RegularExpression Id. */
+ int BREAK = 40;
+ /** RegularExpression Id. */
+ int BYTE = 41;
+ /** RegularExpression Id. */
+ int CASE = 42;
+ /** RegularExpression Id. */
+ int CATCH = 43;
+ /** RegularExpression Id. */
+ int CHAR = 44;
+ /** RegularExpression Id. */
+ int CLASS = 45;
+ /** RegularExpression Id. */
+ int CONST = 46;
+ /** RegularExpression Id. */
+ int CONTINUE = 47;
+ /** RegularExpression Id. */
+ int _DEFAULT = 48;
+ /** RegularExpression Id. */
+ int DO = 49;
+ /** RegularExpression Id. */
+ int DOUBLE = 50;
+ /** RegularExpression Id. */
+ int ELSE = 51;
+ /** RegularExpression Id. */
+ int ENUM = 52;
+ /** RegularExpression Id. */
+ int EXTENDS = 53;
+ /** RegularExpression Id. */
+ int FALSE = 54;
+ /** RegularExpression Id. */
+ int FINAL = 55;
+ /** RegularExpression Id. */
+ int FINALLY = 56;
+ /** RegularExpression Id. */
+ int FLOAT = 57;
+ /** RegularExpression Id. */
+ int FOR = 58;
+ /** RegularExpression Id. */
+ int GOTO = 59;
+ /** RegularExpression Id. */
+ int IF = 60;
+ /** RegularExpression Id. */
+ int IMPLEMENTS = 61;
+ /** RegularExpression Id. */
+ int IMPORT = 62;
+ /** RegularExpression Id. */
+ int INSTANCEOF = 63;
+ /** RegularExpression Id. */
+ int INT = 64;
+ /** RegularExpression Id. */
+ int INTERFACE = 65;
+ /** RegularExpression Id. */
+ int LONG = 66;
+ /** RegularExpression Id. */
+ int NATIVE = 67;
+ /** RegularExpression Id. */
+ int NEW = 68;
+ /** RegularExpression Id. */
+ int NULL = 69;
+ /** RegularExpression Id. */
+ int PACKAGE = 70;
+ /** RegularExpression Id. */
+ int PRIVATE = 71;
+ /** RegularExpression Id. */
+ int PROTECTED = 72;
+ /** RegularExpression Id. */
+ int PUBLIC = 73;
+ /** RegularExpression Id. */
+ int RETURN = 74;
+ /** RegularExpression Id. */
+ int SHORT = 75;
+ /** RegularExpression Id. */
+ int STATIC = 76;
+ /** RegularExpression Id. */
+ int STRICTFP = 77;
+ /** RegularExpression Id. */
+ int SUPER = 78;
+ /** RegularExpression Id. */
+ int SWITCH = 79;
+ /** RegularExpression Id. */
+ int SYNCHRONIZED = 80;
+ /** RegularExpression Id. */
+ int THIS = 81;
+ /** RegularExpression Id. */
+ int THROW = 82;
+ /** RegularExpression Id. */
+ int THROWS = 83;
+ /** RegularExpression Id. */
+ int TRANSIENT = 84;
+ /** RegularExpression Id. */
+ int TRUE = 85;
+ /** RegularExpression Id. */
+ int TRY = 86;
+ /** RegularExpression Id. */
+ int VOID = 87;
+ /** RegularExpression Id. */
+ int VOLATILE = 88;
+ /** RegularExpression Id. */
+ int WHILE = 89;
+ /** RegularExpression Id. */
+ int LONG_LITERAL = 90;
+ /** RegularExpression Id. */
+ int INTEGER_LITERAL = 91;
+ /** RegularExpression Id. */
+ int DECIMAL_LITERAL = 92;
+ /** RegularExpression Id. */
+ int HEX_LITERAL = 93;
+ /** RegularExpression Id. */
+ int OCTAL_LITERAL = 94;
+ /** RegularExpression Id. */
+ int BINARY_LITERAL = 95;
+ /** RegularExpression Id. */
+ int FLOATING_POINT_LITERAL = 96;
+ /** RegularExpression Id. */
+ int DECIMAL_FLOATING_POINT_LITERAL = 97;
+ /** RegularExpression Id. */
+ int DECIMAL_EXPONENT = 98;
+ /** RegularExpression Id. */
+ int HEXADECIMAL_FLOATING_POINT_LITERAL = 99;
+ /** RegularExpression Id. */
+ int HEXADECIMAL_EXPONENT = 100;
+ /** RegularExpression Id. */
+ int CHARACTER_LITERAL = 101;
+ /** RegularExpression Id. */
+ int STRING_LITERAL = 102;
+ /** RegularExpression Id. */
+ int IDENTIFIER = 103;
+ /** RegularExpression Id. */
+ int LETTER = 104;
+ /** RegularExpression Id. */
+ int PART_LETTER = 105;
+ /** RegularExpression Id. */
+ int LPAREN = 106;
+ /** RegularExpression Id. */
+ int RPAREN = 107;
+ /** RegularExpression Id. */
+ int LBRACE = 108;
+ /** RegularExpression Id. */
+ int RBRACE = 109;
+ /** RegularExpression Id. */
+ int LBRACKET = 110;
+ /** RegularExpression Id. */
+ int RBRACKET = 111;
+ /** RegularExpression Id. */
+ int SEMICOLON = 112;
+ /** RegularExpression Id. */
+ int COMMA = 113;
+ /** RegularExpression Id. */
+ int DOT = 114;
+ /** RegularExpression Id. */
+ int AT = 115;
+ /** RegularExpression Id. */
+ int ASSIGN = 116;
+ /** RegularExpression Id. */
+ int LT = 117;
+ /** RegularExpression Id. */
+ int BANG = 118;
+ /** RegularExpression Id. */
+ int TILDE = 119;
+ /** RegularExpression Id. */
+ int HOOK = 120;
+ /** RegularExpression Id. */
+ int COLON = 121;
+ /** RegularExpression Id. */
+ int EQ = 122;
+ /** RegularExpression Id. */
+ int LE = 123;
+ /** RegularExpression Id. */
+ int GE = 124;
+ /** RegularExpression Id. */
+ int NE = 125;
+ /** RegularExpression Id. */
+ int SC_OR = 126;
+ /** RegularExpression Id. */
+ int SC_AND = 127;
+ /** RegularExpression Id. */
+ int INCR = 128;
+ /** RegularExpression Id. */
+ int DECR = 129;
+ /** RegularExpression Id. */
+ int PLUS = 130;
+ /** RegularExpression Id. */
+ int MINUS = 131;
+ /** RegularExpression Id. */
+ int STAR = 132;
+ /** RegularExpression Id. */
+ int SLASH = 133;
+ /** RegularExpression Id. */
+ int BIT_AND = 134;
+ /** RegularExpression Id. */
+ int BIT_OR = 135;
+ /** RegularExpression Id. */
+ int XOR = 136;
+ /** RegularExpression Id. */
+ int REM = 137;
+ /** RegularExpression Id. */
+ int LSHIFT = 138;
+ /** RegularExpression Id. */
+ int PLUSASSIGN = 139;
+ /** RegularExpression Id. */
+ int MINUSASSIGN = 140;
+ /** RegularExpression Id. */
+ int STARASSIGN = 141;
+ /** RegularExpression Id. */
+ int SLASHASSIGN = 142;
+ /** RegularExpression Id. */
+ int ANDASSIGN = 143;
+ /** RegularExpression Id. */
+ int ORASSIGN = 144;
+ /** RegularExpression Id. */
+ int XORASSIGN = 145;
+ /** RegularExpression Id. */
+ int REMASSIGN = 146;
+ /** RegularExpression Id. */
+ int LSHIFTASSIGN = 147;
+ /** RegularExpression Id. */
+ int RSIGNEDSHIFTASSIGN = 148;
+ /** RegularExpression Id. */
+ int RUNSIGNEDSHIFTASSIGN = 149;
+ /** RegularExpression Id. */
+ int ELLIPSIS = 150;
+ /** RegularExpression Id. */
+ int ARROW = 151;
+ /** RegularExpression Id. */
+ int DOUBLECOLON = 152;
+ /** RegularExpression Id. */
+ int RUNSIGNEDSHIFT = 153;
+ /** RegularExpression Id. */
+ int RSIGNEDSHIFT = 154;
+ /** RegularExpression Id. */
+ int GT = 155;
+
+ /** Lexical state. */
+ int DEFAULT = 0;
+ /** Lexical state. */
+ int IN_JAVA_DOC_COMMENT = 1;
+ /** Lexical state. */
+ int IN_MULTI_LINE_COMMENT = 2;
+
+ /** Literal token values. */
+ String[] tokenImage = {
+ "<EOF>",
+ "\" \"",
+ "\"\\t\"",
+ "\"\\n\"",
+ "\"\\r\"",
+ "\"\\f\"",
+ "\"\\u0085\"",
+ "\"\\u00a0\"",
+ "\"\\u1680\"",
+ "\"\\u180e\"",
+ "\"\\u2000\"",
+ "\"\\u2001\"",
+ "\"\\u2002\"",
+ "\"\\u2003\"",
+ "\"\\u2004\"",
+ "\"\\u2005\"",
+ "\"\\u2006\"",
+ "\"\\u2007\"",
+ "\"\\u2008\"",
+ "\"\\u2009\"",
+ "\"\\u200a\"",
+ "\"\\u200b\"",
+ "\"\\u200c\"",
+ "\"\\u200d\"",
+ "\"\\u2028\"",
+ "\"\\u2029\"",
+ "\"\\u202f\"",
+ "\"\\u205f\"",
+ "\"\\u2060\"",
+ "\"\\u3000\"",
+ "\"\\ufeff\"",
+ "<SINGLE_LINE_COMMENT>",
+ "<token of kind 32>",
+ "\"/*\"",
+ "\"*/\"",
+ "\"*/\"",
+ "<token of kind 36>",
+ "\"abstract\"",
+ "\"assert\"",
+ "\"boolean\"",
+ "\"break\"",
+ "\"byte\"",
+ "\"case\"",
+ "\"catch\"",
+ "\"char\"",
+ "\"class\"",
+ "\"const\"",
+ "\"continue\"",
+ "\"default\"",
+ "\"do\"",
+ "\"double\"",
+ "\"else\"",
+ "\"enum\"",
+ "\"extends\"",
+ "\"false\"",
+ "\"final\"",
+ "\"finally\"",
+ "\"float\"",
+ "\"for\"",
+ "\"goto\"",
+ "\"if\"",
+ "\"implements\"",
+ "\"import\"",
+ "\"instanceof\"",
+ "\"int\"",
+ "\"interface\"",
+ "\"long\"",
+ "\"native\"",
+ "\"new\"",
+ "\"null\"",
+ "\"package\"",
+ "\"private\"",
+ "\"protected\"",
+ "\"public\"",
+ "\"return\"",
+ "\"short\"",
+ "\"static\"",
+ "\"strictfp\"",
+ "\"super\"",
+ "\"switch\"",
+ "\"synchronized\"",
+ "\"this\"",
+ "\"throw\"",
+ "\"throws\"",
+ "\"transient\"",
+ "\"true\"",
+ "\"try\"",
+ "\"void\"",
+ "\"volatile\"",
+ "\"while\"",
+ "<LONG_LITERAL>",
+ "<INTEGER_LITERAL>",
+ "<DECIMAL_LITERAL>",
+ "<HEX_LITERAL>",
+ "<OCTAL_LITERAL>",
+ "<BINARY_LITERAL>",
+ "<FLOATING_POINT_LITERAL>",
+ "<DECIMAL_FLOATING_POINT_LITERAL>",
+ "<DECIMAL_EXPONENT>",
+ "<HEXADECIMAL_FLOATING_POINT_LITERAL>",
+ "<HEXADECIMAL_EXPONENT>",
+ "<CHARACTER_LITERAL>",
+ "<STRING_LITERAL>",
+ "<IDENTIFIER>",
+ "<LETTER>",
+ "<PART_LETTER>",
+ "\"(\"",
+ "\")\"",
+ "\"{\"",
+ "\"}\"",
+ "\"[\"",
+ "\"]\"",
+ "\";\"",
+ "\",\"",
+ "\".\"",
+ "\"@\"",
+ "\"=\"",
+ "\"<\"",
+ "\"!\"",
+ "\"~\"",
+ "\"?\"",
+ "\":\"",
+ "\"==\"",
+ "\"<=\"",
+ "\">=\"",
+ "\"!=\"",
+ "\"||\"",
+ "\"&&\"",
+ "\"++\"",
+ "\"--\"",
+ "\"+\"",
+ "\"-\"",
+ "\"*\"",
+ "\"/\"",
+ "\"&\"",
+ "\"|\"",
+ "\"^\"",
+ "\"%\"",
+ "\"<<\"",
+ "\"+=\"",
+ "\"-=\"",
+ "\"*=\"",
+ "\"/=\"",
+ "\"&=\"",
+ "\"|=\"",
+ "\"^=\"",
+ "\"%=\"",
+ "\"<<=\"",
+ "\">>=\"",
+ "\">>>=\"",
+ "\"...\"",
+ "\"->\"",
+ "\"::\"",
+ "\">>>\"",
+ "\">>\"",
+ "\">\"",
+ "\"\\u001a\"",
+ };
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParserTokenManager.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParserTokenManager.java
new file mode 100644
index 000000000..fe6c0c668
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ASTParserTokenManager.java
@@ -0,0 +1,2643 @@
+/* ASTParserTokenManager.java */
+/* Generated By:JavaCC: Do not edit this line. ASTParserTokenManager.java */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+import java.io.*;
+import java.util.*;
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.body.*;
+import com.github.javaparser.ast.comments.*;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.*;
+import com.github.javaparser.ast.type.*;
+import com.github.javaparser.utils.*;
+import static com.github.javaparser.ASTParser.*;
+import static com.github.javaparser.Range.*;
+import static com.github.javaparser.Position.*;
+import static com.github.javaparser.ast.type.ArrayType.*;
+
+/** Token Manager. */
+@SuppressWarnings("unused")public class ASTParserTokenManager implements ASTParserConstants {
+ private List<Token> tokens = new ArrayList<Token>();
+ private CommentsCollection commentsCollection = new CommentsCollection();
+
+ List<Token> getTokens() {
+ return tokens;
+ }
+
+ CommentsCollection getCommentsCollection() {
+ return commentsCollection;
+ }
+
+ private void CommonTokenAction(Token token) {
+ tokens.add(token);
+
+ while (token.specialToken != null) {
+ token = token.specialToken;
+ String commentText = token.image;
+ if (commentText.startsWith("/**")) {
+ JavadocComment comment = new JavadocComment(tokenRange(token), commentText.substring(3, commentText.length() - 2));
+ commentsCollection.addComment(comment);
+ } else if (commentText.startsWith("/*")) {
+ BlockComment comment = new BlockComment(tokenRange(token), commentText.substring(2, commentText.length() - 2));
+ commentsCollection.addComment(comment);
+ } else if (commentText.startsWith("//")) {
+ // line comments have their end of line character(s) included, and we don't want that.
+ Range range = tokenRange(token);
+ while (commentText.endsWith("\r") || commentText.endsWith("\n")) {
+ commentText = commentText.substring(0, commentText.length() - 1);
+ }
+ range = range.withEnd(pos(range.begin.line, range.begin.column + commentText.length()));
+ LineComment comment = new LineComment(tokenRange(token), commentText.substring(2));
+ commentsCollection.addComment(comment);
+ } else {
+ throw new AssertionError("Didn't expect to get here. Please file a bug report. [" + commentText + "]");
+ }
+ }
+ }
+
+ /** Debug output. */
+ public java.io.PrintStream debugStream = System.out;
+ /** Set debug output. */
+ public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1, long active2){
+ switch (pos)
+ {
+ case 0:
+ if ((active0 & 0xffffffe000000000L) != 0L || (active1 & 0x3ffffffL) != 0L)
+ {
+ jjmatchedKind = 103;
+ return 43;
+ }
+ if ((active0 & 0x200000000L) != 0L || (active2 & 0x4020L) != 0L)
+ return 45;
+ if ((active1 & 0x4000000000000L) != 0L || (active2 & 0x400000L) != 0L)
+ return 1;
+ return -1;
+ case 1:
+ if ((active0 & 0xeff9ffe000000000L) != 0L || (active1 & 0x3ffffffL) != 0L)
+ {
+ if (jjmatchedPos != 1)
+ {
+ jjmatchedKind = 103;
+ jjmatchedPos = 1;
+ }
+ return 43;
+ }
+ if ((active0 & 0x1006000000000000L) != 0L)
+ return 43;
+ if ((active0 & 0x200000000L) != 0L)
+ return 50;
+ return -1;
+ case 2:
+ if ((active0 & 0x400000000000000L) != 0L || (active1 & 0x400013L) != 0L)
+ return 43;
+ if ((active0 & 0xebfdffe000000000L) != 0L || (active1 & 0x3bfffecL) != 0L)
+ {
+ if (jjmatchedPos != 2)
+ {
+ jjmatchedKind = 103;
+ jjmatchedPos = 2;
+ }
+ return 43;
+ }
+ return -1;
+ case 3:
+ if ((active0 & 0xe3e5e9e000000000L) != 0L || (active1 & 0x31dffcaL) != 0L)
+ {
+ jjmatchedKind = 103;
+ jjmatchedPos = 3;
+ return 43;
+ }
+ if ((active0 & 0x818160000000000L) != 0L || (active1 & 0xa20024L) != 0L)
+ return 43;
+ return -1;
+ case 4:
+ if ((active0 & 0xe02580e000000000L) != 0L || (active1 & 0x111b7caL) != 0L)
+ {
+ if (jjmatchedPos != 4)
+ {
+ jjmatchedKind = 103;
+ jjmatchedPos = 4;
+ }
+ return 43;
+ }
+ if ((active0 & 0x3c0690000000000L) != 0L || (active1 & 0x20c4800L) != 0L)
+ return 43;
+ return -1;
+ case 5:
+ if ((active0 & 0x4004004000000000L) != 0L || (active1 & 0x89608L) != 0L)
+ return 43;
+ if ((active0 & 0xa12180a000000000L) != 0L || (active1 & 0x11121c2L) != 0L)
+ {
+ jjmatchedKind = 103;
+ jjmatchedPos = 5;
+ return 43;
+ }
+ return -1;
+ case 6:
+ if ((active0 & 0x121008000000000L) != 0L || (active1 & 0xc0L) != 0L)
+ return 43;
+ if ((active0 & 0xa000802000000000L) != 0L || (active1 & 0x1112102L) != 0L)
+ {
+ jjmatchedKind = 103;
+ jjmatchedPos = 6;
+ return 43;
+ }
+ return -1;
+ case 7:
+ if ((active0 & 0xa000000000000000L) != 0L || (active1 & 0x110102L) != 0L)
+ {
+ jjmatchedKind = 103;
+ jjmatchedPos = 7;
+ return 43;
+ }
+ if ((active0 & 0x802000000000L) != 0L || (active1 & 0x1002000L) != 0L)
+ return 43;
+ return -1;
+ case 8:
+ if ((active1 & 0x100102L) != 0L)
+ return 43;
+ if ((active0 & 0xa000000000000000L) != 0L || (active1 & 0x10000L) != 0L)
+ {
+ jjmatchedKind = 103;
+ jjmatchedPos = 8;
+ return 43;
+ }
+ return -1;
+ case 9:
+ if ((active0 & 0xa000000000000000L) != 0L)
+ return 43;
+ if ((active1 & 0x10000L) != 0L)
+ {
+ jjmatchedKind = 103;
+ jjmatchedPos = 9;
+ return 43;
+ }
+ return -1;
+ case 10:
+ if ((active1 & 0x10000L) != 0L)
+ {
+ jjmatchedKind = 103;
+ jjmatchedPos = 10;
+ return 43;
+ }
+ return -1;
+ default :
+ return -1;
+ }
+}
+private final int jjStartNfa_0(int pos, long active0, long active1, long active2){
+ return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1, active2), pos + 1);
+}
+private int jjStopAtPos(int pos, int kind)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ return pos + 1;
+}
+private int jjMoveStringLiteralDfa0_0(){
+ switch(curChar)
+ {
+ case 26:
+ return jjStopAtPos(0, 156);
+ case 33:
+ jjmatchedKind = 118;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000000000000L, 0x0L);
+ case 37:
+ jjmatchedKind = 137;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x40000L);
+ case 38:
+ jjmatchedKind = 134;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x8000000000000000L, 0x8000L);
+ case 40:
+ return jjStopAtPos(0, 106);
+ case 41:
+ return jjStopAtPos(0, 107);
+ case 42:
+ jjmatchedKind = 132;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x2000L);
+ case 43:
+ jjmatchedKind = 130;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x801L);
+ case 44:
+ return jjStopAtPos(0, 113);
+ case 45:
+ jjmatchedKind = 131;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x801002L);
+ case 46:
+ jjmatchedKind = 114;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x400000L);
+ case 47:
+ jjmatchedKind = 133;
+ return jjMoveStringLiteralDfa1_0(0x200000000L, 0x0L, 0x4000L);
+ case 58:
+ jjmatchedKind = 121;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x1000000L);
+ case 59:
+ return jjStopAtPos(0, 112);
+ case 60:
+ jjmatchedKind = 117;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x800000000000000L, 0x80400L);
+ case 61:
+ jjmatchedKind = 116;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x400000000000000L, 0x0L);
+ case 62:
+ jjmatchedKind = 155;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x1000000000000000L, 0x6300000L);
+ case 63:
+ return jjStopAtPos(0, 120);
+ case 64:
+ return jjStopAtPos(0, 115);
+ case 91:
+ return jjStopAtPos(0, 110);
+ case 93:
+ return jjStopAtPos(0, 111);
+ case 94:
+ jjmatchedKind = 136;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x20000L);
+ case 97:
+ return jjMoveStringLiteralDfa1_0(0x6000000000L, 0x0L, 0x0L);
+ case 98:
+ return jjMoveStringLiteralDfa1_0(0x38000000000L, 0x0L, 0x0L);
+ case 99:
+ return jjMoveStringLiteralDfa1_0(0xfc0000000000L, 0x0L, 0x0L);
+ case 100:
+ return jjMoveStringLiteralDfa1_0(0x7000000000000L, 0x0L, 0x0L);
+ case 101:
+ return jjMoveStringLiteralDfa1_0(0x38000000000000L, 0x0L, 0x0L);
+ case 102:
+ return jjMoveStringLiteralDfa1_0(0x7c0000000000000L, 0x0L, 0x0L);
+ case 103:
+ return jjMoveStringLiteralDfa1_0(0x800000000000000L, 0x0L, 0x0L);
+ case 105:
+ return jjMoveStringLiteralDfa1_0(0xf000000000000000L, 0x3L, 0x0L);
+ case 108:
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x4L, 0x0L);
+ case 110:
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x38L, 0x0L);
+ case 112:
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x3c0L, 0x0L);
+ case 114:
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x400L, 0x0L);
+ case 115:
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x1f800L, 0x0L);
+ case 116:
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x7e0000L, 0x0L);
+ case 118:
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x1800000L, 0x0L);
+ case 119:
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000L, 0x0L);
+ case 123:
+ return jjStopAtPos(0, 108);
+ case 124:
+ jjmatchedKind = 135;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x4000000000000000L, 0x10000L);
+ case 125:
+ return jjStopAtPos(0, 109);
+ case 126:
+ return jjStopAtPos(0, 119);
+ case 133:
+ return jjStopAtPos(0, 6);
+ case 160:
+ return jjStopAtPos(0, 7);
+ case 5760:
+ return jjStopAtPos(0, 8);
+ case 6158:
+ return jjStopAtPos(0, 9);
+ case 8192:
+ return jjStopAtPos(0, 10);
+ case 8193:
+ return jjStopAtPos(0, 11);
+ case 8194:
+ return jjStopAtPos(0, 12);
+ case 8195:
+ return jjStopAtPos(0, 13);
+ case 8196:
+ return jjStopAtPos(0, 14);
+ case 8197:
+ return jjStopAtPos(0, 15);
+ case 8198:
+ return jjStopAtPos(0, 16);
+ case 8199:
+ return jjStopAtPos(0, 17);
+ case 8200:
+ return jjStopAtPos(0, 18);
+ case 8201:
+ return jjStopAtPos(0, 19);
+ case 8202:
+ return jjStopAtPos(0, 20);
+ case 8203:
+ return jjStopAtPos(0, 21);
+ case 8204:
+ return jjStopAtPos(0, 22);
+ case 8205:
+ return jjStopAtPos(0, 23);
+ case 8232:
+ return jjStopAtPos(0, 24);
+ case 8233:
+ return jjStopAtPos(0, 25);
+ case 8239:
+ return jjStopAtPos(0, 26);
+ case 8287:
+ return jjStopAtPos(0, 27);
+ case 8288:
+ return jjStopAtPos(0, 28);
+ case 12288:
+ return jjStopAtPos(0, 29);
+ case 65279:
+ return jjStopAtPos(0, 30);
+ default :
+ return jjMoveNfa_0(0, 0);
+ }
+}
+private int jjMoveStringLiteralDfa1_0(long active0, long active1, long active2){
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(0, active0, active1, active2);
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 38:
+ if ((active1 & 0x8000000000000000L) != 0L)
+ return jjStopAtPos(1, 127);
+ break;
+ case 42:
+ if ((active0 & 0x200000000L) != 0L)
+ return jjStartNfaWithStates_0(1, 33, 50);
+ break;
+ case 43:
+ if ((active2 & 0x1L) != 0L)
+ return jjStopAtPos(1, 128);
+ break;
+ case 45:
+ if ((active2 & 0x2L) != 0L)
+ return jjStopAtPos(1, 129);
+ break;
+ case 46:
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x400000L);
+ case 58:
+ if ((active2 & 0x1000000L) != 0L)
+ return jjStopAtPos(1, 152);
+ break;
+ case 60:
+ if ((active2 & 0x400L) != 0L)
+ {
+ jjmatchedKind = 138;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x80000L);
+ case 61:
+ if ((active1 & 0x400000000000000L) != 0L)
+ return jjStopAtPos(1, 122);
+ else if ((active1 & 0x800000000000000L) != 0L)
+ return jjStopAtPos(1, 123);
+ else if ((active1 & 0x1000000000000000L) != 0L)
+ return jjStopAtPos(1, 124);
+ else if ((active1 & 0x2000000000000000L) != 0L)
+ return jjStopAtPos(1, 125);
+ else if ((active2 & 0x800L) != 0L)
+ return jjStopAtPos(1, 139);
+ else if ((active2 & 0x1000L) != 0L)
+ return jjStopAtPos(1, 140);
+ else if ((active2 & 0x2000L) != 0L)
+ return jjStopAtPos(1, 141);
+ else if ((active2 & 0x4000L) != 0L)
+ return jjStopAtPos(1, 142);
+ else if ((active2 & 0x8000L) != 0L)
+ return jjStopAtPos(1, 143);
+ else if ((active2 & 0x10000L) != 0L)
+ return jjStopAtPos(1, 144);
+ else if ((active2 & 0x20000L) != 0L)
+ return jjStopAtPos(1, 145);
+ else if ((active2 & 0x40000L) != 0L)
+ return jjStopAtPos(1, 146);
+ break;
+ case 62:
+ if ((active2 & 0x800000L) != 0L)
+ return jjStopAtPos(1, 151);
+ else if ((active2 & 0x4000000L) != 0L)
+ {
+ jjmatchedKind = 154;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x2300000L);
+ case 97:
+ return jjMoveStringLiteralDfa2_0(active0, 0x400c0000000000L, active1, 0x48L, active2, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa2_0(active0, 0x2000000000L, active1, 0L, active2, 0L);
+ case 101:
+ return jjMoveStringLiteralDfa2_0(active0, 0x1000000000000L, active1, 0x410L, active2, 0L);
+ case 102:
+ if ((active0 & 0x1000000000000000L) != 0L)
+ return jjStartNfaWithStates_0(1, 60, 43);
+ break;
+ case 104:
+ return jjMoveStringLiteralDfa2_0(active0, 0x100000000000L, active1, 0x20e0800L, active2, 0L);
+ case 105:
+ return jjMoveStringLiteralDfa2_0(active0, 0x180000000000000L, active1, 0L, active2, 0L);
+ case 108:
+ return jjMoveStringLiteralDfa2_0(active0, 0x208200000000000L, active1, 0L, active2, 0L);
+ case 109:
+ return jjMoveStringLiteralDfa2_0(active0, 0x6000000000000000L, active1, 0L, active2, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa2_0(active0, 0x8010000000000000L, active1, 0x3L, active2, 0L);
+ case 111:
+ if ((active0 & 0x2000000000000L) != 0L)
+ {
+ jjmatchedKind = 49;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0xc04c08000000000L, active1, 0x1800004L, active2, 0L);
+ case 114:
+ return jjMoveStringLiteralDfa2_0(active0, 0x10000000000L, active1, 0x700180L, active2, 0L);
+ case 115:
+ return jjMoveStringLiteralDfa2_0(active0, 0x4000000000L, active1, 0L, active2, 0L);
+ case 116:
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x3000L, active2, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4220L, active2, 0L);
+ case 119:
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x8000L, active2, 0L);
+ case 120:
+ return jjMoveStringLiteralDfa2_0(active0, 0x20000000000000L, active1, 0L, active2, 0L);
+ case 121:
+ return jjMoveStringLiteralDfa2_0(active0, 0x20000000000L, active1, 0x10000L, active2, 0L);
+ case 124:
+ if ((active1 & 0x4000000000000000L) != 0L)
+ return jjStopAtPos(1, 126);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(0, active0, active1, active2);
+}
+private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1, long old2, long active2){
+ if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
+ return jjStartNfa_0(0, old0, old1, old2);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(1, active0, active1, active2);
+ return 2;
+ }
+ switch(curChar)
+ {
+ case 46:
+ if ((active2 & 0x400000L) != 0L)
+ return jjStopAtPos(2, 150);
+ break;
+ case 61:
+ if ((active2 & 0x80000L) != 0L)
+ return jjStopAtPos(2, 147);
+ else if ((active2 & 0x100000L) != 0L)
+ return jjStopAtPos(2, 148);
+ break;
+ case 62:
+ if ((active2 & 0x2000000L) != 0L)
+ {
+ jjmatchedKind = 153;
+ jjmatchedPos = 2;
+ }
+ return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x200000L);
+ case 97:
+ return jjMoveStringLiteralDfa3_0(active0, 0x300000000000L, active1, 0x101000L, active2, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200L, active2, 0L);
+ case 99:
+ return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40L, active2, 0L);
+ case 101:
+ return jjMoveStringLiteralDfa3_0(active0, 0x10000000000L, active1, 0L, active2, 0L);
+ case 102:
+ return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000L, active1, 0L, active2, 0L);
+ case 105:
+ return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2828080L, active2, 0L);
+ case 108:
+ return jjMoveStringLiteralDfa3_0(active0, 0x40000000000000L, active1, 0x1000020L, active2, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa3_0(active0, 0x180c00000000000L, active1, 0x10004L, active2, 0L);
+ case 111:
+ return jjMoveStringLiteralDfa3_0(active0, 0x200008000000000L, active1, 0x900L, active2, 0L);
+ case 112:
+ return jjMoveStringLiteralDfa3_0(active0, 0x6000000000000000L, active1, 0x4000L, active2, 0L);
+ case 114:
+ if ((active0 & 0x400000000000000L) != 0L)
+ return jjStartNfaWithStates_0(2, 58, 43);
+ return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0xc2000L, active2, 0L);
+ case 115:
+ return jjMoveStringLiteralDfa3_0(active0, 0x8008046000000000L, active1, 0L, active2, 0L);
+ case 116:
+ if ((active1 & 0x1L) != 0L)
+ {
+ jjmatchedKind = 64;
+ jjmatchedPos = 2;
+ }
+ return jjMoveStringLiteralDfa3_0(active0, 0x8200a0000000000L, active1, 0x40aL, active2, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa3_0(active0, 0x14000000000000L, active1, 0x200000L, active2, 0L);
+ case 119:
+ if ((active1 & 0x10L) != 0L)
+ return jjStartNfaWithStates_0(2, 68, 43);
+ break;
+ case 121:
+ if ((active1 & 0x400000L) != 0L)
+ return jjStartNfaWithStates_0(2, 86, 43);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(1, active0, active1, active2);
+}
+private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1, long old2, long active2){
+ if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
+ return jjStartNfa_0(1, old0, old1, old2);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(2, active0, active1, active2);
+ return 3;
+ }
+ switch(curChar)
+ {
+ case 61:
+ if ((active2 & 0x200000L) != 0L)
+ return jjStopAtPos(3, 149);
+ break;
+ case 97:
+ return jjMoveStringLiteralDfa4_0(active0, 0x381010000000000L, active1, 0x1000000L, active2, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000L, active1, 0L, active2, 0L);
+ case 99:
+ return jjMoveStringLiteralDfa4_0(active0, 0x80000000000L, active1, 0x10000L, active2, 0L);
+ case 100:
+ if ((active1 & 0x800000L) != 0L)
+ return jjStartNfaWithStates_0(3, 87, 43);
+ break;
+ case 101:
+ if ((active0 & 0x20000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 41, 43);
+ else if ((active0 & 0x40000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 42, 43);
+ else if ((active0 & 0x8000000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 51, 43);
+ else if ((active1 & 0x200000L) != 0L)
+ return jjStartNfaWithStates_0(3, 85, 43);
+ return jjMoveStringLiteralDfa4_0(active0, 0x20004000000000L, active1, 0x4002L, active2, 0L);
+ case 103:
+ if ((active1 & 0x4L) != 0L)
+ return jjStartNfaWithStates_0(3, 66, 43);
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x2008L, active2, 0L);
+ case 107:
+ return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x40L, active2, 0L);
+ case 108:
+ if ((active1 & 0x20L) != 0L)
+ return jjStartNfaWithStates_0(3, 69, 43);
+ return jjMoveStringLiteralDfa4_0(active0, 0x2000008000000000L, active1, 0x2000200L, active2, 0L);
+ case 109:
+ if ((active0 & 0x10000000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 52, 43);
+ break;
+ case 110:
+ return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000L, active2, 0L);
+ case 111:
+ if ((active0 & 0x800000000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 59, 43);
+ return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000000L, active1, 0xc0000L, active2, 0L);
+ case 114:
+ if ((active0 & 0x100000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 44, 43);
+ return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800L, active2, 0L);
+ case 115:
+ if ((active1 & 0x20000L) != 0L)
+ return jjStartNfaWithStates_0(3, 81, 43);
+ return jjMoveStringLiteralDfa4_0(active0, 0x40600000000000L, active1, 0L, active2, 0L);
+ case 116:
+ return jjMoveStringLiteralDfa4_0(active0, 0x8000802000000000L, active1, 0x9100L, active2, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x400L, active2, 0L);
+ case 118:
+ return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x80L, active2, 0L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(2, active0, active1, active2);
+}
+private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1, long old2, long active2){
+ if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
+ return jjStartNfa_0(2, old0, old1, old2);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(3, active0, active1, 0L);
+ return 4;
+ }
+ switch(curChar)
+ {
+ case 97:
+ return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0xc0L);
+ case 99:
+ return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0xa000L);
+ case 101:
+ if ((active0 & 0x40000000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 54, 43);
+ else if ((active1 & 0x2000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 89, 43);
+ return jjMoveStringLiteralDfa5_0(active0, 0x2000008000000000L, active1, 0x100L);
+ case 104:
+ if ((active0 & 0x80000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 43, 43);
+ return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x10000L);
+ case 105:
+ return jjMoveStringLiteralDfa5_0(active0, 0x800000000000L, active1, 0x1200L);
+ case 107:
+ if ((active0 & 0x10000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 40, 43);
+ break;
+ case 108:
+ if ((active0 & 0x80000000000000L) != 0L)
+ {
+ jjmatchedKind = 55;
+ jjmatchedPos = 4;
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x104000000000000L, active1, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa5_0(active0, 0x20000000000000L, active1, 0L);
+ case 114:
+ if ((active1 & 0x4000L) != 0L)
+ return jjStartNfaWithStates_0(4, 78, 43);
+ return jjMoveStringLiteralDfa5_0(active0, 0x4000006000000000L, active1, 0x402L);
+ case 115:
+ if ((active0 & 0x200000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 45, 43);
+ return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100000L);
+ case 116:
+ if ((active0 & 0x400000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 46, 43);
+ else if ((active0 & 0x200000000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 57, 43);
+ else if ((active1 & 0x800L) != 0L)
+ return jjStartNfaWithStates_0(4, 75, 43);
+ return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x1000000L);
+ case 117:
+ return jjMoveStringLiteralDfa5_0(active0, 0x1000000000000L, active1, 0L);
+ case 118:
+ return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8L);
+ case 119:
+ if ((active1 & 0x40000L) != 0L)
+ {
+ jjmatchedKind = 82;
+ jjmatchedPos = 4;
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x80000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(3, active0, active1, 0L);
+}
+private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long active1){
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(3, old0, old1, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(4, active0, active1, 0L);
+ return 5;
+ }
+ switch(curChar)
+ {
+ case 97:
+ return jjMoveStringLiteralDfa6_0(active0, 0xa000000000L, active1, 0L);
+ case 99:
+ if ((active1 & 0x200L) != 0L)
+ return jjStartNfaWithStates_0(5, 73, 43);
+ else if ((active1 & 0x1000L) != 0L)
+ return jjStartNfaWithStates_0(5, 76, 43);
+ return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x100L);
+ case 100:
+ return jjMoveStringLiteralDfa6_0(active0, 0x20000000000000L, active1, 0L);
+ case 101:
+ if ((active0 & 0x4000000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 50, 43);
+ else if ((active1 & 0x8L) != 0L)
+ return jjStartNfaWithStates_0(5, 67, 43);
+ break;
+ case 102:
+ return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2L);
+ case 103:
+ return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x40L);
+ case 104:
+ if ((active1 & 0x8000L) != 0L)
+ return jjStartNfaWithStates_0(5, 79, 43);
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x1100000L);
+ case 108:
+ return jjMoveStringLiteralDfa6_0(active0, 0x101000000000000L, active1, 0L);
+ case 109:
+ return jjMoveStringLiteralDfa6_0(active0, 0x2000000000000000L, active1, 0L);
+ case 110:
+ if ((active1 & 0x400L) != 0L)
+ return jjStartNfaWithStates_0(5, 74, 43);
+ return jjMoveStringLiteralDfa6_0(active0, 0x8000800000000000L, active1, 0L);
+ case 114:
+ return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10000L);
+ case 115:
+ if ((active1 & 0x80000L) != 0L)
+ return jjStartNfaWithStates_0(5, 83, 43);
+ break;
+ case 116:
+ if ((active0 & 0x4000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 38, 43);
+ else if ((active0 & 0x4000000000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 62, 43);
+ return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2080L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(4, active0, active1, 0L);
+}
+private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long active1){
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(4, old0, old1, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(5, active0, active1, 0L);
+ return 6;
+ }
+ switch(curChar)
+ {
+ case 97:
+ return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x2L);
+ case 99:
+ return jjMoveStringLiteralDfa7_0(active0, 0x8000002000000000L, active1, 0L);
+ case 101:
+ if ((active1 & 0x40L) != 0L)
+ return jjStartNfaWithStates_0(6, 70, 43);
+ else if ((active1 & 0x80L) != 0L)
+ return jjStartNfaWithStates_0(6, 71, 43);
+ return jjMoveStringLiteralDfa7_0(active0, 0x2000000000000000L, active1, 0x100000L);
+ case 102:
+ return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x2000L);
+ case 108:
+ return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x1000000L);
+ case 110:
+ if ((active0 & 0x8000000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 39, 43);
+ break;
+ case 111:
+ return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000L);
+ case 115:
+ if ((active0 & 0x20000000000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 53, 43);
+ break;
+ case 116:
+ if ((active0 & 0x1000000000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 48, 43);
+ return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x100L);
+ case 117:
+ return jjMoveStringLiteralDfa7_0(active0, 0x800000000000L, active1, 0L);
+ case 121:
+ if ((active0 & 0x100000000000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 56, 43);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(5, active0, active1, 0L);
+}
+private int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1, long active1){
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(5, old0, old1, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(6, active0, active1, 0L);
+ return 7;
+ }
+ switch(curChar)
+ {
+ case 99:
+ return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x2L);
+ case 101:
+ if ((active0 & 0x800000000000L) != 0L)
+ return jjStartNfaWithStates_0(7, 47, 43);
+ else if ((active1 & 0x1000000L) != 0L)
+ return jjStartNfaWithStates_0(7, 88, 43);
+ return jjMoveStringLiteralDfa8_0(active0, 0x8000000000000000L, active1, 0x100L);
+ case 110:
+ return jjMoveStringLiteralDfa8_0(active0, 0x2000000000000000L, active1, 0x110000L);
+ case 112:
+ if ((active1 & 0x2000L) != 0L)
+ return jjStartNfaWithStates_0(7, 77, 43);
+ break;
+ case 116:
+ if ((active0 & 0x2000000000L) != 0L)
+ return jjStartNfaWithStates_0(7, 37, 43);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(6, active0, active1, 0L);
+}
+private int jjMoveStringLiteralDfa8_0(long old0, long active0, long old1, long active1){
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(6, old0, old1, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(7, active0, active1, 0L);
+ return 8;
+ }
+ switch(curChar)
+ {
+ case 100:
+ if ((active1 & 0x100L) != 0L)
+ return jjStartNfaWithStates_0(8, 72, 43);
+ break;
+ case 101:
+ if ((active1 & 0x2L) != 0L)
+ return jjStartNfaWithStates_0(8, 65, 43);
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x10000L);
+ case 111:
+ return jjMoveStringLiteralDfa9_0(active0, 0x8000000000000000L, active1, 0L);
+ case 116:
+ if ((active1 & 0x100000L) != 0L)
+ return jjStartNfaWithStates_0(8, 84, 43);
+ return jjMoveStringLiteralDfa9_0(active0, 0x2000000000000000L, active1, 0L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(7, active0, active1, 0L);
+}
+private int jjMoveStringLiteralDfa9_0(long old0, long active0, long old1, long active1){
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(7, old0, old1, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(8, active0, active1, 0L);
+ return 9;
+ }
+ switch(curChar)
+ {
+ case 102:
+ if ((active0 & 0x8000000000000000L) != 0L)
+ return jjStartNfaWithStates_0(9, 63, 43);
+ break;
+ case 115:
+ if ((active0 & 0x2000000000000000L) != 0L)
+ return jjStartNfaWithStates_0(9, 61, 43);
+ break;
+ case 122:
+ return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x10000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(8, active0, active1, 0L);
+}
+private int jjMoveStringLiteralDfa10_0(long old0, long active0, long old1, long active1){
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(8, old0, old1, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(9, 0L, active1, 0L);
+ return 10;
+ }
+ switch(curChar)
+ {
+ case 101:
+ return jjMoveStringLiteralDfa11_0(active1, 0x10000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(9, 0L, active1, 0L);
+}
+private int jjMoveStringLiteralDfa11_0(long old1, long active1){
+ if (((active1 &= old1)) == 0L)
+ return jjStartNfa_0(9, 0L, old1, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(10, 0L, active1, 0L);
+ return 11;
+ }
+ switch(curChar)
+ {
+ case 100:
+ if ((active1 & 0x10000L) != 0L)
+ return jjStartNfaWithStates_0(11, 80, 43);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(10, 0L, active1, 0L);
+}
+private int jjStartNfaWithStates_0(int pos, int kind, int state)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return pos + 1; }
+ return jjMoveNfa_0(state, pos + 1);
+}
+static final long[] jjbitVec0 = {
+ 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec2 = {
+ 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec3 = {
+ 0xfff0000000200002L, 0xffffffffffffdfffL, 0xfffff00f7fffffffL, 0x12000000007fffffL
+};
+static final long[] jjbitVec4 = {
+ 0x0L, 0x0L, 0x420043c00000000L, 0xff7fffffff7fffffL
+};
+static final long[] jjbitVec5 = {
+ 0x7fffffffffffffL, 0xffffffffffff0000L, 0xffffffffffffffffL, 0x401f0003ffc3L
+};
+static final long[] jjbitVec6 = {
+ 0x0L, 0x400000000000000L, 0xfffffffbffffd740L, 0xfbfffffffff7fffL
+};
+static final long[] jjbitVec7 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffffffc03L, 0x33fffffffff7fffL
+};
+static final long[] jjbitVec8 = {
+ 0xfffe00000000ffffL, 0xfffffffe027fffffL, 0xffL, 0x707ffffff0000L
+};
+static final long[] jjbitVec9 = {
+ 0x7fffffe00000000L, 0xfffec000000007ffL, 0xffffffffffffffffL, 0x9c00c060002fffffL
+};
+static final long[] jjbitVec10 = {
+ 0xfffffffd0000L, 0xe000L, 0x2003fffffffffL, 0x0L
+};
+static final long[] jjbitVec11 = {
+ 0x23fffffffffffff0L, 0x3ff010000L, 0x23c5fdfffff99fe0L, 0xf0003b0000000L
+};
+static final long[] jjbitVec12 = {
+ 0x36dfdfffff987e0L, 0x1c00005e000000L, 0x23edfdfffffbbfe0L, 0x2000300010000L
+};
+static final long[] jjbitVec13 = {
+ 0x23edfdfffff99fe0L, 0x20003b0000000L, 0x3bfc718d63dc7e8L, 0x200000000000000L
+};
+static final long[] jjbitVec14 = {
+ 0x3effdfffffddfe0L, 0x300000000L, 0x23effdfffffddfe0L, 0x340000000L
+};
+static final long[] jjbitVec15 = {
+ 0x3fffdfffffddfe0L, 0x300000000L, 0x2ffbfffffc7fffe0L, 0x7fL
+};
+static final long[] jjbitVec16 = {
+ 0x800dfffffffffffeL, 0x7fL, 0x200decaefef02596L, 0x3000005fL
+};
+static final long[] jjbitVec17 = {
+ 0x1L, 0x7fffffffeffL, 0xf00L, 0x0L
+};
+static final long[] jjbitVec18 = {
+ 0x6fbffffffffL, 0x3f0000L, 0xffffffff00000000L, 0x1ffffffffff003fL
+};
+static final long[] jjbitVec19 = {
+ 0xffffffffffffffffL, 0xffffffff83ffffffL, 0xffffff07ffffffffL, 0x3ffffffffffffffL
+};
+static final long[] jjbitVec20 = {
+ 0xffffffffffffff7fL, 0xffffffff3d7f3d7fL, 0x7f3d7fffffff3d7fL, 0xffff7fffff7f7f3dL
+};
+static final long[] jjbitVec21 = {
+ 0xffffffff7f3d7fffL, 0x7ffff7fL, 0xffffffff00000000L, 0x1fffffffffffffL
+};
+static final long[] jjbitVec22 = {
+ 0xffffffffffffffffL, 0x7f9fffffffffffL, 0xffffffff07fffffeL, 0x1c7ffffffffffL
+};
+static final long[] jjbitVec23 = {
+ 0x3ffff0003dfffL, 0x1dfff0003ffffL, 0xfffffffffffffL, 0x18800000L
+};
+static final long[] jjbitVec24 = {
+ 0xffffffff00000000L, 0xffffffffffffffL, 0x1ffffffffffL, 0x0L
+};
+static final long[] jjbitVec25 = {
+ 0x1fffffffL, 0x1f3fffffff0000L, 0x0L, 0x0L
+};
+static final long[] jjbitVec26 = {
+ 0xffffffffffffffffL, 0xfffffffffffL, 0x0L, 0x0L
+};
+static final long[] jjbitVec27 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffff0fffffffL, 0x3ffffffffffffffL
+};
+static final long[] jjbitVec28 = {
+ 0xffffffff3f3fffffL, 0x3fffffffaaff3f3fL, 0x5fdfffffffffffffL, 0x1fdc1fff0fcf1fdcL
+};
+static final long[] jjbitVec29 = {
+ 0x8000000000000000L, 0x8002000000100001L, 0x3ffff00000000L, 0x0L
+};
+static final long[] jjbitVec30 = {
+ 0xe3fbbd503e2ffc84L, 0xffffffff000003e0L, 0xfL, 0x0L
+};
+static final long[] jjbitVec31 = {
+ 0x1f3e03fe000000e0L, 0xfffffffffffffffeL, 0xfffffffee07fffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec32 = {
+ 0xfffe1fffffffffe0L, 0xffffffffffffffffL, 0xffffff00007fffL, 0xffff000000000000L
+};
+static final long[] jjbitVec33 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fffffffffffffL, 0x0L
+};
+static final long[] jjbitVec34 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fffffffffL, 0x0L
+};
+static final long[] jjbitVec35 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x1fffL, 0x0L
+};
+static final long[] jjbitVec36 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffL, 0x0L
+};
+static final long[] jjbitVec37 = {
+ 0x6L, 0x0L, 0x0L, 0x0L
+};
+static final long[] jjbitVec38 = {
+ 0xffff3fffffffffffL, 0x7ffffffffffL, 0x0L, 0x0L
+};
+static final long[] jjbitVec39 = {
+ 0x5f7ffdffa0f8007fL, 0xffffffffffffffdbL, 0x3ffffffffffffL, 0xfffffffffff80000L
+};
+static final long[] jjbitVec40 = {
+ 0x3fffffffffffffffL, 0xffffffffffff0000L, 0xfffffffffffcffffL, 0x1fff0000000000ffL
+};
+static final long[] jjbitVec41 = {
+ 0x18000000000000L, 0xffdf02000000e000L, 0xffffffffffffffffL, 0x1fffffffffffffffL
+};
+static final long[] jjbitVec42 = {
+ 0x87fffffe00000010L, 0xffffffe007fffffeL, 0x7fffffffffffffffL, 0x631cfcfcfcL
+};
+static final long[] jjbitVec43 = {
+ 0x0L, 0x0L, 0x420243cffffffffL, 0xff7fffffff7fffffL
+};
+static final long[] jjbitVec44 = {
+ 0xffffffffffffffffL, 0x400ffffe0ffffffL, 0xfffffffbffffd740L, 0xfbfffffffff7fffL
+};
+static final long[] jjbitVec45 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffffffc7bL, 0x33fffffffff7fffL
+};
+static final long[] jjbitVec46 = {
+ 0xfffe00000000ffffL, 0xfffffffe027fffffL, 0xbbfffffbfffe00ffL, 0x707ffffff0016L
+};
+static final long[] jjbitVec47 = {
+ 0x7fffffe003f000fL, 0xffffc3ff01ffffffL, 0xffffffffffffffffL, 0x9ffffdffbfefffffL
+};
+static final long[] jjbitVec48 = {
+ 0xffffffffffff8000L, 0xe7ffL, 0x3ffffffffffffL, 0x0L
+};
+static final long[] jjbitVec49 = {
+ 0xf3fffffffffffffeL, 0xffcfff1f3fffL, 0xf3c5fdfffff99feeL, 0xfffcfb080399fL
+};
+static final long[] jjbitVec50 = {
+ 0xd36dfdfffff987eeL, 0x1fffc05e003987L, 0xf3edfdfffffbbfeeL, 0x2ffcf00013bbfL
+};
+static final long[] jjbitVec51 = {
+ 0xf3edfdfffff99feeL, 0x2ffc3b0c0398fL, 0xc3bfc718d63dc7ecL, 0x200ff8000803dc7L
+};
+static final long[] jjbitVec52 = {
+ 0xc3effdfffffddfeeL, 0xffc300603ddfL, 0xf3effdfffffddfecL, 0xffc340603ddfL
+};
+static final long[] jjbitVec53 = {
+ 0xc3fffdfffffddfecL, 0xffc300803dcfL, 0x2ffbfffffc7fffecL, 0xc0000ff5f847fL
+};
+static final long[] jjbitVec54 = {
+ 0x87fffffffffffffeL, 0x3ff7fffL, 0x3bffecaefef02596L, 0x33ff3f5fL
+};
+static final long[] jjbitVec55 = {
+ 0xc2a003ff03000001L, 0xfffe07fffffffeffL, 0x1ffffffffeff0fdfL, 0x40L
+};
+static final long[] jjbitVec56 = {
+ 0x3c7f6fbffffffffL, 0x3ff03ffL, 0xffffffff00000000L, 0x1ffffffffff003fL
+};
+static final long[] jjbitVec57 = {
+ 0xffffffff7f3d7fffL, 0x3fe0007ffff7fL, 0xffffffff00000000L, 0x1fffffffffffffL
+};
+static final long[] jjbitVec58 = {
+ 0x1fffff001fdfffL, 0xddfff000fffffL, 0xffffffffffffffffL, 0x3ff388fffffL
+};
+static final long[] jjbitVec59 = {
+ 0xffffffff03ff3800L, 0xffffffffffffffL, 0x3ffffffffffL, 0x0L
+};
+static final long[] jjbitVec60 = {
+ 0xfff0fff1fffffffL, 0x1f3fffffffffc0L, 0x0L, 0x0L
+};
+static final long[] jjbitVec61 = {
+ 0x80007c000000f000L, 0x8002fc0f00100001L, 0x3ffff00000000L, 0x7e21fff0000L
+};
+static final long[] jjbitVec62 = {
+ 0x1f3efffe000000e0L, 0xfffffffffffffffeL, 0xfffffffee67fffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec63 = {
+ 0x10000000000006L, 0x0L, 0x0L, 0x0L
+};
+static final long[] jjbitVec64 = {
+ 0x3L, 0x0L, 0x0L, 0x0L
+};
+static final long[] jjbitVec65 = {
+ 0x0L, 0x800000000000000L, 0x0L, 0x0L
+};
+static final long[] jjbitVec66 = {
+ 0x5f7ffdffe0f8007fL, 0xffffffffffffffdbL, 0x3ffffffffffffL, 0xfffffffffff80000L
+};
+static final long[] jjbitVec67 = {
+ 0x18000f0000ffffL, 0xffdf02000000e000L, 0xffffffffffffffffL, 0x9fffffffffffffffL
+};
+static final long[] jjbitVec68 = {
+ 0x87fffffe03ff0010L, 0xffffffe007fffffeL, 0x7fffffffffffffffL, 0xe0000631cfcfcfcL
+};
+private int jjMoveNfa_0(int startState, int curPos)
+{
+ int startsAt = 0;
+ jjnewStateCnt = 130;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int kind = 0x7fffffff;
+ for (;;)
+ {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64)
+ {
+ long l = 1L << curChar;
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 45:
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 50;
+ else if (curChar == 47)
+ {
+ if (kind > 31)
+ kind = 31;
+ { jjCheckNAddStates(0, 2); }
+ }
+ break;
+ case 0:
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 91)
+ kind = 91;
+ { jjCheckNAddStates(3, 17); }
+ }
+ else if (curChar == 47)
+ { jjAddStates(18, 19); }
+ else if (curChar == 36)
+ {
+ if (kind > 103)
+ kind = 103;
+ { jjCheckNAdd(43); }
+ }
+ else if (curChar == 34)
+ { jjCheckNAddStates(20, 23); }
+ else if (curChar == 39)
+ { jjAddStates(24, 26); }
+ else if (curChar == 46)
+ { jjCheckNAdd(1); }
+ if (curChar == 48)
+ { jjAddStates(27, 34); }
+ break;
+ case 1:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(35, 38); }
+ break;
+ case 2:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(2, 3); }
+ break;
+ case 3:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(39, 41); }
+ break;
+ case 5:
+ if ((0x280000000000L & l) != 0L)
+ { jjCheckNAdd(6); }
+ break;
+ case 6:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(42, 44); }
+ break;
+ case 7:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(7, 8); }
+ break;
+ case 8:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddTwoStates(6, 9); }
+ break;
+ case 10:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(45, 48); }
+ break;
+ case 11:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(49, 53); }
+ break;
+ case 12:
+ if (curChar == 39)
+ { jjAddStates(24, 26); }
+ break;
+ case 13:
+ if ((0xffffff7fffffdbffL & l) != 0L)
+ { jjCheckNAdd(14); }
+ break;
+ case 14:
+ if (curChar == 39 && kind > 101)
+ kind = 101;
+ break;
+ case 16:
+ if ((0x8400000000L & l) != 0L)
+ { jjCheckNAdd(14); }
+ break;
+ case 17:
+ if ((0xff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(18, 14); }
+ break;
+ case 18:
+ if ((0xff000000000000L & l) != 0L)
+ { jjCheckNAdd(14); }
+ break;
+ case 19:
+ if ((0xf000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 20;
+ break;
+ case 20:
+ if ((0xff000000000000L & l) != 0L)
+ { jjCheckNAdd(18); }
+ break;
+ case 22:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 23;
+ break;
+ case 23:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 24;
+ break;
+ case 24:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 25;
+ break;
+ case 25:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAdd(14); }
+ break;
+ case 27:
+ if (curChar == 34)
+ { jjCheckNAddStates(20, 23); }
+ break;
+ case 28:
+ if ((0xfffffffbffffdbffL & l) != 0L)
+ { jjCheckNAddStates(20, 23); }
+ break;
+ case 30:
+ if ((0x8400000000L & l) != 0L)
+ { jjCheckNAddStates(20, 23); }
+ break;
+ case 32:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 33;
+ break;
+ case 33:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 34;
+ break;
+ case 34:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 35;
+ break;
+ case 35:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(20, 23); }
+ break;
+ case 37:
+ if (curChar == 34 && kind > 102)
+ kind = 102;
+ break;
+ case 38:
+ if ((0xff000000000000L & l) != 0L)
+ { jjCheckNAddStates(54, 58); }
+ break;
+ case 39:
+ if ((0xff000000000000L & l) != 0L)
+ { jjCheckNAddStates(20, 23); }
+ break;
+ case 40:
+ if ((0xf000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 41;
+ break;
+ case 41:
+ if ((0xff000000000000L & l) != 0L)
+ { jjCheckNAdd(39); }
+ break;
+ case 42:
+ if (curChar != 36)
+ break;
+ if (kind > 103)
+ kind = 103;
+ { jjCheckNAdd(43); }
+ break;
+ case 43:
+ if ((0x3ff00100fffc1ffL & l) == 0L)
+ break;
+ if (kind > 103)
+ kind = 103;
+ { jjCheckNAdd(43); }
+ break;
+ case 44:
+ if (curChar == 47)
+ { jjAddStates(18, 19); }
+ break;
+ case 46:
+ if ((0xffffffffffffdbffL & l) == 0L)
+ break;
+ if (kind > 31)
+ kind = 31;
+ { jjCheckNAddStates(0, 2); }
+ break;
+ case 47:
+ if ((0x2400L & l) != 0L && kind > 31)
+ kind = 31;
+ break;
+ case 48:
+ if (curChar == 10 && kind > 31)
+ kind = 31;
+ break;
+ case 49:
+ if (curChar == 13)
+ jjstateSet[jjnewStateCnt++] = 48;
+ break;
+ case 50:
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 51;
+ break;
+ case 51:
+ if ((0xffff7fffffffffffL & l) != 0L && kind > 32)
+ kind = 32;
+ break;
+ case 52:
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 50;
+ break;
+ case 53:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 91)
+ kind = 91;
+ { jjCheckNAddStates(3, 17); }
+ break;
+ case 54:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(54, 55); }
+ break;
+ case 55:
+ case 98:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAdd(56); }
+ break;
+ case 57:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(57, 58); }
+ break;
+ case 58:
+ case 109:
+ if ((0x3ff000000000000L & l) != 0L && kind > 91)
+ kind = 91;
+ break;
+ case 59:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(59, 60); }
+ break;
+ case 60:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(59, 61); }
+ break;
+ case 61:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(62, 65); }
+ break;
+ case 63:
+ if ((0x280000000000L & l) != 0L)
+ { jjCheckNAdd(64); }
+ break;
+ case 64:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(66, 68); }
+ break;
+ case 65:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(65, 66); }
+ break;
+ case 66:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(64, 9); }
+ break;
+ case 67:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(69, 72); }
+ break;
+ case 68:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(73, 77); }
+ break;
+ case 69:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(69, 70); }
+ break;
+ case 70:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(71, 72); }
+ break;
+ case 71:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(78, 80); }
+ break;
+ case 73:
+ if ((0x280000000000L & l) != 0L)
+ { jjCheckNAdd(74); }
+ break;
+ case 74:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(81, 83); }
+ break;
+ case 75:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(75, 76); }
+ break;
+ case 76:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddTwoStates(74, 9); }
+ break;
+ case 77:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(84, 87); }
+ break;
+ case 78:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(88, 91); }
+ break;
+ case 79:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(79, 80); }
+ break;
+ case 80:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(81, 82); }
+ break;
+ case 81:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(92, 94); }
+ break;
+ case 82:
+ if (curChar != 46)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(95, 97); }
+ break;
+ case 83:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(98, 101); }
+ break;
+ case 84:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(84, 85); }
+ break;
+ case 85:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(95, 97); }
+ break;
+ case 87:
+ if ((0x280000000000L & l) != 0L)
+ { jjCheckNAdd(88); }
+ break;
+ case 88:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(102, 104); }
+ break;
+ case 89:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(89, 90); }
+ break;
+ case 90:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddTwoStates(88, 9); }
+ break;
+ case 91:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(105, 108); }
+ break;
+ case 92:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddStates(109, 113); }
+ break;
+ case 93:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(114, 117); }
+ break;
+ case 94:
+ if (curChar == 48)
+ { jjAddStates(27, 34); }
+ break;
+ case 96:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(118, 120); }
+ break;
+ case 97:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(97, 98); }
+ break;
+ case 99:
+ if ((0xff000000000000L & l) != 0L)
+ { jjCheckNAddStates(121, 123); }
+ break;
+ case 100:
+ if ((0xff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(100, 101); }
+ break;
+ case 101:
+ if ((0xff000000000000L & l) != 0L)
+ { jjCheckNAdd(56); }
+ break;
+ case 103:
+ if ((0x3000000000000L & l) != 0L)
+ { jjCheckNAddStates(124, 126); }
+ break;
+ case 104:
+ if ((0x3000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(104, 105); }
+ break;
+ case 105:
+ if ((0x3000000000000L & l) != 0L)
+ { jjCheckNAdd(56); }
+ break;
+ case 107:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 91)
+ kind = 91;
+ { jjCheckNAddTwoStates(108, 109); }
+ break;
+ case 108:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(108, 109); }
+ break;
+ case 110:
+ if ((0xff000000000000L & l) == 0L)
+ break;
+ if (kind > 91)
+ kind = 91;
+ { jjCheckNAddTwoStates(111, 112); }
+ break;
+ case 111:
+ if ((0xff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(111, 112); }
+ break;
+ case 112:
+ if ((0xff000000000000L & l) != 0L && kind > 91)
+ kind = 91;
+ break;
+ case 114:
+ if ((0x3000000000000L & l) == 0L)
+ break;
+ if (kind > 91)
+ kind = 91;
+ { jjCheckNAddTwoStates(115, 116); }
+ break;
+ case 115:
+ if ((0x3000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(115, 116); }
+ break;
+ case 116:
+ if ((0x3000000000000L & l) != 0L && kind > 91)
+ kind = 91;
+ break;
+ case 118:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjAddStates(127, 128); }
+ break;
+ case 119:
+ if (curChar == 46)
+ { jjCheckNAdd(120); }
+ break;
+ case 120:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddTwoStates(120, 121); }
+ break;
+ case 122:
+ if ((0x280000000000L & l) != 0L)
+ { jjCheckNAdd(123); }
+ break;
+ case 123:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddTwoStates(123, 9); }
+ break;
+ case 125:
+ if ((0x3ff000000000000L & l) != 0L)
+ { jjCheckNAddStates(129, 131); }
+ break;
+ case 126:
+ if (curChar == 46)
+ { jjCheckNAdd(127); }
+ break;
+ case 128:
+ if ((0x280000000000L & l) != 0L)
+ { jjCheckNAdd(129); }
+ break;
+ case 129:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 96)
+ kind = 96;
+ { jjCheckNAddTwoStates(129, 9); }
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else if (curChar < 128)
+ {
+ long l = 1L << (curChar & 077);
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 103)
+ kind = 103;
+ { jjCheckNAdd(43); }
+ break;
+ case 2:
+ if (curChar == 95)
+ { jjAddStates(132, 133); }
+ break;
+ case 4:
+ if ((0x2000000020L & l) != 0L)
+ { jjAddStates(134, 135); }
+ break;
+ case 7:
+ if (curChar == 95)
+ { jjAddStates(136, 137); }
+ break;
+ case 9:
+ if ((0x5000000050L & l) != 0L && kind > 96)
+ kind = 96;
+ break;
+ case 13:
+ if ((0xffffffffefffffffL & l) != 0L)
+ { jjCheckNAdd(14); }
+ break;
+ case 15:
+ if (curChar == 92)
+ { jjAddStates(138, 140); }
+ break;
+ case 16:
+ if ((0x14404410000000L & l) != 0L)
+ { jjCheckNAdd(14); }
+ break;
+ case 21:
+ if (curChar == 117)
+ jjstateSet[jjnewStateCnt++] = 22;
+ break;
+ case 22:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 23;
+ break;
+ case 23:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 24;
+ break;
+ case 24:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 25;
+ break;
+ case 25:
+ if ((0x7e0000007eL & l) != 0L)
+ { jjCheckNAdd(14); }
+ break;
+ case 26:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 21;
+ break;
+ case 28:
+ if ((0xffffffffefffffffL & l) != 0L)
+ { jjCheckNAddStates(20, 23); }
+ break;
+ case 29:
+ if (curChar == 92)
+ { jjAddStates(141, 143); }
+ break;
+ case 30:
+ if ((0x14404410000000L & l) != 0L)
+ { jjCheckNAddStates(20, 23); }
+ break;
+ case 31:
+ if (curChar == 117)
+ jjstateSet[jjnewStateCnt++] = 32;
+ break;
+ case 32:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 33;
+ break;
+ case 33:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 34;
+ break;
+ case 34:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 35;
+ break;
+ case 35:
+ if ((0x7e0000007eL & l) != 0L)
+ { jjCheckNAddStates(20, 23); }
+ break;
+ case 36:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 31;
+ break;
+ case 43:
+ if ((0x87fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 103)
+ kind = 103;
+ { jjCheckNAdd(43); }
+ break;
+ case 46:
+ if (kind > 31)
+ kind = 31;
+ { jjAddStates(0, 2); }
+ break;
+ case 51:
+ if (kind > 32)
+ kind = 32;
+ break;
+ case 54:
+ if (curChar == 95)
+ { jjAddStates(144, 145); }
+ break;
+ case 56:
+ if ((0x100000001000L & l) != 0L && kind > 90)
+ kind = 90;
+ break;
+ case 57:
+ if (curChar == 95)
+ { jjAddStates(146, 147); }
+ break;
+ case 59:
+ if (curChar == 95)
+ { jjAddStates(148, 149); }
+ break;
+ case 62:
+ if ((0x2000000020L & l) != 0L)
+ { jjAddStates(150, 151); }
+ break;
+ case 65:
+ if (curChar == 95)
+ { jjAddStates(152, 153); }
+ break;
+ case 69:
+ if (curChar == 95)
+ { jjAddStates(154, 155); }
+ break;
+ case 72:
+ if ((0x2000000020L & l) != 0L)
+ { jjAddStates(156, 157); }
+ break;
+ case 75:
+ if (curChar == 95)
+ { jjAddStates(158, 159); }
+ break;
+ case 79:
+ if (curChar == 95)
+ { jjAddStates(160, 161); }
+ break;
+ case 84:
+ if (curChar == 95)
+ { jjAddStates(162, 163); }
+ break;
+ case 86:
+ if ((0x2000000020L & l) != 0L)
+ { jjAddStates(164, 165); }
+ break;
+ case 89:
+ if (curChar == 95)
+ { jjAddStates(166, 167); }
+ break;
+ case 95:
+ if ((0x100000001000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 96;
+ break;
+ case 96:
+ if ((0x7e0000007eL & l) != 0L)
+ { jjCheckNAddStates(118, 120); }
+ break;
+ case 97:
+ if ((0x7e8000007eL & l) != 0L)
+ { jjCheckNAddTwoStates(97, 98); }
+ break;
+ case 98:
+ if ((0x7e0000007eL & l) != 0L)
+ { jjCheckNAdd(56); }
+ break;
+ case 100:
+ if (curChar == 95)
+ { jjAddStates(168, 169); }
+ break;
+ case 102:
+ if ((0x400000004L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 103;
+ break;
+ case 104:
+ if (curChar == 95)
+ { jjAddStates(170, 171); }
+ break;
+ case 106:
+ if ((0x100000001000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 107;
+ break;
+ case 107:
+ if ((0x7e0000007eL & l) == 0L)
+ break;
+ if (kind > 91)
+ kind = 91;
+ { jjCheckNAddTwoStates(108, 109); }
+ break;
+ case 108:
+ if ((0x7e8000007eL & l) != 0L)
+ { jjCheckNAddTwoStates(108, 109); }
+ break;
+ case 109:
+ if ((0x7e0000007eL & l) != 0L && kind > 91)
+ kind = 91;
+ break;
+ case 111:
+ if (curChar == 95)
+ { jjAddStates(172, 173); }
+ break;
+ case 113:
+ if ((0x400000004L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 114;
+ break;
+ case 115:
+ if (curChar == 95)
+ { jjAddStates(174, 175); }
+ break;
+ case 117:
+ if ((0x100000001000000L & l) != 0L)
+ { jjCheckNAddTwoStates(118, 119); }
+ break;
+ case 118:
+ if ((0x7e0000007eL & l) != 0L)
+ { jjCheckNAddTwoStates(118, 119); }
+ break;
+ case 120:
+ if ((0x7e0000007eL & l) != 0L)
+ { jjAddStates(176, 177); }
+ break;
+ case 121:
+ if ((0x1000000010000L & l) != 0L)
+ { jjAddStates(178, 179); }
+ break;
+ case 124:
+ if ((0x100000001000000L & l) != 0L)
+ { jjCheckNAdd(125); }
+ break;
+ case 125:
+ if ((0x7e0000007eL & l) != 0L)
+ { jjCheckNAddStates(129, 131); }
+ break;
+ case 127:
+ if ((0x1000000010000L & l) != 0L)
+ { jjAddStates(180, 181); }
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else
+ {
+ int hiByte = (curChar >> 8);
+ int i1 = hiByte >> 6;
+ long l1 = 1L << (hiByte & 077);
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 103)
+ kind = 103;
+ { jjCheckNAdd(43); }
+ break;
+ case 13:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjstateSet[jjnewStateCnt++] = 14;
+ break;
+ case 28:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ { jjAddStates(20, 23); }
+ break;
+ case 43:
+ if (!jjCanMove_2(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 103)
+ kind = 103;
+ { jjCheckNAdd(43); }
+ break;
+ case 46:
+ if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 31)
+ kind = 31;
+ { jjAddStates(0, 2); }
+ break;
+ case 51:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 32)
+ kind = 32;
+ break;
+ default : if (i1 == 0 || l1 == 0 || i2 == 0 || l2 == 0) break; else break;
+ }
+ } while(i != startsAt);
+ }
+ if (kind != 0x7fffffff)
+ {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 130 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return curPos; }
+ }
+}
+private int jjMoveStringLiteralDfa0_2(){
+ switch(curChar)
+ {
+ case 42:
+ return jjMoveStringLiteralDfa1_2(0x800000000L);
+ default :
+ return 1;
+ }
+}
+private int jjMoveStringLiteralDfa1_2(long active0){
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 47:
+ if ((active0 & 0x800000000L) != 0L)
+ return jjStopAtPos(1, 35);
+ break;
+ default :
+ return 2;
+ }
+ return 2;
+}
+private int jjMoveStringLiteralDfa0_1(){
+ switch(curChar)
+ {
+ case 42:
+ return jjMoveStringLiteralDfa1_1(0x400000000L);
+ default :
+ return 1;
+ }
+}
+private int jjMoveStringLiteralDfa1_1(long active0){
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 47:
+ if ((active0 & 0x400000000L) != 0L)
+ return jjStopAtPos(1, 34);
+ break;
+ default :
+ return 2;
+ }
+ return 2;
+}
+static final int[] jjnextStates = {
+ 46, 47, 49, 54, 55, 56, 57, 58, 59, 62, 9, 69, 72, 79, 82, 93,
+ 78, 68, 45, 52, 28, 29, 36, 37, 13, 15, 26, 95, 99, 102, 106, 110,
+ 113, 117, 124, 2, 4, 9, 11, 1, 4, 9, 7, 9, 10, 6, 7, 9,
+ 10, 1, 2, 4, 9, 11, 28, 29, 39, 36, 37, 61, 62, 9, 59, 62,
+ 9, 68, 65, 9, 67, 64, 65, 9, 67, 61, 59, 62, 9, 68, 69, 72,
+ 78, 75, 9, 77, 74, 75, 9, 77, 71, 69, 72, 78, 79, 82, 93, 83,
+ 86, 9, 84, 86, 9, 92, 89, 9, 91, 88, 89, 9, 91, 83, 84, 86,
+ 9, 92, 81, 79, 82, 93, 97, 98, 56, 100, 101, 56, 104, 105, 56, 118,
+ 119, 125, 126, 127, 2, 3, 5, 6, 7, 8, 16, 17, 19, 30, 38, 40,
+ 54, 55, 57, 58, 59, 60, 63, 64, 65, 66, 69, 70, 73, 74, 75, 76,
+ 79, 80, 84, 85, 87, 88, 89, 90, 100, 101, 104, 105, 111, 112, 115, 116,
+ 120, 121, 122, 123, 128, 129,
+};
+private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec2[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec0[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec4[i2] & l2) != 0L);
+ case 2:
+ return ((jjbitVec5[i2] & l2) != 0L);
+ case 3:
+ return ((jjbitVec6[i2] & l2) != 0L);
+ case 4:
+ return ((jjbitVec7[i2] & l2) != 0L);
+ case 5:
+ return ((jjbitVec8[i2] & l2) != 0L);
+ case 6:
+ return ((jjbitVec9[i2] & l2) != 0L);
+ case 7:
+ return ((jjbitVec10[i2] & l2) != 0L);
+ case 9:
+ return ((jjbitVec11[i2] & l2) != 0L);
+ case 10:
+ return ((jjbitVec12[i2] & l2) != 0L);
+ case 11:
+ return ((jjbitVec13[i2] & l2) != 0L);
+ case 12:
+ return ((jjbitVec14[i2] & l2) != 0L);
+ case 13:
+ return ((jjbitVec15[i2] & l2) != 0L);
+ case 14:
+ return ((jjbitVec16[i2] & l2) != 0L);
+ case 15:
+ return ((jjbitVec17[i2] & l2) != 0L);
+ case 16:
+ return ((jjbitVec18[i2] & l2) != 0L);
+ case 17:
+ return ((jjbitVec19[i2] & l2) != 0L);
+ case 18:
+ return ((jjbitVec20[i2] & l2) != 0L);
+ case 19:
+ return ((jjbitVec21[i2] & l2) != 0L);
+ case 20:
+ return ((jjbitVec0[i2] & l2) != 0L);
+ case 22:
+ return ((jjbitVec22[i2] & l2) != 0L);
+ case 23:
+ return ((jjbitVec23[i2] & l2) != 0L);
+ case 24:
+ return ((jjbitVec24[i2] & l2) != 0L);
+ case 25:
+ return ((jjbitVec25[i2] & l2) != 0L);
+ case 29:
+ return ((jjbitVec26[i2] & l2) != 0L);
+ case 30:
+ return ((jjbitVec27[i2] & l2) != 0L);
+ case 31:
+ return ((jjbitVec28[i2] & l2) != 0L);
+ case 32:
+ return ((jjbitVec29[i2] & l2) != 0L);
+ case 33:
+ return ((jjbitVec30[i2] & l2) != 0L);
+ case 48:
+ return ((jjbitVec31[i2] & l2) != 0L);
+ case 49:
+ return ((jjbitVec32[i2] & l2) != 0L);
+ case 77:
+ return ((jjbitVec33[i2] & l2) != 0L);
+ case 159:
+ return ((jjbitVec34[i2] & l2) != 0L);
+ case 164:
+ return ((jjbitVec35[i2] & l2) != 0L);
+ case 215:
+ return ((jjbitVec36[i2] & l2) != 0L);
+ case 216:
+ return ((jjbitVec37[i2] & l2) != 0L);
+ case 250:
+ return ((jjbitVec38[i2] & l2) != 0L);
+ case 251:
+ return ((jjbitVec39[i2] & l2) != 0L);
+ case 253:
+ return ((jjbitVec40[i2] & l2) != 0L);
+ case 254:
+ return ((jjbitVec41[i2] & l2) != 0L);
+ case 255:
+ return ((jjbitVec42[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec3[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+private static final boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec43[i2] & l2) != 0L);
+ case 2:
+ return ((jjbitVec5[i2] & l2) != 0L);
+ case 3:
+ return ((jjbitVec44[i2] & l2) != 0L);
+ case 4:
+ return ((jjbitVec45[i2] & l2) != 0L);
+ case 5:
+ return ((jjbitVec46[i2] & l2) != 0L);
+ case 6:
+ return ((jjbitVec47[i2] & l2) != 0L);
+ case 7:
+ return ((jjbitVec48[i2] & l2) != 0L);
+ case 9:
+ return ((jjbitVec49[i2] & l2) != 0L);
+ case 10:
+ return ((jjbitVec50[i2] & l2) != 0L);
+ case 11:
+ return ((jjbitVec51[i2] & l2) != 0L);
+ case 12:
+ return ((jjbitVec52[i2] & l2) != 0L);
+ case 13:
+ return ((jjbitVec53[i2] & l2) != 0L);
+ case 14:
+ return ((jjbitVec54[i2] & l2) != 0L);
+ case 15:
+ return ((jjbitVec55[i2] & l2) != 0L);
+ case 16:
+ return ((jjbitVec56[i2] & l2) != 0L);
+ case 17:
+ return ((jjbitVec19[i2] & l2) != 0L);
+ case 18:
+ return ((jjbitVec20[i2] & l2) != 0L);
+ case 19:
+ return ((jjbitVec57[i2] & l2) != 0L);
+ case 20:
+ return ((jjbitVec0[i2] & l2) != 0L);
+ case 22:
+ return ((jjbitVec22[i2] & l2) != 0L);
+ case 23:
+ return ((jjbitVec58[i2] & l2) != 0L);
+ case 24:
+ return ((jjbitVec59[i2] & l2) != 0L);
+ case 25:
+ return ((jjbitVec60[i2] & l2) != 0L);
+ case 29:
+ return ((jjbitVec26[i2] & l2) != 0L);
+ case 30:
+ return ((jjbitVec27[i2] & l2) != 0L);
+ case 31:
+ return ((jjbitVec28[i2] & l2) != 0L);
+ case 32:
+ return ((jjbitVec61[i2] & l2) != 0L);
+ case 33:
+ return ((jjbitVec30[i2] & l2) != 0L);
+ case 48:
+ return ((jjbitVec62[i2] & l2) != 0L);
+ case 49:
+ return ((jjbitVec32[i2] & l2) != 0L);
+ case 77:
+ return ((jjbitVec33[i2] & l2) != 0L);
+ case 159:
+ return ((jjbitVec34[i2] & l2) != 0L);
+ case 164:
+ return ((jjbitVec35[i2] & l2) != 0L);
+ case 215:
+ return ((jjbitVec36[i2] & l2) != 0L);
+ case 216:
+ return ((jjbitVec63[i2] & l2) != 0L);
+ case 220:
+ return ((jjbitVec64[i2] & l2) != 0L);
+ case 221:
+ return ((jjbitVec65[i2] & l2) != 0L);
+ case 250:
+ return ((jjbitVec38[i2] & l2) != 0L);
+ case 251:
+ return ((jjbitVec66[i2] & l2) != 0L);
+ case 253:
+ return ((jjbitVec40[i2] & l2) != 0L);
+ case 254:
+ return ((jjbitVec67[i2] & l2) != 0L);
+ case 255:
+ return ((jjbitVec68[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec3[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+
+/** Token literal values. */
+public static final String[] jjstrLiteralImages = {
+"", null, null, null, null, null, null, null, null, null, null, null, null,
+null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+null, null, null, null, null, null, null, null, null, null,
+"\141\142\163\164\162\141\143\164", "\141\163\163\145\162\164", "\142\157\157\154\145\141\156",
+"\142\162\145\141\153", "\142\171\164\145", "\143\141\163\145", "\143\141\164\143\150",
+"\143\150\141\162", "\143\154\141\163\163", "\143\157\156\163\164",
+"\143\157\156\164\151\156\165\145", "\144\145\146\141\165\154\164", "\144\157", "\144\157\165\142\154\145",
+"\145\154\163\145", "\145\156\165\155", "\145\170\164\145\156\144\163", "\146\141\154\163\145",
+"\146\151\156\141\154", "\146\151\156\141\154\154\171", "\146\154\157\141\164", "\146\157\162",
+"\147\157\164\157", "\151\146", "\151\155\160\154\145\155\145\156\164\163",
+"\151\155\160\157\162\164", "\151\156\163\164\141\156\143\145\157\146", "\151\156\164",
+"\151\156\164\145\162\146\141\143\145", "\154\157\156\147", "\156\141\164\151\166\145", "\156\145\167",
+"\156\165\154\154", "\160\141\143\153\141\147\145", "\160\162\151\166\141\164\145",
+"\160\162\157\164\145\143\164\145\144", "\160\165\142\154\151\143", "\162\145\164\165\162\156",
+"\163\150\157\162\164", "\163\164\141\164\151\143", "\163\164\162\151\143\164\146\160",
+"\163\165\160\145\162", "\163\167\151\164\143\150",
+"\163\171\156\143\150\162\157\156\151\172\145\144", "\164\150\151\163", "\164\150\162\157\167", "\164\150\162\157\167\163",
+"\164\162\141\156\163\151\145\156\164", "\164\162\165\145", "\164\162\171", "\166\157\151\144",
+"\166\157\154\141\164\151\154\145", "\167\150\151\154\145", null, null, null, null, null, null, null, null, null,
+null, null, null, null, null, null, null, "\50", "\51", "\173", "\175", "\133",
+"\135", "\73", "\54", "\56", "\100", "\75", "\74", "\41", "\176", "\77", "\72",
+"\75\75", "\74\75", "\76\75", "\41\75", "\174\174", "\46\46", "\53\53", "\55\55", "\53",
+"\55", "\52", "\57", "\46", "\174", "\136", "\45", "\74\74", "\53\75", "\55\75",
+"\52\75", "\57\75", "\46\75", "\174\75", "\136\75", "\45\75", "\74\74\75", "\76\76\75",
+"\76\76\76\75", "\56\56\56", "\55\76", "\72\72", "\76\76\76", "\76\76", "\76", "\32", };
+protected Token jjFillToken()
+{
+ final Token t;
+ final String curTokenImage;
+ final int beginLine;
+ final int endLine;
+ final int beginColumn;
+ final int endColumn;
+ String im = jjstrLiteralImages[jjmatchedKind];
+ curTokenImage = (im == null) ? input_stream.GetImage() : im;
+ beginLine = input_stream.getBeginLine();
+ beginColumn = input_stream.getBeginColumn();
+ endLine = input_stream.getEndLine();
+ endColumn = input_stream.getEndColumn();
+ t = ASTParser.GTToken.newToken(jjmatchedKind, curTokenImage);
+
+ t.beginLine = beginLine;
+ t.endLine = endLine;
+ t.beginColumn = beginColumn;
+ t.endColumn = endColumn;
+
+ return t;
+}
+
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+/** Get the next Token. */
+public Token getNextToken()
+{
+ Token specialToken = null;
+ Token matchedToken;
+ int curPos = 0;
+
+ EOFLoop :
+ for (;;)
+ {
+ try
+ {
+ curChar = input_stream.BeginToken();
+ }
+ catch(Exception e)
+ {
+ jjmatchedKind = 0;
+ jjmatchedPos = -1;
+ matchedToken = jjFillToken();
+ matchedToken.specialToken = specialToken;
+ CommonTokenAction(matchedToken);
+ return matchedToken;
+ }
+ image = jjimage;
+ image.setLength(0);
+ jjimageLen = 0;
+
+ for (;;)
+ {
+ switch(curLexState)
+ {
+ case 0:
+ try { input_stream.backup(0);
+ while (curChar <= 32 && (0x100003600L & (1L << curChar)) != 0L)
+ curChar = input_stream.BeginToken();
+ }
+ catch (java.io.IOException e1) { continue EOFLoop; }
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_0();
+ break;
+ case 1:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_1();
+ if (jjmatchedPos == 0 && jjmatchedKind > 36)
+ {
+ jjmatchedKind = 36;
+ }
+ break;
+ case 2:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_2();
+ if (jjmatchedPos == 0 && jjmatchedKind > 36)
+ {
+ jjmatchedKind = 36;
+ }
+ break;
+ }
+ if (jjmatchedKind != 0x7fffffff)
+ {
+ if (jjmatchedPos + 1 < curPos)
+ input_stream.backup(curPos - jjmatchedPos - 1);
+ if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+ {
+ matchedToken = jjFillToken();
+ matchedToken.specialToken = specialToken;
+ TokenLexicalActions(matchedToken);
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ CommonTokenAction(matchedToken);
+ return matchedToken;
+ }
+ else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+ {
+ if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+ {
+ matchedToken = jjFillToken();
+ if (specialToken == null)
+ specialToken = matchedToken;
+ else
+ {
+ matchedToken.specialToken = specialToken;
+ specialToken = (specialToken.next = matchedToken);
+ }
+ SkipLexicalActions(matchedToken);
+ }
+ else
+ SkipLexicalActions(null);
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ continue EOFLoop;
+ }
+ MoreLexicalActions();
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ curPos = 0;
+ jjmatchedKind = 0x7fffffff;
+ try {
+ curChar = input_stream.readChar();
+ continue;
+ }
+ catch (java.io.IOException e1) { }
+ }
+ int error_line = input_stream.getEndLine();
+ int error_column = input_stream.getEndColumn();
+ String error_after = null;
+ boolean EOFSeen = false;
+ try { input_stream.readChar(); input_stream.backup(1); }
+ catch (java.io.IOException e1) {
+ EOFSeen = true;
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ if (curChar == '\n' || curChar == '\r') {
+ error_line++;
+ error_column = 0;
+ }
+ else
+ error_column++;
+ }
+ if (!EOFSeen) {
+ input_stream.backup(1);
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ }
+ throw new TokenMgrException(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrException.LEXICAL_ERROR);
+ }
+ }
+}
+
+void SkipLexicalActions(Token matchedToken)
+{
+ switch(jjmatchedKind)
+ {
+ default :
+ break;
+ }
+}
+void MoreLexicalActions()
+{
+ jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
+ switch(jjmatchedKind)
+ {
+ case 32 :
+ image.append(input_stream.GetSuffix(jjimageLen));
+ jjimageLen = 0;
+ input_stream.backup(1);
+ break;
+ default :
+ break;
+ }
+}
+void TokenLexicalActions(Token matchedToken)
+{
+ switch(jjmatchedKind)
+ {
+ case 153 :
+ image.append(jjstrLiteralImages[153]);
+ lengthOfMatch = jjstrLiteralImages[153].length();
+ matchedToken.kind = GT;
+ ((ASTParser.GTToken)matchedToken).realKind = RUNSIGNEDSHIFT;
+ input_stream.backup(2);
+ break;
+ case 154 :
+ image.append(jjstrLiteralImages[154]);
+ lengthOfMatch = jjstrLiteralImages[154].length();
+ matchedToken.kind = GT;
+ ((ASTParser.GTToken)matchedToken).realKind = RSIGNEDSHIFT;
+ input_stream.backup(1);
+ break;
+ default :
+ break;
+ }
+}
+private void jjCheckNAdd(int state)
+{
+ if (jjrounds[state] != jjround)
+ {
+ jjstateSet[jjnewStateCnt++] = state;
+ jjrounds[state] = jjround;
+ }
+}
+private void jjAddStates(int start, int end)
+{
+ do {
+ jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+ } while (start++ != end);
+}
+private void jjCheckNAddTwoStates(int state1, int state2)
+{
+ jjCheckNAdd(state1);
+ jjCheckNAdd(state2);
+}
+
+private void jjCheckNAddStates(int start, int end)
+{
+ do {
+ jjCheckNAdd(jjnextStates[start]);
+ } while (start++ != end);
+}
+
+ /** Constructor. */
+ public ASTParserTokenManager(JavaCharStream stream){
+
+ if (JavaCharStream.staticFlag)
+ throw new RuntimeException("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+
+ input_stream = stream;
+ }
+
+ /** Constructor. */
+ public ASTParserTokenManager (JavaCharStream stream, int lexState){
+ ReInit(stream);
+ SwitchTo(lexState);
+ }
+
+ /** Reinitialise parser. */
+ public void ReInit(JavaCharStream stream)
+ {
+
+ jjmatchedPos = jjnewStateCnt = 0;
+ curLexState = defaultLexState;
+ input_stream = stream;
+ ReInitRounds();
+ }
+
+ private void ReInitRounds()
+ {
+ int i;
+ jjround = 0x80000001;
+ for (i = 130; i-- > 0;)
+ jjrounds[i] = 0x80000000;
+ }
+
+ /** Reinitialise parser. */
+ public void ReInit( JavaCharStream stream, int lexState)
+ {
+
+ ReInit( stream);
+ SwitchTo(lexState);
+ }
+
+ /** Switch to specified lex state. */
+ public void SwitchTo(int lexState)
+ {
+ if (lexState >= 3 || lexState < 0)
+ throw new TokenMgrException("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrException.INVALID_LEXICAL_STATE);
+ else
+ curLexState = lexState;
+ }
+
+/** Lexer state names. */
+public static final String[] lexStateNames = {
+ "DEFAULT",
+ "IN_JAVA_DOC_COMMENT",
+ "IN_MULTI_LINE_COMMENT",
+};
+
+/** Lex State array. */
+public static final int[] jjnewLexState = {
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 1, 2, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1,
+};
+static final long[] jjtoToken = {
+ 0xffffffe000000001L, 0xfffffce10fffffffL, 0x1fffffffL,
+};
+static final long[] jjtoSkip = {
+ 0xcfffffffeL, 0x0L, 0x0L,
+};
+static final long[] jjtoSpecial = {
+ 0xc80000000L, 0x0L, 0x0L,
+};
+static final long[] jjtoMore = {
+ 0x1300000000L, 0x0L, 0x0L,
+};
+ protected JavaCharStream input_stream;
+
+ private final int[] jjrounds = new int[130];
+ private final int[] jjstateSet = new int[2 * 130];
+
+ private final StringBuilder jjimage = new StringBuilder();
+ private StringBuilder image = jjimage;
+ private int jjimageLen;
+ private int lengthOfMatch;
+
+ protected int curChar;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/JavaCharStream.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/JavaCharStream.java
new file mode 100644
index 000000000..da924dbe0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/JavaCharStream.java
@@ -0,0 +1,560 @@
+/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 6.1 */
+/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+/**
+ * An implementation of interface CharStream, where the stream is assumed to
+ * contain only ASCII characters (with java-like unicode escape processing).
+ */
+
+
+public
+class JavaCharStream
+{
+ /** Whether parser is static. */
+ public static final boolean staticFlag = false;
+
+
+ static final int hexval(char c) throws java.io.IOException {
+ switch(c)
+ {
+ case '0' :
+ return 0;
+ case '1' :
+ return 1;
+ case '2' :
+ return 2;
+ case '3' :
+ return 3;
+ case '4' :
+ return 4;
+ case '5' :
+ return 5;
+ case '6' :
+ return 6;
+ case '7' :
+ return 7;
+ case '8' :
+ return 8;
+ case '9' :
+ return 9;
+
+ case 'a' :
+ case 'A' :
+ return 10;
+ case 'b' :
+ case 'B' :
+ return 11;
+ case 'c' :
+ case 'C' :
+ return 12;
+ case 'd' :
+ case 'D' :
+ return 13;
+ case 'e' :
+ case 'E' :
+ return 14;
+ case 'f' :
+ case 'F' :
+ return 15;
+ }
+
+ throw new java.io.IOException(); // Should never come here
+ }
+
+/** Position in buffer. */
+ public int bufpos = -1;
+ int bufsize;
+ int available;
+ int tokenBegin;
+ protected int bufline[];
+ protected int bufcolumn[];
+
+ protected int column = 0;
+ protected int line = 1;
+
+ protected boolean prevCharIsCR = false;
+ protected boolean prevCharIsLF = false;
+
+ protected Provider inputStream;
+
+ protected char[] nextCharBuf;
+ protected char[] buffer;
+ protected int maxNextCharInd = 0;
+ protected int nextCharInd = -1;
+ protected int inBuf = 0;
+ protected int tabSize = 1;
+ protected boolean trackLineColumn = true;
+
+ public void setTabSize(int i) { tabSize = i; }
+ public int getTabSize(int i) { return tabSize; }
+
+ protected void ExpandBuff(boolean wrapAround)
+ {
+ char[] newbuffer = new char[bufsize + 2048];
+ int newbufline[] = new int[bufsize + 2048];
+ int newbufcolumn[] = new int[bufsize + 2048];
+
+ try
+ {
+ if (wrapAround)
+ {
+ System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+ System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos);
+ buffer = newbuffer;
+
+ System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+ System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
+ bufline = newbufline;
+
+ System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+ System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
+ bufcolumn = newbufcolumn;
+
+ bufpos += (bufsize - tokenBegin);
+ }
+ else
+ {
+ System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+ buffer = newbuffer;
+
+ System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+ bufline = newbufline;
+
+ System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+ bufcolumn = newbufcolumn;
+
+ bufpos -= tokenBegin;
+ }
+ }
+ catch (Exception t)
+ {
+ throw new RuntimeException(t.getMessage());
+ }
+
+ available = (bufsize += 2048);
+ tokenBegin = 0;
+ }
+
+ protected void FillBuff() throws java.io.IOException
+ {
+ int i;
+ if (maxNextCharInd == 4096)
+ maxNextCharInd = nextCharInd = 0;
+
+ try {
+ if ((i = inputStream.read(nextCharBuf, maxNextCharInd,
+ 4096 - maxNextCharInd)) == -1)
+ {
+ inputStream.close();
+ throw new java.io.IOException();
+ }
+ else
+ maxNextCharInd += i;
+ return;
+ }
+ catch(java.io.IOException e) {
+ if (bufpos != 0)
+ {
+ --bufpos;
+ backup(0);
+ }
+ else
+ {
+ bufline[bufpos] = line;
+ bufcolumn[bufpos] = column;
+ }
+ throw e;
+ }
+ }
+
+ protected char ReadByte() throws java.io.IOException
+ {
+ if (++nextCharInd >= maxNextCharInd)
+ FillBuff();
+
+ return nextCharBuf[nextCharInd];
+ }
+
+/** @return starting character for token. */
+ public char BeginToken() throws java.io.IOException
+ {
+ if (inBuf > 0)
+ {
+ --inBuf;
+
+ if (++bufpos == bufsize)
+ bufpos = 0;
+
+ tokenBegin = bufpos;
+ return buffer[bufpos];
+ }
+
+ tokenBegin = 0;
+ bufpos = -1;
+
+ return readChar();
+ }
+
+ protected void AdjustBuffSize()
+ {
+ if (available == bufsize)
+ {
+ if (tokenBegin > 2048)
+ {
+ bufpos = 0;
+ available = tokenBegin;
+ }
+ else
+ ExpandBuff(false);
+ }
+ else if (available > tokenBegin)
+ available = bufsize;
+ else if ((tokenBegin - available) < 2048)
+ ExpandBuff(true);
+ else
+ available = tokenBegin;
+ }
+
+ protected void UpdateLineColumn(char c)
+ {
+ column++;
+
+ if (prevCharIsLF)
+ {
+ prevCharIsLF = false;
+ line += (column = 1);
+ }
+ else if (prevCharIsCR)
+ {
+ prevCharIsCR = false;
+ if (c == '\n')
+ {
+ prevCharIsLF = true;
+ }
+ else
+ line += (column = 1);
+ }
+
+ switch (c)
+ {
+ case '\r' :
+ prevCharIsCR = true;
+ break;
+ case '\n' :
+ prevCharIsLF = true;
+ break;
+ case '\t' :
+ column--;
+ column += (tabSize - (column % tabSize));
+ break;
+ default :
+ break;
+ }
+
+ bufline[bufpos] = line;
+ bufcolumn[bufpos] = column;
+ }
+
+/** Read a character. */
+ public char readChar() throws java.io.IOException
+ {
+ if (inBuf > 0)
+ {
+ --inBuf;
+
+ if (++bufpos == bufsize)
+ bufpos = 0;
+
+ return buffer[bufpos];
+ }
+
+ char c;
+
+ if (++bufpos == available)
+ AdjustBuffSize();
+
+ if ((buffer[bufpos] = c = ReadByte()) == '\\')
+ {
+ UpdateLineColumn(c);
+
+ int backSlashCnt = 1;
+
+ for (;;) // Read all the backslashes
+ {
+ if (++bufpos == available)
+ AdjustBuffSize();
+
+ try
+ {
+ if ((buffer[bufpos] = c = ReadByte()) != '\\')
+ {
+ UpdateLineColumn(c);
+ // found a non-backslash char.
+ if ((c == 'u') && ((backSlashCnt & 1) == 1))
+ {
+ if (--bufpos < 0)
+ bufpos = bufsize - 1;
+
+ break;
+ }
+
+ backup(backSlashCnt);
+ return '\\';
+ }
+ }
+ catch(java.io.IOException e)
+ {
+ // We are returning one backslash so we should only backup (count-1)
+ if (backSlashCnt > 1)
+ backup(backSlashCnt-1);
+
+ return '\\';
+ }
+
+ UpdateLineColumn(c);
+ backSlashCnt++;
+ }
+
+ // Here, we have seen an odd number of backslash's followed by a 'u'
+ try
+ {
+ while ((c = ReadByte()) == 'u')
+ ++column;
+
+ buffer[bufpos] = c = (char)(hexval(c) << 12 |
+ hexval(ReadByte()) << 8 |
+ hexval(ReadByte()) << 4 |
+ hexval(ReadByte()));
+
+ column += 4;
+ }
+ catch(java.io.IOException e)
+ {
+ throw new RuntimeException("Invalid escape character at line " + line +
+ " column " + column + ".");
+ }
+
+ if (backSlashCnt == 1)
+ return c;
+ else
+ {
+ backup(backSlashCnt - 1);
+ return '\\';
+ }
+ }
+ else
+ {
+ UpdateLineColumn(c);
+ return c;
+ }
+ }
+
+ @Deprecated
+ /**
+ * @deprecated
+ * @see #getEndColumn
+ */
+ public int getColumn() {
+ return bufcolumn[bufpos];
+ }
+
+ @Deprecated
+ /**
+ * @deprecated
+ * @see #getEndLine
+ */
+ public int getLine() {
+ return bufline[bufpos];
+ }
+
+/** Get end column. */
+ public int getEndColumn() {
+ return bufcolumn[bufpos];
+ }
+
+/** Get end line. */
+ public int getEndLine() {
+ return bufline[bufpos];
+ }
+
+/** @return column of token start */
+ public int getBeginColumn() {
+ return bufcolumn[tokenBegin];
+ }
+
+/** @return line number of token start */
+ public int getBeginLine() {
+ return bufline[tokenBegin];
+ }
+
+/** Retreat. */
+ public void backup(int amount) {
+
+ inBuf += amount;
+ if ((bufpos -= amount) < 0)
+ bufpos += bufsize;
+ }
+
+/** Constructor. */
+ public JavaCharStream(Provider dstream,
+ int startline, int startcolumn, int buffersize)
+ {
+ inputStream = dstream;
+ line = startline;
+ column = startcolumn - 1;
+
+ available = bufsize = buffersize;
+ buffer = new char[buffersize];
+ bufline = new int[buffersize];
+ bufcolumn = new int[buffersize];
+ nextCharBuf = new char[4096];
+ }
+
+/** Constructor. */
+ public JavaCharStream(Provider dstream,
+ int startline, int startcolumn)
+ {
+ this(dstream, startline, startcolumn, 4096);
+ }
+
+/** Constructor. */
+ public JavaCharStream(Provider dstream)
+ {
+ this(dstream, 1, 1, 4096);
+ }
+/** Reinitialise. */
+ public void ReInit(Provider dstream,
+ int startline, int startcolumn, int buffersize)
+ {
+ inputStream = dstream;
+ line = startline;
+ column = startcolumn - 1;
+
+ if (buffer == null || buffersize != buffer.length)
+ {
+ available = bufsize = buffersize;
+ buffer = new char[buffersize];
+ bufline = new int[buffersize];
+ bufcolumn = new int[buffersize];
+ nextCharBuf = new char[4096];
+ }
+ prevCharIsLF = prevCharIsCR = false;
+ tokenBegin = inBuf = maxNextCharInd = 0;
+ nextCharInd = bufpos = -1;
+ }
+
+/** Reinitialise. */
+ public void ReInit(Provider dstream,
+ int startline, int startcolumn)
+ {
+ ReInit(dstream, startline, startcolumn, 4096);
+ }
+
+/** Reinitialise. */
+ public void ReInit(Provider dstream)
+ {
+ ReInit(dstream, 1, 1, 4096);
+ }
+
+
+
+ /** @return token image as String */
+ public String GetImage()
+ {
+ if (bufpos >= tokenBegin)
+ return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
+ else
+ return new String(buffer, tokenBegin, bufsize - tokenBegin) +
+ new String(buffer, 0, bufpos + 1);
+ }
+
+ /** @return suffix */
+ public char[] GetSuffix(int len)
+ {
+ char[] ret = new char[len];
+
+ if ((bufpos + 1) >= len)
+ System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
+ else
+ {
+ System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
+ len - bufpos - 1);
+ System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
+ }
+
+ return ret;
+ }
+
+ /** Set buffers back to null when finished. */
+ public void Done()
+ {
+ nextCharBuf = null;
+ buffer = null;
+ bufline = null;
+ bufcolumn = null;
+ }
+
+ /**
+ * Method to adjust line and column numbers for the start of a token.
+ */
+ public void adjustBeginLineColumn(int newLine, int newCol)
+ {
+ int start = tokenBegin;
+ int len;
+
+ if (bufpos >= tokenBegin)
+ {
+ len = bufpos - tokenBegin + inBuf + 1;
+ }
+ else
+ {
+ len = bufsize - tokenBegin + bufpos + 1 + inBuf;
+ }
+
+ int i = 0, j = 0, k = 0;
+ int nextColDiff = 0, columnDiff = 0;
+
+ while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize])
+ {
+ bufline[j] = newLine;
+ nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
+ bufcolumn[j] = newCol + columnDiff;
+ columnDiff = nextColDiff;
+ i++;
+ }
+
+ if (i < len)
+ {
+ bufline[j] = newLine++;
+ bufcolumn[j] = newCol + columnDiff;
+
+ while (i++ < len)
+ {
+ if (bufline[j = start % bufsize] != bufline[++start % bufsize])
+ bufline[j] = newLine++;
+ else
+ bufline[j] = newLine;
+ }
+ }
+
+ line = bufline[j];
+ column = bufcolumn[j];
+ }
+ boolean getTrackLineColumn() { return trackLineColumn; }
+ void setTrackLineColumn(boolean tlc) { trackLineColumn = tlc; }
+
+}
+/* JavaCC - OriginalChecksum=9ab0136fd4b1e2a45a251f41181a5bd8 (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ParseException.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ParseException.java
new file mode 100644
index 000000000..32283676c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/ParseException.java
@@ -0,0 +1,227 @@
+/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 6.1 */
+/* JavaCCOptions:KEEP_LINE_COLUMN=true */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+/**
+ * This exception is thrown when parse errors are encountered.
+ * You can explicitly create objects of this exception type by
+ * calling the method generateParseException in the generated
+ * parser.
+ *
+ * You can modify this class to customize your error reporting
+ * mechanisms so long as you retain the public fields.
+ */
+public class ParseException extends Exception {
+
+ /**
+ * The version identifier for this Serializable class.
+ * Increment only if the <i>serialized</i> form of the
+ * class changes.
+ */
+ private static final long serialVersionUID = 1L;
+
+ private static final String INDENT = " ";
+
+ /**
+ * The end of line string (we do not use System.getProperty("") so that we are compatible with Android/GWT);
+ */
+ protected static String EOL = "\n";
+
+
+ public ParseException(Token currentTokenVal,
+ int[][] expectedTokenSequencesVal,
+ String[] tokenImageVal
+ )
+ {
+ this (currentTokenVal, expectedTokenSequencesVal, tokenImageVal, null);
+ }
+
+
+ /**
+ * This constructor is used by the method "generateParseException"
+ * in the generated parser. Calling this constructor generates
+ * a new object of this type with the fields "currentToken",
+ * "expectedTokenSequences", and "tokenImage" set.
+ */
+ public ParseException(Token currentTokenVal,
+ int[][] expectedTokenSequencesVal,
+ String[] tokenImageVal,
+ String lexicalStateName
+ )
+ {
+ super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal, lexicalStateName));
+ currentToken = currentTokenVal;
+ expectedTokenSequences = expectedTokenSequencesVal;
+ tokenImage = tokenImageVal;
+ }
+
+ /**
+ * The following constructors are for use by you for whatever
+ * purpose you can think of. Constructing the exception in this
+ * manner makes the exception behave in the normal way - i.e., as
+ * documented in the class "Throwable". The fields "errorToken",
+ * "expectedTokenSequences", and "tokenImage" do not contain
+ * relevant information. The JavaCC generated code does not use
+ * these constructors.
+ */
+
+ public ParseException() {
+ super();
+ }
+
+ /** Constructor with message. */
+ public ParseException(String message) {
+ super(message);
+ }
+
+
+ /**
+ * This is the last token that has been consumed successfully. If
+ * this object has been created due to a parse error, the token
+ * followng this token will (therefore) be the first error token.
+ */
+ public Token currentToken;
+
+ /**
+ * Each entry in this array is an array of integers. Each array
+ * of integers represents a sequence of tokens (by their ordinal
+ * values) that is expected at this point of the parse.
+ */
+ public int[][] expectedTokenSequences;
+
+ /**
+ * This is a reference to the "tokenImage" array of the generated
+ * parser within which the parse error occurred. This array is
+ * defined in the generated ...Constants interface.
+ */
+ public String[] tokenImage;
+
+ /**
+ * It uses "currentToken" and "expectedTokenSequences" to generate a parse
+ * error message and returns it. If this object has been created
+ * due to a parse error, and you do not catch it (it gets thrown
+ * from the parser) the correct error message
+ * gets displayed.
+ */
+ private static String initialise(Token currentToken,
+ int[][] expectedTokenSequences,
+ String[] tokenImage,
+ String lexicalStateName) {
+ StringBuilder sb = new StringBuilder();
+ StringBuffer expected = new StringBuffer();
+
+ int maxSize = 0;
+ java.util.TreeSet<String> sortedOptions = new java.util.TreeSet<String>();
+ for (int i = 0; i < expectedTokenSequences.length; i++) {
+ if (maxSize < expectedTokenSequences[i].length) {
+ maxSize = expectedTokenSequences[i].length;
+ }
+ for (int j = 0; j < expectedTokenSequences[i].length; j++) {
+ sortedOptions.add(tokenImage[expectedTokenSequences[i][j]]);
+ }
+ }
+
+ for (String option : sortedOptions) {
+ expected.append(INDENT).append(option).append(EOL);
+ }
+
+ sb.append("Encountered unexpected token:");
+
+ Token tok = currentToken.next;
+ for (int i = 0; i < maxSize; i++) {
+ String tokenText = tok.image;
+ String escapedTokenText = add_escapes(tokenText);
+ if (i != 0) {
+ sb.append(" ");
+ }
+ if (tok.kind == 0) {
+ sb.append(tokenImage[0]);
+ break;
+ }
+ sb.append(" \"");
+ sb.append(escapedTokenText);
+ sb.append("\"");
+ sb.append(" " + tokenImage[tok.kind]);
+ tok = tok.next;
+ }
+ sb.append(EOL).append(INDENT).append("at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn);
+ sb.append(".").append(EOL);
+
+ if (expectedTokenSequences.length == 0) {
+ // Nothing to add here
+ } else {
+ int numExpectedTokens = expectedTokenSequences.length;
+ sb.append(EOL).append("Was expecting"+ (numExpectedTokens == 1 ? ":" : " one of:") + EOL + EOL);
+ sb.append(expected.toString());
+ }
+ // 2013/07/30 --> Seems to be inaccurate as represents the readahead state, not the lexical state BEFORE the unknown token
+// if (lexicalStateName != null) {
+// sb.append(EOL).append("** Lexical State : ").append(lexicalStateName).append(EOL).append(EOL);
+// }
+
+ return sb.toString();
+ }
+
+
+ /**
+ * Used to convert raw characters to their escaped version
+ * when these raw version cannot be used as part of an ASCII
+ * string literal.
+ */
+ static String add_escapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i))
+ {
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ continue;
+ }
+ }
+ return retval.toString();
+ }
+
+}
+/* JavaCC - OriginalChecksum=c0da6a86ac0d0ec8b633aeafa43e6e37 (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/Provider.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/Provider.java
new file mode 100644
index 000000000..bfd9da886
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/Provider.java
@@ -0,0 +1,39 @@
+/* Generated By:JavaCC: Do not edit this line. Provider.java Version 6.1 */
+/* JavaCCOptions:KEEP_LINE_COLUMN=true */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+
+import java.io.IOException;
+
+public interface Provider {
+ /**
+ * Reads characters into an array
+ * @param buffer Destination buffer
+ * @param offset Offset at which to start storing characters
+ * @param length The maximum possible number of characters to read
+ * @return The number of characters read, or -1 if all read
+ * @exception IOException
+ */
+ public int read(char buffer[], int offset, int len) throws IOException;
+
+ /**
+ * Closes the stream and releases any system resources associated with
+ * it.
+ * @exception IOException
+ */
+ public void close() throws IOException;
+
+}
+/* JavaCC - OriginalChecksum=89684d4e3db82aa5e480d095c170b352 (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/StreamProvider.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/StreamProvider.java
new file mode 100644
index 000000000..2c30e1610
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/StreamProvider.java
@@ -0,0 +1,70 @@
+/* Generated By:JavaCC: Do not edit this line. StreamProvider.java Version 6.1 */
+/* JavaCCOptions:KEEP_LINE_COLUMN=true */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+/**
+ * NOTE : This generated class can be safely deleted if installing in a GWT installation (use StringProvider instead)
+ */
+public class StreamProvider implements Provider {
+
+ Reader _reader;
+
+ public StreamProvider(Reader reader) {
+ _reader = reader;
+ }
+
+ public StreamProvider(InputStream stream) throws IOException {
+ _reader = new BufferedReader(new InputStreamReader(stream));
+ }
+
+ public StreamProvider(InputStream stream, String charsetName) throws IOException {
+ _reader = new BufferedReader(new InputStreamReader(stream, charsetName));
+ }
+
+ @Override
+ public int read(char[] buffer, int off, int len) throws IOException {
+ int result = _reader.read(buffer, off, len);
+
+ /* CBA -- Added 2014/03/29 --
+ This logic allows the generated Java code to be easily translated to C# (via sharpen) -
+ as in C# 0 represents end of file, and in Java, -1 represents end of file
+ See : http://msdn.microsoft.com/en-us/library/9kstw824(v=vs.110).aspx
+ ** Technically, this is not required for java but the overhead is extremely low compared to the code generation benefits.
+ */
+
+ if (result == 0) {
+ if (off < buffer.length && len > 0) {
+ result = -1;
+ }
+ }
+
+ return result;
+ }
+
+ @Override
+ public void close() throws IOException {
+ _reader.close();
+ }
+
+}
+
+/* JavaCC - OriginalChecksum=b849e0746bbbf4528197ca9d130650d6 (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/StringProvider.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/StringProvider.java
new file mode 100644
index 000000000..83c3504c9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/StringProvider.java
@@ -0,0 +1,60 @@
+/* Generated By:JavaCC: Do not edit this line. StringProvider.java Version 6.1 */
+/* JavaCCOptions:KEEP_LINE_COLUMN=true */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+
+ import java.io.IOException;
+
+ public class StringProvider implements Provider {
+
+ String _string;
+ int _position = 0;
+ int _size;
+
+ public StringProvider(String string) {
+ _string = string;
+ _size = string.length();
+ }
+
+ @Override
+ public int read(char[] cbuf, int off, int len) throws IOException {
+ int numCharsOutstandingInString = _size - _position;
+
+ if (numCharsOutstandingInString == 0) {
+ return -1;
+ }
+
+ int numBytesInBuffer = cbuf.length;
+ int numBytesToRead = numBytesInBuffer -off;
+ numBytesToRead = numBytesToRead > len ? len : numBytesToRead;
+
+ if (numBytesToRead > numCharsOutstandingInString) {
+ numBytesToRead = numCharsOutstandingInString;
+ }
+
+ _string.getChars(_position, _position + numBytesToRead, cbuf, off);
+
+ _position += numBytesToRead;
+
+ return numBytesToRead;
+ }
+
+ @Override
+ public void close() throws IOException {
+ _string = null;
+ }
+
+ }
+/* JavaCC - OriginalChecksum=9873e92cad8666980a4c6d392c0c7ad4 (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/Token.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/Token.java
new file mode 100644
index 000000000..2731d0427
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/Token.java
@@ -0,0 +1,143 @@
+/* Generated By:JavaCC: Do not edit this line. Token.java Version 6.1 */
+/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COLUMN=true,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+/**
+ * Describes the input token stream.
+ */
+
+public class Token implements java.io.Serializable {
+
+ /**
+ * The version identifier for this Serializable class.
+ * Increment only if the <i>serialized</i> form of the
+ * class changes.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * An integer that describes the kind of this token. This numbering
+ * system is determined by JavaCCParser, and a table of these numbers is
+ * stored in the file ...Constants.java.
+ */
+ public int kind;
+
+ /** The line number of the first character of this Token. */
+ public int beginLine;
+ /** The column number of the first character of this Token. */
+ public int beginColumn;
+ /** The line number of the last character of this Token. */
+ public int endLine;
+ /** The column number of the last character of this Token. */
+ public int endColumn;
+
+ /**
+ * The string image of the token.
+ */
+ public String image;
+
+ /**
+ * A reference to the next regular (non-special) token from the input
+ * stream. If this is the last token from the input stream, or if the
+ * token manager has not read tokens beyond this one, this field is
+ * set to null. This is true only if this token is also a regular
+ * token. Otherwise, see below for a description of the contents of
+ * this field.
+ */
+ public Token next;
+
+ /**
+ * This field is used to access special tokens that occur prior to this
+ * token, but after the immediately preceding regular (non-special) token.
+ * If there are no such special tokens, this field is set to null.
+ * When there are more than one such special token, this field refers
+ * to the last of these special tokens, which in turn refers to the next
+ * previous special token through its specialToken field, and so on
+ * until the first special token (whose specialToken field is null).
+ * The next fields of special tokens refer to other special tokens that
+ * immediately follow it (without an intervening regular token). If there
+ * is no such token, this field is null.
+ */
+ public Token specialToken;
+
+ /**
+ * An optional attribute value of the Token.
+ * Tokens which are not used as syntactic sugar will often contain
+ * meaningful values that will be used later on by the compiler or
+ * interpreter. This attribute value is often different from the image.
+ * Any subclass of Token that actually wants to return a non-null value can
+ * override this method as appropriate.
+ */
+ public Object getValue() {
+ return null;
+ }
+
+ /**
+ * No-argument constructor
+ */
+ public Token() {}
+
+ /**
+ * Constructs a new token for the specified Image.
+ */
+ public Token(int kind)
+ {
+ this(kind, null);
+ }
+
+ /**
+ * Constructs a new token for the specified Image and Kind.
+ */
+ public Token(int kind, String image)
+ {
+ this.kind = kind;
+ this.image = image;
+ }
+
+ /**
+ * Returns the image.
+ */
+ public String toString()
+ {
+ return image;
+ }
+
+ /**
+ * Returns a new Token object, by default. However, if you want, you
+ * can create and return subclass objects based on the value of ofKind.
+ * Simply add the cases to the switch for all those special cases.
+ * For example, if you have a subclass of Token called IDToken that
+ * you want to create if ofKind is ID, simply add something like :
+ *
+ * case MyParserConstants.ID : return new IDToken(ofKind, image);
+ *
+ * to the following switch statement. Then you can cast matchedToken
+ * variable to the appropriate type and use sit in your lexical actions.
+ */
+ public static Token newToken(int ofKind, String image)
+ {
+ switch(ofKind)
+ {
+ default : return new Token(ofKind, image);
+ }
+ }
+
+ public static Token newToken(int ofKind)
+ {
+ return newToken(ofKind, null);
+ }
+
+}
+/* JavaCC - OriginalChecksum=fd43051db65fcdc22df39a61d81bf7a4 (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/TokenMgrError.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/TokenMgrError.java
new file mode 100644
index 000000000..09197e805
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/TokenMgrError.java
@@ -0,0 +1,159 @@
+/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 5.0 */
+/* JavaCCOptions: */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+/** Token Manager Error. */
+public class TokenMgrError extends Error
+{
+
+ /**
+ * The version identifier for this Serializable class.
+ * Increment only if the <i>serialized</i> form of the
+ * class changes.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /*
+ * Ordinals for various reasons why an Error of this type can be thrown.
+ */
+
+ /**
+ * Lexical error occurred.
+ */
+ static final int LEXICAL_ERROR = 0;
+
+ /**
+ * An attempt was made to create a second instance of a static token manager.
+ */
+ static final int STATIC_LEXER_ERROR = 1;
+
+ /**
+ * Tried to change to an invalid lexical state.
+ */
+ static final int INVALID_LEXICAL_STATE = 2;
+
+ /**
+ * Detected (and bailed out of) an infinite loop in the token manager.
+ */
+ static final int LOOP_DETECTED = 3;
+
+ /**
+ * Indicates the reason why the exception is thrown. It will have
+ * one of the above 4 values.
+ */
+ int errorCode;
+
+ /**
+ * Replaces unprintable characters by their escaped (or unicode escaped)
+ * equivalents in the given string
+ */
+ protected static final String addEscapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i))
+ {
+ case 0 :
+ continue;
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ continue;
+ }
+ }
+ return retval.toString();
+ }
+
+ /**
+ * Returns a detailed message for the Error when it is thrown by the
+ * token manager to indicate a lexical error.
+ * Parameters :
+ * EOFSeen : indicates if EOF caused the lexical error
+ * curLexState : lexical state in which this error occurred
+ * errorLine : line number when the error occurred
+ * errorColumn : column number when the error occurred
+ * errorAfter : prefix that was seen before this error occurred
+ * curchar : the offending character
+ * Note: You can customize the lexical error message by modifying this method.
+ */
+ protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {
+ return("Lexical error at line " +
+ errorLine + ", column " +
+ errorColumn + ". Encountered: " +
+ (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") +
+ "after : \"" + addEscapes(errorAfter) + "\"");
+ }
+
+ /**
+ * You can also modify the body of this method to customize your error messages.
+ * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not
+ * of end-users concern, so you can return something like :
+ *
+ * "Internal Error : Please file a bug report .... "
+ *
+ * from this method for such cases in the release version of your parser.
+ */
+ public String getMessage() {
+ return super.getMessage();
+ }
+
+ /*
+ * Constructors of various flavors follow.
+ */
+
+ /** No arg constructor. */
+ public TokenMgrError() {
+ }
+
+ /** Constructor with message and reason. */
+ public TokenMgrError(String message, int reason) {
+ super(message);
+ errorCode = reason;
+ }
+
+ /** Full Constructor. */
+ public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {
+ this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
+ }
+}
+/* JavaCC - OriginalChecksum=f06c7e964b5c13a732337c2f3fb4f836 (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/TokenMgrException.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/TokenMgrException.java
new file mode 100644
index 000000000..d290424fb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources/com/github/javaparser/TokenMgrException.java
@@ -0,0 +1,158 @@
+/* Generated By:JavaCC: Do not edit this line. TokenMgrException.java Version 6.1 */
+/* JavaCCOptions: */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+/** Token Manager Error. */
+public class TokenMgrException extends RuntimeException
+{
+
+ /**
+ * The version identifier for this Serializable class.
+ * Increment only if the <i>serialized</i> form of the
+ * class changes.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /*
+ * Ordinals for various reasons why an Error of this type can be thrown.
+ */
+
+ /**
+ * Lexical error occurred.
+ */
+ public static final int LEXICAL_ERROR = 0;
+
+ /**
+ * An attempt was made to create a second instance of a static token manager.
+ */
+ public static final int STATIC_LEXER_ERROR = 1;
+
+ /**
+ * Tried to change to an invalid lexical state.
+ */
+ public static final int INVALID_LEXICAL_STATE = 2;
+
+ /**
+ * Detected (and bailed out of) an infinite loop in the token manager.
+ */
+ public static final int LOOP_DETECTED = 3;
+
+ /**
+ * Indicates the reason why the exception is thrown. It will have
+ * one of the above 4 values.
+ */
+ int errorCode;
+
+ /**
+ * Replaces unprintable characters by their escaped (or unicode escaped)
+ * equivalents in the given string
+ */
+ protected static final String addEscapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i))
+ {
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ continue;
+ }
+ }
+ return retval.toString();
+ }
+
+ /**
+ * Returns a detailed message for the Error when it is thrown by the
+ * token manager to indicate a lexical error.
+ * Parameters :
+ * EOFSeen : indicates if EOF caused the lexical error
+ * curLexState : lexical state in which this error occurred
+ * errorLine : line number when the error occurred
+ * errorColumn : column number when the error occurred
+ * errorAfter : prefix that was seen before this error occurred
+ * curchar : the offending character
+ * Note: You can customize the lexical error message by modifying this method.
+ */
+ protected static String LexicalErr(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, int curChar) {
+ char curChar1 = (char)curChar;
+ return("Lexical error at line " +
+ errorLine + ", column " +
+ errorColumn + ". Encountered: " +
+ (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar1)) + "\"") + " (" + (int)curChar + "), ") +
+ "after : \"" + addEscapes(errorAfter) + "\"");
+ }
+
+ /**
+ * You can also modify the body of this method to customize your error messages.
+ * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not
+ * of end-users concern, so you can return something like :
+ *
+ * "Internal Error : Please file a bug report .... "
+ *
+ * from this method for such cases in the release version of your parser.
+ */
+ public String getMessage() {
+ return super.getMessage();
+ }
+
+ /*
+ * Constructors of various flavors follow.
+ */
+
+ /** No arg constructor. */
+ public TokenMgrException() {
+ }
+
+ /** Constructor with message and reason. */
+ public TokenMgrException(String message, int reason) {
+ super(message);
+ errorCode = reason;
+ }
+
+ /** Full Constructor. */
+ public TokenMgrException(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, int curChar, int reason) {
+ this(LexicalErr(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
+ }
+}
+/* JavaCC - OriginalChecksum=d2d40125d51af5fe5bc7e2ab87d062ad (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParser.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParser.java
new file mode 100644
index 000000000..151cff21a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParser.java
@@ -0,0 +1,9148 @@
+/* Generated By:JavaCC: Do not edit this line. ASTParser.java */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+import java.io.*;
+import java.util.*;
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.body.*;
+import com.github.javaparser.ast.comments.*;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.*;
+import com.github.javaparser.ast.type.*;
+
+/**
+ * <p>This class was generated automatically by javacc, do not edit.</p>
+ */
+final class ASTParser implements ASTParserConstants {
+
+ void reset(InputStream in, String encoding) {
+ ReInit(in, encoding);
+ }
+
+ private List add(List list, Object obj) {
+ if (list == null) {
+ list = new LinkedList();
+ }
+ list.add(obj);
+ return list;
+ }
+
+ private List add(int pos, List list, Object obj) {
+ if (list == null) {
+ list = new LinkedList();
+ }
+ list.add(pos, obj);
+ return list;
+ }
+
+ private class Modifier {
+
+ final int modifiers;
+ final List annotations;
+ final int beginLine;
+ final int beginColumn;
+
+ public Modifier(int beginLine, int beginColumn, int modifiers, List annotations) {
+ this.beginLine = beginLine;
+ this.beginColumn = beginColumn;
+ this.modifiers = modifiers;
+ this.annotations = annotations;
+ }
+ }
+
+ public int addModifier(int modifiers, int mod, Token token) {
+ if ((ModifierSet.hasModifier(modifiers, mod))) {
+ throwParseException(token, "Duplicated modifier");
+ }
+ return ModifierSet.addModifier(modifiers, mod);
+ }
+
+ private void throwParseException(Token token, String message) {
+ StringBuilder buf = new StringBuilder();
+ buf.append(message);
+ buf.append(": \"");
+ buf.append(token.image);
+ buf.append("\" at line ");
+ buf.append(token.beginLine);
+ buf.append(", column ");
+ buf.append(token.beginColumn);
+ ParseException e = new ParseException(buf.toString());
+ e.currentToken = token;
+ throw e;
+ }
+
+ private Expression generateLambda(Expression ret, Statement lambdaBody) {
+ if (ret instanceof EnclosedExpr) {
+ Expression inner = ((EnclosedExpr) ret).getInner();
+ if (inner != null && inner instanceof NameExpr) {
+ VariableDeclaratorId id = new VariableDeclaratorId(inner.getBeginLine(), inner.getBeginColumn(), inner.getEndLine(), inner.getEndColumn(), ((NameExpr)inner).getName(), 0);
+ List params = add(null, new Parameter(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), 0, null, new UnknownType(), false, id));
+ ret = new LambdaExpr(ret.getBeginLine(), ret.getBeginColumn(), lambdaBody.getEndLine(), lambdaBody.getEndColumn(), params, lambdaBody, true);
+ } else {
+ ret = new LambdaExpr(ret.getBeginLine(), ret.getBeginColumn(), lambdaBody.getEndLine(), lambdaBody.getEndColumn(), null, lambdaBody, true);
+ }
+ } else if (ret instanceof NameExpr) {
+ VariableDeclaratorId id = new VariableDeclaratorId(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), ((NameExpr)ret).getName(), 0);
+ List params = add(null, new Parameter(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), 0, null, new UnknownType(), false, id));
+ ret = new LambdaExpr(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), params, lambdaBody, false);
+ } else if (ret instanceof LambdaExpr) {
+ ((LambdaExpr) ret).setBody(lambdaBody);
+ ret.setEndLine(lambdaBody.getEndLine());
+ ret.setEndColumn(lambdaBody.getEndColumn());
+ } else {
+ throw new ParseException("Failed to parse lambda expression! Please create an issue at https://github.com/javaparser/javaparser/issues");
+ }
+ return ret;
+ }
+
+ static final class GTToken extends Token {
+
+ int realKind = ASTParserConstants.GT;
+
+ GTToken(int kind, String image) {
+ this.kind = kind;
+ this.image = image;
+ }
+
+ public static Token newToken(int kind, String image) {
+ return new GTToken(kind, image);
+ }
+ }
+
+ private Token last_special_token = null;
+
+/*****************************************
+ * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
+ *****************************************/
+
+/*
+ * Program structuring syntax follows.
+ */
+ final public CompilationUnit CompilationUnit() {
+ PackageDeclaration pakage = null;
+ List imports = null;
+ ImportDeclaration in = null;
+ List types = null;
+ TypeDeclaration tn = null;
+ int line = -1;
+ int column = 0;
+ if (jj_2_1(2147483647)) {
+ pakage = PackageDeclaration();
+ line = pakage.getBeginLine(); column = pakage.getBeginColumn();
+ } else {
+ ;
+ }
+ label_1:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IMPORT:
+ ;
+ break;
+ default:
+ jj_la1[0] = jj_gen;
+ break label_1;
+ }
+ in = ImportDeclaration();
+ if(line==-1){line = in.getBeginLine(); column = in.getBeginColumn();} imports = add(imports, in);
+ }
+ label_2:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ABSTRACT:
+ case CLASS:
+ case ENUM:
+ case FINAL:
+ case INTERFACE:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case SEMICOLON:
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[1] = jj_gen;
+ break label_2;
+ }
+ tn = TypeDeclaration();
+ if(line==-1){line = tn.getBeginLine(); column = tn.getBeginColumn();} types = add(types, tn);
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case 0:
+ jj_consume_token(0);
+ break;
+ case 131:
+ jj_consume_token(131);
+ break;
+ default:
+ jj_la1[2] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return new CompilationUnit(line == -1 ? 0 : line, column, token.endLine, token.endColumn,pakage, imports, types);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public PackageDeclaration PackageDeclaration() {
+ List annotations = null;
+ AnnotationExpr ann;
+ NameExpr name;
+ int line;
+ int column;
+ label_3:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[3] = jj_gen;
+ break label_3;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ jj_consume_token(PACKAGE);
+ line=token.beginLine; column=token.beginColumn;
+ name = Name();
+ jj_consume_token(SEMICOLON);
+ {if (true) return new PackageDeclaration(line, column, token.endLine, token.endColumn,annotations, name);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ImportDeclaration ImportDeclaration() {
+ NameExpr name;
+ boolean isStatic = false;
+ boolean isAsterisk = false;
+ int line;
+ int column;
+ jj_consume_token(IMPORT);
+ line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case STATIC:
+ jj_consume_token(STATIC);
+ isStatic = true;
+ break;
+ default:
+ jj_la1[4] = jj_gen;
+ ;
+ }
+ name = Name();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case DOT:
+ jj_consume_token(DOT);
+ jj_consume_token(STAR);
+ isAsterisk = true;
+ break;
+ default:
+ jj_la1[5] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ {if (true) return new ImportDeclaration(line, column, token.endLine, token.endColumn,name, isStatic, isAsterisk);}
+ throw new Error("Missing return statement in function");
+ }
+
+/*
+ * Modifiers. We match all modifiers in a single rule to reduce the chances of
+ * syntax errors for simple modifier mistakes. It will also enable us to give
+ * better error messages.
+ */
+ final public Modifier Modifiers() {
+ int beginLine = -1;
+ int beginColumn = -1;
+ int modifiers = 0;
+ List annotations = null;
+ AnnotationExpr ann;
+ label_4:
+ while (true) {
+ if (jj_2_2(2)) {
+ ;
+ } else {
+ break label_4;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case PUBLIC:
+ jj_consume_token(PUBLIC);
+ modifiers = addModifier(modifiers, ModifierSet.PUBLIC, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case STATIC:
+ jj_consume_token(STATIC);
+ modifiers = addModifier(modifiers, ModifierSet.STATIC, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case PROTECTED:
+ jj_consume_token(PROTECTED);
+ modifiers = addModifier(modifiers, ModifierSet.PROTECTED, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case PRIVATE:
+ jj_consume_token(PRIVATE);
+ modifiers = addModifier(modifiers, ModifierSet.PRIVATE, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case FINAL:
+ jj_consume_token(FINAL);
+ modifiers = addModifier(modifiers, ModifierSet.FINAL, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case ABSTRACT:
+ jj_consume_token(ABSTRACT);
+ modifiers = addModifier(modifiers, ModifierSet.ABSTRACT, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case SYNCHRONIZED:
+ jj_consume_token(SYNCHRONIZED);
+ modifiers = addModifier(modifiers, ModifierSet.SYNCHRONIZED, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case NATIVE:
+ jj_consume_token(NATIVE);
+ modifiers = addModifier(modifiers, ModifierSet.NATIVE, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case TRANSIENT:
+ jj_consume_token(TRANSIENT);
+ modifiers = addModifier(modifiers, ModifierSet.TRANSIENT, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case VOLATILE:
+ jj_consume_token(VOLATILE);
+ modifiers = addModifier(modifiers, ModifierSet.VOLATILE, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case STRICTFP:
+ jj_consume_token(STRICTFP);
+ modifiers = addModifier(modifiers, ModifierSet.STRICTFP, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ break;
+ case AT:
+ ann = Annotation();
+ annotations = add(annotations, ann); if(beginLine==-1) {beginLine=ann.getBeginLine(); beginColumn=ann.getBeginColumn();}
+ break;
+ default:
+ jj_la1[6] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {if (true) return new Modifier(beginLine, beginColumn, modifiers, annotations);}
+ throw new Error("Missing return statement in function");
+ }
+
+/*
+ * Declaration syntax follows.
+ */
+ final public TypeDeclaration TypeDeclaration() {
+ Modifier modifier;
+ TypeDeclaration ret;
+
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ ret = new EmptyTypeDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
+ break;
+ case ABSTRACT:
+ case CLASS:
+ case ENUM:
+ case FINAL:
+ case INTERFACE:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case AT:
+ modifier = Modifiers();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case CLASS:
+ case INTERFACE:
+ ret = ClassOrInterfaceDeclaration(modifier);
+ break;
+ case ENUM:
+ ret = EnumDeclaration(modifier);
+ break;
+ case AT:
+ ret = AnnotationTypeDeclaration(modifier);
+ break;
+ default:
+ jj_la1[7] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ default:
+ jj_la1[8] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ClassOrInterfaceDeclaration ClassOrInterfaceDeclaration(Modifier modifier) {
+ boolean isInterface = false;
+ NameExpr name;
+ List typePar = null;
+ List extList = null;
+ List impList = null;
+ List members;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case CLASS:
+ jj_consume_token(CLASS);
+ break;
+ case INTERFACE:
+ jj_consume_token(INTERFACE);
+ isInterface = true;
+ break;
+ default:
+ jj_la1[9] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ if (line == -1) {line=token.beginLine; column=token.beginColumn;}
+ name = Name();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ typePar = TypeParameters();
+ typePar.remove(0);
+ break;
+ default:
+ jj_la1[10] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case EXTENDS:
+ extList = ExtendsList(isInterface);
+ break;
+ default:
+ jj_la1[11] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IMPLEMENTS:
+ impList = ImplementsList(isInterface);
+ break;
+ default:
+ jj_la1[12] = jj_gen;
+ ;
+ }
+ members = ClassOrInterfaceBody(isInterface);
+ ClassOrInterfaceDeclaration tmp = new ClassOrInterfaceDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, isInterface, null, typePar, extList, impList, members);
+ tmp.setNameExpr(name);
+ {if (true) return tmp;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ExtendsList(boolean isInterface) {
+ boolean extendsMoreThanOne = false;
+ List ret = new LinkedList();
+ ClassOrInterfaceType cit;
+ AnnotationExpr ann;
+ List annotations = null;
+ jj_consume_token(EXTENDS);
+ label_5:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[13] = jj_gen;
+ break label_5;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ cit = ClassOrInterfaceType();
+ cit.setAnnotations(annotations); ret.add(cit);
+ label_6:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[14] = jj_gen;
+ break label_6;
+ }
+ jj_consume_token(COMMA);
+ cit = ClassOrInterfaceType();
+ ret.add(cit); extendsMoreThanOne = true;
+ }
+ if (extendsMoreThanOne && !isInterface)
+ throwParseException(token, "A class cannot extend more than one other class");
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ImplementsList(boolean isInterface) {
+ List ret = new LinkedList();
+ ClassOrInterfaceType cit;
+ AnnotationExpr ann;
+ List annotations = null;
+ jj_consume_token(IMPLEMENTS);
+ label_7:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[15] = jj_gen;
+ break label_7;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ cit = ClassOrInterfaceType();
+ cit.setAnnotations(annotations); ret.add(cit);
+ label_8:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[16] = jj_gen;
+ break label_8;
+ }
+ jj_consume_token(COMMA);
+ cit = ClassOrInterfaceType();
+ ret.add(cit);
+ }
+ if (isInterface)
+ throwParseException(token, "An interface cannot implement other interfaces");
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public EnumDeclaration EnumDeclaration(Modifier modifier) {
+ NameExpr name;
+ List impList = null;
+ EnumConstantDeclaration entry;
+ List entries = null;
+ BodyDeclaration member;
+ List members = null;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ jj_consume_token(ENUM);
+ if (line == -1) {line=token.beginLine; column=token.beginColumn;}
+ name = Name();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IMPLEMENTS:
+ impList = ImplementsList(false);
+ break;
+ default:
+ jj_la1[17] = jj_gen;
+ ;
+ }
+ jj_consume_token(LBRACE);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ case AT:
+ entries = new LinkedList();
+ entry = EnumConstantDeclaration();
+ entries.add(entry);
+ label_9:
+ while (true) {
+ if (jj_2_3(2)) {
+ ;
+ } else {
+ break label_9;
+ }
+ jj_consume_token(COMMA);
+ entry = EnumConstantDeclaration();
+ entries.add(entry);
+ }
+ break;
+ default:
+ jj_la1[18] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ break;
+ default:
+ jj_la1[19] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ label_10:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case _DEFAULT:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case LT:
+ ;
+ break;
+ default:
+ jj_la1[20] = jj_gen;
+ break label_10;
+ }
+ member = ClassOrInterfaceBodyDeclaration(false);
+ members = add(members, member);
+ }
+ break;
+ default:
+ jj_la1[21] = jj_gen;
+ ;
+ }
+ jj_consume_token(RBRACE);
+ EnumDeclaration tmp = new EnumDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, null, impList, entries, members);
+ tmp.setNameExpr(name);
+ {if (true) return tmp;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public EnumConstantDeclaration EnumConstantDeclaration() {
+ List annotations = null;
+ AnnotationExpr ann;
+ String name;
+ List args = null;
+ List classBody = null;
+ int line = -1;
+ int column = -1;
+
+ label_11:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[22] = jj_gen;
+ break label_11;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann); if(line==-1){line=ann.getBeginLine(); column=ann.getBeginColumn();}
+ }
+ jj_consume_token(IDENTIFIER);
+ name = token.image; if(line==-1){line=token.beginLine; column=token.beginColumn;}
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LPAREN:
+ args = Arguments();
+ break;
+ default:
+ jj_la1[23] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACE:
+ classBody = ClassOrInterfaceBody(false);
+ break;
+ default:
+ jj_la1[24] = jj_gen;
+ ;
+ }
+ EnumConstantDeclaration tmp = new EnumConstantDeclaration(line, column, token.endLine, token.endColumn, annotations, name, args, classBody);
+
+ {if (true) return tmp;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List TypeParameters() {
+ List ret = new LinkedList();
+ TypeParameter tp;
+ List annotations = null;
+ AnnotationExpr ann;
+ jj_consume_token(LT);
+ ret.add(new int[]{token.beginLine, token.beginColumn});
+ label_12:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[25] = jj_gen;
+ break label_12;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ tp = TypeParameter();
+ ret.add(tp); tp.setAnnotations(annotations); annotations = null;
+ label_13:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[26] = jj_gen;
+ break label_13;
+ }
+ jj_consume_token(COMMA);
+ label_14:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[27] = jj_gen;
+ break label_14;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ tp = TypeParameter();
+ ret.add(tp); tp.setAnnotations(annotations); annotations = null;
+ }
+ jj_consume_token(GT);
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public TypeParameter TypeParameter() {
+ String name;
+ List typeBound = null;
+ int line;
+ int column;
+ jj_consume_token(IDENTIFIER);
+ name = token.image; line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case EXTENDS:
+ typeBound = TypeBound();
+ break;
+ default:
+ jj_la1[28] = jj_gen;
+ ;
+ }
+ {if (true) return new TypeParameter(line, column, token.endLine, token.endColumn,name, typeBound);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List TypeBound() {
+ List ret = new LinkedList();
+ ClassOrInterfaceType cit;
+ AnnotationExpr ann;
+ List annotations = null;
+ jj_consume_token(EXTENDS);
+ label_15:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[29] = jj_gen;
+ break label_15;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ cit = ClassOrInterfaceType();
+ cit.setAnnotations(annotations); ret.add(cit); annotations=null;
+ label_16:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BIT_AND:
+ ;
+ break;
+ default:
+ jj_la1[30] = jj_gen;
+ break label_16;
+ }
+ jj_consume_token(BIT_AND);
+ label_17:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[31] = jj_gen;
+ break label_17;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ cit = ClassOrInterfaceType();
+ cit.setAnnotations(annotations); ret.add(cit); annotations=null;
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ClassOrInterfaceBody(boolean isInterface) {
+ List ret = new LinkedList();
+ BodyDeclaration member;
+ jj_consume_token(LBRACE);
+ label_18:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case _DEFAULT:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case LT:
+ ;
+ break;
+ default:
+ jj_la1[32] = jj_gen;
+ break label_18;
+ }
+ member = ClassOrInterfaceBodyDeclaration(isInterface);
+ ret.add(member);
+ }
+ jj_consume_token(RBRACE);
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public BodyDeclaration ClassOrInterfaceBodyDeclaration(boolean isInterface) {
+ boolean isNestedInterface = false;
+ Modifier modifier;
+ Modifier modifier2 = null;
+ int aux = 0;
+ BodyDeclaration ret;
+ boolean isDefault = false;
+
+ if (jj_2_6(2)) {
+ ret = InitializerDeclaration();
+ if (isInterface)
+ throwParseException(token, "An interface cannot have initializers");
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case _DEFAULT:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ case LT:
+ modifier = Modifiers();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case _DEFAULT:
+ jj_consume_token(_DEFAULT);
+ modifier2 = Modifiers();
+ if(!isInterface)
+ {
+ throwParseException(token, "An interface cannot have default members");
+ }
+ isDefault = true;
+ break;
+ default:
+ jj_la1[33] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case CLASS:
+ case INTERFACE:
+ ret = ClassOrInterfaceDeclaration(modifier);
+ break;
+ case ENUM:
+ ret = EnumDeclaration(modifier);
+ break;
+ case AT:
+ ret = AnnotationTypeDeclaration(modifier);
+ break;
+ default:
+ jj_la1[34] = jj_gen;
+ if (jj_2_4(2147483647)) {
+ ret = ConstructorDeclaration(modifier);
+ } else if (jj_2_5(2147483647)) {
+ ret = FieldDeclaration(modifier);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case VOID:
+ case IDENTIFIER:
+ case LT:
+ ret = MethodDeclaration(modifier);
+ if(isDefault && ret!= null && ((MethodDeclaration)ret).getBody() == null)
+ {
+ throwParseException(token, "\"default\" methods must have a body");
+ }
+ ((MethodDeclaration)ret).setDefault(isDefault);
+ if(modifier2!= null)
+ {
+ aux = modifier2.modifiers;
+ }
+ ((MethodDeclaration)ret).setModifiers(addModifier(modifier.modifiers, aux, token));
+ break;
+ default:
+ jj_la1[35] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ if(isDefault && ! (ret instanceof MethodDeclaration))
+ {
+ throwParseException(token, "Just methods can have the keyword \"default\".");
+ }
+ break;
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ ret = new EmptyMemberDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
+ break;
+ default:
+ jj_la1[36] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public FieldDeclaration FieldDeclaration(Modifier modifier) {
+ Type type;
+ List variables = new LinkedList();
+ VariableDeclarator val;
+ // Modifiers are already matched in the caller
+ type = Type();
+ val = VariableDeclarator();
+ variables.add(val);
+ label_19:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[37] = jj_gen;
+ break label_19;
+ }
+ jj_consume_token(COMMA);
+ val = VariableDeclarator();
+ variables.add(val);
+ }
+ jj_consume_token(SEMICOLON);
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ if (line == -1) { line=type.getBeginLine(); column=type.getBeginColumn(); }
+ {if (true) return new FieldDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, variables);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public VariableDeclarator VariableDeclarator() {
+ VariableDeclaratorId id;
+ Expression init = null;
+ id = VariableDeclaratorId();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ASSIGN:
+ jj_consume_token(ASSIGN);
+ init = VariableInitializer();
+ break;
+ default:
+ jj_la1[38] = jj_gen;
+ ;
+ }
+ {if (true) return new VariableDeclarator(id.getBeginLine(), id.getBeginColumn(), token.endLine, token.endColumn, id, init);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public VariableDeclaratorId VariableDeclaratorId() {
+ String name;
+ int arrayCount = 0;
+ int line;
+ int column;
+ jj_consume_token(IDENTIFIER);
+ name = token.image; line=token.beginLine; column=token.beginColumn;
+ label_20:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACKET:
+ ;
+ break;
+ default:
+ jj_la1[39] = jj_gen;
+ break label_20;
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ arrayCount++;
+ }
+ {if (true) return new VariableDeclaratorId(line, column, token.endLine, token.endColumn,name, arrayCount);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression VariableInitializer() {
+ Expression ret;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACE:
+ ret = ArrayInitializer();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ret = Expression();
+ break;
+ default:
+ jj_la1[40] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ArrayInitializerExpr ArrayInitializer() {
+ List values = null;
+ Expression val;
+ int line;
+ int column;
+ jj_consume_token(LBRACE);
+ line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ val = VariableInitializer();
+ values = add(values, val);
+ label_21:
+ while (true) {
+ if (jj_2_7(2)) {
+ ;
+ } else {
+ break label_21;
+ }
+ jj_consume_token(COMMA);
+ val = VariableInitializer();
+ values = add(values, val);
+ }
+ break;
+ default:
+ jj_la1[41] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ break;
+ default:
+ jj_la1[42] = jj_gen;
+ ;
+ }
+ jj_consume_token(RBRACE);
+ {if (true) return new ArrayInitializerExpr(line, column, token.endLine, token.endColumn,values);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public MethodDeclaration MethodDeclaration(Modifier modifier) {
+ List typeParameters = null;
+ Type type;
+ NameExpr name;
+ List parameters;
+ int arrayCount = 0;
+ List throws_ = null;
+ BlockStmt block = null;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ typeParameters = TypeParameters();
+ int[] lineCol=(int[])typeParameters.remove(0); if(line==-1){ line=lineCol[0]; column=lineCol[1];}
+ break;
+ default:
+ jj_la1[43] = jj_gen;
+ ;
+ }
+ type = ResultType();
+ if(line==-1){line=type.getBeginLine(); column=type.getBeginColumn();}
+ name = Name();
+ parameters = FormalParameters();
+ label_22:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACKET:
+ ;
+ break;
+ default:
+ jj_la1[44] = jj_gen;
+ break label_22;
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ arrayCount++;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case THROWS:
+ jj_consume_token(THROWS);
+ throws_ = NameList();
+ break;
+ default:
+ jj_la1[45] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACE:
+ block = Block();
+ break;
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ break;
+ default:
+ jj_la1[46] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ MethodDeclaration tmp = new MethodDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, typeParameters, type, null, parameters, arrayCount, throws_, block);
+ tmp.setNameExpr(name);
+ {if (true) return tmp;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List FormalParameters() {
+ List ret = null;
+ Parameter par;
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ par = FormalParameter();
+ ret = add(ret, par);
+ label_23:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[47] = jj_gen;
+ break label_23;
+ }
+ jj_consume_token(COMMA);
+ par = FormalParameter();
+ ret = add(ret, par);
+ }
+ break;
+ default:
+ jj_la1[48] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List FormalLambdaParameters() {
+ List ret = null;
+ Parameter par;
+ jj_consume_token(COMMA);
+ par = FormalParameter();
+ ret = add(ret, par);
+ label_24:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[49] = jj_gen;
+ break label_24;
+ }
+ jj_consume_token(COMMA);
+ par = FormalParameter();
+ ret = add(ret, par);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List InferredLambdaParameters() {
+ List ret = null;
+ VariableDeclaratorId id;
+ jj_consume_token(COMMA);
+ id = VariableDeclaratorId();
+ ret = add(ret, new Parameter(id.getBeginLine(), id.getBeginColumn(), id.getEndLine(), id.getEndColumn(), 0, null, new UnknownType(), false, id));
+ label_25:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[50] = jj_gen;
+ break label_25;
+ }
+ jj_consume_token(COMMA);
+ id = VariableDeclaratorId();
+ ret = add(ret, new Parameter(id.getBeginLine(), id.getBeginColumn(), id.getEndLine(), id.getEndColumn(), 0, null, new UnknownType(), false, id));
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Parameter FormalParameter() {
+ Modifier modifier;
+ Type type;
+ boolean isVarArg = false;
+ VariableDeclaratorId id;
+ modifier = Modifiers();
+ type = Type();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ELLIPSIS:
+ jj_consume_token(ELLIPSIS);
+ isVarArg = true;
+ break;
+ default:
+ jj_la1[51] = jj_gen;
+ ;
+ }
+ id = VariableDeclaratorId();
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ if(line==-1){ line=type.getBeginLine(); column=type.getBeginColumn(); }
+ {if (true) return new Parameter(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, isVarArg, id);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ConstructorDeclaration ConstructorDeclaration(Modifier modifier) {
+ List typeParameters = null;
+ NameExpr name;
+ List parameters;
+ List throws_ = null;
+ ExplicitConstructorInvocationStmt exConsInv = null;
+ List stmts;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ int bbLine = 0;
+ int bbColumn = 0;
+ int beLine = 0;
+ int beColumn = 0;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ typeParameters = TypeParameters();
+ int[] lineCol=(int[])typeParameters.remove(0); if(line==-1){ line=lineCol[0]; column=lineCol[1];}
+ break;
+ default:
+ jj_la1[52] = jj_gen;
+ ;
+ }
+ // Modifiers matched in the caller
+ name = SimpleName();
+ if(line==-1){line=token.beginLine; column=token.beginColumn;}
+ parameters = FormalParameters();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case THROWS:
+ jj_consume_token(THROWS);
+ throws_ = NameList();
+ break;
+ default:
+ jj_la1[53] = jj_gen;
+ ;
+ }
+ jj_consume_token(LBRACE);
+ bbLine=token.beginLine; bbColumn=token.beginColumn;
+ if (jj_2_8(2147483647)) {
+ exConsInv = ExplicitConstructorInvocation();
+ } else {
+ ;
+ }
+ stmts = Statements();
+ jj_consume_token(RBRACE);
+ if (exConsInv != null) {
+ stmts = add(0, stmts, exConsInv);
+ }
+ ConstructorDeclaration tmp = new ConstructorDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, typeParameters, null, parameters, throws_, new BlockStmt(bbLine, bbColumn, token.endLine, token.endColumn, stmts));
+ tmp.setNameExpr(name);
+ {if (true) return tmp;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ExplicitConstructorInvocationStmt ExplicitConstructorInvocation() {
+ boolean isThis = false;
+ List args;
+ Expression expr = null;
+ List typeArgs = null;
+ int line = -1;
+ int column = 0;
+ if (jj_2_10(2147483647)) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ case 132:
+ typeArgs = TypeArguments();
+ int[] lineCol=(int[])typeArgs.remove(0); line=lineCol[0]; column=lineCol[1];
+ break;
+ default:
+ jj_la1[54] = jj_gen;
+ ;
+ }
+ jj_consume_token(THIS);
+ if (line == -1) {line=token.beginLine; column=token.beginColumn;} isThis = true;
+ args = Arguments();
+ jj_consume_token(SEMICOLON);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LT:
+ case 132:
+ if (jj_2_9(2147483647)) {
+ expr = PrimaryExpressionWithoutSuperSuffix();
+ jj_consume_token(DOT);
+ line=expr.getBeginLine(); column=expr.getBeginColumn();
+ } else {
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ case 132:
+ typeArgs = TypeArguments();
+ int[] lineCol=(int[])typeArgs.remove(0); if (line == -1) {line=lineCol[0]; column=lineCol[1];}
+ break;
+ default:
+ jj_la1[55] = jj_gen;
+ ;
+ }
+ jj_consume_token(SUPER);
+ if (line == -1) {line=token.beginLine; column=token.beginColumn;}
+ args = Arguments();
+ jj_consume_token(SEMICOLON);
+ break;
+ default:
+ jj_la1[56] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {if (true) return new ExplicitConstructorInvocationStmt(line, column, token.endLine, token.endColumn,typeArgs, isThis, expr, args);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List Statements() {
+ List ret = null;
+ Statement stmt;
+ label_26:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ABSTRACT:
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case CONTINUE:
+ case DO:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case FOR:
+ case IF:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case RETURN:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case TRANSIENT:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case VOLATILE:
+ case WHILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case INCR:
+ case DECR:
+ ;
+ break;
+ default:
+ jj_la1[57] = jj_gen;
+ break label_26;
+ }
+ stmt = BlockStatement();
+ ret = add(ret, stmt);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public InitializerDeclaration InitializerDeclaration() {
+ BlockStmt block;
+ int line = -1;
+ int column = 0;
+ boolean isStatic = false;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case STATIC:
+ jj_consume_token(STATIC);
+ isStatic = true; line=token.beginLine; column=token.beginColumn;
+ break;
+ default:
+ jj_la1[58] = jj_gen;
+ ;
+ }
+ block = Block();
+ if(line==-1){line=block.getBeginLine(); column=block.getBeginColumn();}
+ {if (true) return new InitializerDeclaration(line, column, token.endLine, token.endColumn, isStatic, block);}
+ throw new Error("Missing return statement in function");
+ }
+
+/*
+ * Type, name and expression syntax follows.
+ */
+ final public Type Type() {
+ Type ret;
+ if (jj_2_11(2)) {
+ ret = ReferenceType();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ ret = PrimitiveType();
+ break;
+ default:
+ jj_la1[59] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ReferenceType ReferenceType() {
+ Type type;
+ int arrayCount = 0;
+ List annotations = null;
+ List accum= null;
+ AnnotationExpr ann;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ type = PrimitiveType();
+ label_27:
+ while (true) {
+ label_28:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[60] = jj_gen;
+ break label_28;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ arrayCount++; accum = add(accum, annotations); annotations= null;
+ if (jj_2_12(2)) {
+ ;
+ } else {
+ break label_27;
+ }
+ }
+ break;
+ case IDENTIFIER:
+ type = ClassOrInterfaceType();
+ label_29:
+ while (true) {
+ if (jj_2_13(2)) {
+ ;
+ } else {
+ break label_29;
+ }
+ label_30:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[61] = jj_gen;
+ break label_30;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ arrayCount++; accum = add(accum, annotations); annotations= null;
+ }
+ break;
+ default:
+ jj_la1[62] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return new ReferenceType(type.getBeginLine(), type.getBeginColumn(), token.endLine, token.endColumn, type, arrayCount, null, accum);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ClassOrInterfaceType ClassOrInterfaceType() {
+ ClassOrInterfaceType ret;
+ String name;
+ List typeArgs = null;
+ int line;
+ int column;
+ List annotations = null;
+ AnnotationExpr ann;
+ jj_consume_token(IDENTIFIER);
+ line=token.beginLine; column=token.beginColumn;
+ name = token.image;
+ if (jj_2_14(2)) {
+ typeArgs = TypeArguments();
+ typeArgs.remove(0);
+ } else {
+ ;
+ }
+ ret = new ClassOrInterfaceType(line, column, token.endLine, token.endColumn,null, name, typeArgs);
+ label_31:
+ while (true) {
+ if (jj_2_15(2)) {
+ ;
+ } else {
+ break label_31;
+ }
+ jj_consume_token(DOT);
+ label_32:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[63] = jj_gen;
+ break label_32;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ if (jj_2_16(2)) {
+ typeArgs = TypeArguments();
+ typeArgs.remove(0);
+ } else {
+ ;
+ }
+ ret = new ClassOrInterfaceType(line, column, token.endLine, token.endColumn,ret, name, typeArgs); ret.setAnnotations(annotations); annotations = null;
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List TypeArguments() {
+ List ret = new LinkedList();
+ Type type;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ jj_consume_token(LT);
+ ret.add(new int[]{token.beginLine, token.beginColumn});
+ type = TypeArgument();
+ ret.add(type);
+ label_33:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[64] = jj_gen;
+ break label_33;
+ }
+ jj_consume_token(COMMA);
+ type = TypeArgument();
+ ret.add(type);
+ }
+ jj_consume_token(GT);
+ {if (true) return ret;}
+ break;
+ case 132:
+ jj_consume_token(132);
+ ret.add(null);
+ {if (true) return ret;}
+ break;
+ default:
+ jj_la1[65] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Type TypeArgument() {
+ Type ret;
+ List annotations = null;
+ AnnotationExpr ann;
+ label_34:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[66] = jj_gen;
+ break label_34;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ ret = ReferenceType();
+ break;
+ case HOOK:
+ ret = Wildcard();
+ break;
+ default:
+ jj_la1[67] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret.setAnnotations(annotations); {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public WildcardType Wildcard() {
+ ReferenceType ext = null;
+ ReferenceType sup = null;
+ int line;
+ int column;
+ AnnotationExpr ann;
+ List annotations = null;
+ jj_consume_token(HOOK);
+ line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case EXTENDS:
+ case SUPER:
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case EXTENDS:
+ jj_consume_token(EXTENDS);
+ label_35:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[68] = jj_gen;
+ break label_35;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ ext = ReferenceType();
+ ext.setAnnotations(annotations);
+ break;
+ case SUPER:
+ jj_consume_token(SUPER);
+ label_36:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[69] = jj_gen;
+ break label_36;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ sup = ReferenceType();
+ sup.setAnnotations(annotations);
+ break;
+ default:
+ jj_la1[70] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ default:
+ jj_la1[71] = jj_gen;
+ ;
+ }
+ {if (true) return new WildcardType(line, column, token.endLine, token.endColumn,ext, sup);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public PrimitiveType PrimitiveType() {
+ PrimitiveType ret;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ jj_consume_token(BOOLEAN);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Boolean);
+ break;
+ case CHAR:
+ jj_consume_token(CHAR);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Char);
+ break;
+ case BYTE:
+ jj_consume_token(BYTE);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Byte);
+ break;
+ case SHORT:
+ jj_consume_token(SHORT);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Short);
+ break;
+ case INT:
+ jj_consume_token(INT);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Int);
+ break;
+ case LONG:
+ jj_consume_token(LONG);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Long);
+ break;
+ case FLOAT:
+ jj_consume_token(FLOAT);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Float);
+ break;
+ case DOUBLE:
+ jj_consume_token(DOUBLE);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Double);
+ break;
+ default:
+ jj_la1[72] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Type ResultType() {
+ Type ret;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case VOID:
+ jj_consume_token(VOID);
+ ret = new VoidType(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ ret = Type();
+ break;
+ default:
+ jj_la1[73] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public NameExpr Name() {
+ NameExpr ret;
+ jj_consume_token(IDENTIFIER);
+ ret = new NameExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ label_37:
+ while (true) {
+ if (jj_2_17(2)) {
+ ;
+ } else {
+ break label_37;
+ }
+ jj_consume_token(DOT);
+ jj_consume_token(IDENTIFIER);
+ ret = new QualifiedNameExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, token.image);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ClassOrInterfaceTypeList() {
+ List ret = new LinkedList();
+ ClassOrInterfaceType type;
+ List annotations= null;
+ AnnotationExpr ann;
+ label_38:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[74] = jj_gen;
+ break label_38;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ type = ClassOrInterfaceType();
+ type.setAnnotations(annotations); ret.add(type); annotations=null;
+ label_39:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[75] = jj_gen;
+ break label_39;
+ }
+ jj_consume_token(COMMA);
+ label_40:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[76] = jj_gen;
+ break label_40;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ type = ClassOrInterfaceType();
+ type.setAnnotations(annotations); ret.add(type); annotations=null;
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public NameExpr SimpleName() {
+ NameExpr ret;
+ jj_consume_token(IDENTIFIER);
+ ret = new NameExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List NameList() {
+ List ret = new LinkedList();
+ NameExpr name;
+ name = Name();
+ ret.add(name);
+ label_41:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[77] = jj_gen;
+ break label_41;
+ }
+ jj_consume_token(COMMA);
+ name = Name();
+ ret.add(name);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+/*
+ * Expression syntax follows.
+ */
+ final public Expression Expression() {
+ Expression ret;
+ AssignExpr.Operator op;
+ Expression value;
+ Statement lambdaBody = null;
+ List params = null;
+ List typeArgs = null;
+ VariableDeclaratorId id = null;
+ Expression inner = null;
+ ret = ConditionalExpression();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ASSIGN:
+ case PLUSASSIGN:
+ case MINUSASSIGN:
+ case STARASSIGN:
+ case SLASHASSIGN:
+ case ANDASSIGN:
+ case ORASSIGN:
+ case XORASSIGN:
+ case REMASSIGN:
+ case LSHIFTASSIGN:
+ case RSIGNEDSHIFTASSIGN:
+ case RUNSIGNEDSHIFTASSIGN:
+ case ARROW:
+ case DOUBLECOLON:
+ if (jj_2_18(2)) {
+ op = AssignmentOperator();
+ value = Expression();
+ ret = new AssignExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, value, op);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ARROW:
+ jj_consume_token(ARROW);
+ lambdaBody = LambdaBody();
+ if (ret instanceof CastExpr)
+ {
+ inner = generateLambda(((CastExpr)ret).getExpr(), lambdaBody);
+ ((CastExpr)ret).setExpr(inner);
+ }
+ else if (ret instanceof ConditionalExpr){
+ ConditionalExpr ce = (ConditionalExpr) ret;
+ if(ce.getElseExpr() != null){
+ ce.setElseExpr(generateLambda(ce.getElseExpr(), lambdaBody));
+ }
+ }
+ else
+ {
+ ret = generateLambda(ret, lambdaBody);
+ }
+ break;
+ case DOUBLECOLON:
+ jj_consume_token(DOUBLECOLON);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ typeArgs = TypeParameters();
+ typeArgs.remove(0);
+ break;
+ default:
+ jj_la1[78] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ break;
+ case NEW:
+ jj_consume_token(NEW);
+ break;
+ default:
+ jj_la1[79] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = new MethodReferenceExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, token.image);
+ break;
+ default:
+ jj_la1[80] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ default:
+ jj_la1[81] = jj_gen;
+ ;
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public AssignExpr.Operator AssignmentOperator() {
+ AssignExpr.Operator ret;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ASSIGN:
+ jj_consume_token(ASSIGN);
+ ret = AssignExpr.Operator.assign;
+ break;
+ case STARASSIGN:
+ jj_consume_token(STARASSIGN);
+ ret = AssignExpr.Operator.star;
+ break;
+ case SLASHASSIGN:
+ jj_consume_token(SLASHASSIGN);
+ ret = AssignExpr.Operator.slash;
+ break;
+ case REMASSIGN:
+ jj_consume_token(REMASSIGN);
+ ret = AssignExpr.Operator.rem;
+ break;
+ case PLUSASSIGN:
+ jj_consume_token(PLUSASSIGN);
+ ret = AssignExpr.Operator.plus;
+ break;
+ case MINUSASSIGN:
+ jj_consume_token(MINUSASSIGN);
+ ret = AssignExpr.Operator.minus;
+ break;
+ case LSHIFTASSIGN:
+ jj_consume_token(LSHIFTASSIGN);
+ ret = AssignExpr.Operator.lShift;
+ break;
+ case RSIGNEDSHIFTASSIGN:
+ jj_consume_token(RSIGNEDSHIFTASSIGN);
+ ret = AssignExpr.Operator.rSignedShift;
+ break;
+ case RUNSIGNEDSHIFTASSIGN:
+ jj_consume_token(RUNSIGNEDSHIFTASSIGN);
+ ret = AssignExpr.Operator.rUnsignedShift;
+ break;
+ case ANDASSIGN:
+ jj_consume_token(ANDASSIGN);
+ ret = AssignExpr.Operator.and;
+ break;
+ case XORASSIGN:
+ jj_consume_token(XORASSIGN);
+ ret = AssignExpr.Operator.xor;
+ break;
+ case ORASSIGN:
+ jj_consume_token(ORASSIGN);
+ ret = AssignExpr.Operator.or;
+ break;
+ default:
+ jj_la1[82] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression ConditionalExpression() {
+ Expression ret;
+ Expression left;
+ Expression right;
+ ret = ConditionalOrExpression();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case HOOK:
+ jj_consume_token(HOOK);
+ left = Expression();
+ jj_consume_token(COLON);
+ right = ConditionalExpression();
+ ret = new ConditionalExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, left, right);
+ break;
+ default:
+ jj_la1[83] = jj_gen;
+ ;
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression ConditionalOrExpression() {
+ Expression ret;
+ Expression right;
+ ret = ConditionalAndExpression();
+ label_42:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case SC_OR:
+ ;
+ break;
+ default:
+ jj_la1[84] = jj_gen;
+ break label_42;
+ }
+ jj_consume_token(SC_OR);
+ right = ConditionalAndExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.or);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression ConditionalAndExpression() {
+ Expression ret;
+ Expression right;
+ ret = InclusiveOrExpression();
+ label_43:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case SC_AND:
+ ;
+ break;
+ default:
+ jj_la1[85] = jj_gen;
+ break label_43;
+ }
+ jj_consume_token(SC_AND);
+ right = InclusiveOrExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.and);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression InclusiveOrExpression() {
+ Expression ret;
+ Expression right;
+ ret = ExclusiveOrExpression();
+ label_44:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BIT_OR:
+ ;
+ break;
+ default:
+ jj_la1[86] = jj_gen;
+ break label_44;
+ }
+ jj_consume_token(BIT_OR);
+ right = ExclusiveOrExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.binOr);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression ExclusiveOrExpression() {
+ Expression ret;
+ Expression right;
+ ret = AndExpression();
+ label_45:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case XOR:
+ ;
+ break;
+ default:
+ jj_la1[87] = jj_gen;
+ break label_45;
+ }
+ jj_consume_token(XOR);
+ right = AndExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.xor);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression AndExpression() {
+ Expression ret;
+ Expression right;
+ ret = EqualityExpression();
+ label_46:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BIT_AND:
+ ;
+ break;
+ default:
+ jj_la1[88] = jj_gen;
+ break label_46;
+ }
+ jj_consume_token(BIT_AND);
+ right = EqualityExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.binAnd);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression EqualityExpression() {
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = InstanceOfExpression();
+ label_47:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case EQ:
+ case NE:
+ ;
+ break;
+ default:
+ jj_la1[89] = jj_gen;
+ break label_47;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case EQ:
+ jj_consume_token(EQ);
+ op = BinaryExpr.Operator.equals;
+ break;
+ case NE:
+ jj_consume_token(NE);
+ op = BinaryExpr.Operator.notEquals;
+ break;
+ default:
+ jj_la1[90] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = InstanceOfExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression InstanceOfExpression() {
+ Expression ret;
+ Type type;
+ ret = RelationalExpression();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case INSTANCEOF:
+ jj_consume_token(INSTANCEOF);
+ type = Type();
+ ret = new InstanceOfExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, type);
+ break;
+ default:
+ jj_la1[91] = jj_gen;
+ ;
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression RelationalExpression() {
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = ShiftExpression();
+ label_48:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ case LE:
+ case GE:
+ case GT:
+ ;
+ break;
+ default:
+ jj_la1[92] = jj_gen;
+ break label_48;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ jj_consume_token(LT);
+ op = BinaryExpr.Operator.less;
+ break;
+ case GT:
+ jj_consume_token(GT);
+ op = BinaryExpr.Operator.greater;
+ break;
+ case LE:
+ jj_consume_token(LE);
+ op = BinaryExpr.Operator.lessEquals;
+ break;
+ case GE:
+ jj_consume_token(GE);
+ op = BinaryExpr.Operator.greaterEquals;
+ break;
+ default:
+ jj_la1[93] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = ShiftExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression ShiftExpression() {
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = AdditiveExpression();
+ label_49:
+ while (true) {
+ if (jj_2_19(1)) {
+ ;
+ } else {
+ break label_49;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LSHIFT:
+ jj_consume_token(LSHIFT);
+ op = BinaryExpr.Operator.lShift;
+ break;
+ default:
+ jj_la1[94] = jj_gen;
+ if (jj_2_20(1)) {
+ RSIGNEDSHIFT();
+ op = BinaryExpr.Operator.rSignedShift;
+ } else if (jj_2_21(1)) {
+ RUNSIGNEDSHIFT();
+ op = BinaryExpr.Operator.rUnsignedShift;
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ right = AdditiveExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression AdditiveExpression() {
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = MultiplicativeExpression();
+ label_50:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case PLUS:
+ case MINUS:
+ ;
+ break;
+ default:
+ jj_la1[95] = jj_gen;
+ break label_50;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case PLUS:
+ jj_consume_token(PLUS);
+ op = BinaryExpr.Operator.plus;
+ break;
+ case MINUS:
+ jj_consume_token(MINUS);
+ op = BinaryExpr.Operator.minus;
+ break;
+ default:
+ jj_la1[96] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = MultiplicativeExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression MultiplicativeExpression() {
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = UnaryExpression();
+ label_51:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case STAR:
+ case SLASH:
+ case REM:
+ ;
+ break;
+ default:
+ jj_la1[97] = jj_gen;
+ break label_51;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case STAR:
+ jj_consume_token(STAR);
+ op = BinaryExpr.Operator.times;
+ break;
+ case SLASH:
+ jj_consume_token(SLASH);
+ op = BinaryExpr.Operator.divide;
+ break;
+ case REM:
+ jj_consume_token(REM);
+ op = BinaryExpr.Operator.remainder;
+ break;
+ default:
+ jj_la1[98] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = UnaryExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression UnaryExpression() {
+ Expression ret;
+ UnaryExpr.Operator op;
+ int line = 0;
+ int column = 0;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case INCR:
+ ret = PreIncrementExpression();
+ break;
+ case DECR:
+ ret = PreDecrementExpression();
+ break;
+ case PLUS:
+ case MINUS:
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case PLUS:
+ jj_consume_token(PLUS);
+ op = UnaryExpr.Operator.positive; line=token.beginLine; column=token.beginColumn;
+ break;
+ case MINUS:
+ jj_consume_token(MINUS);
+ op = UnaryExpr.Operator.negative; line=token.beginLine; column=token.beginColumn;
+ break;
+ default:
+ jj_la1[99] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = UnaryExpression();
+ if(op == UnaryExpr.Operator.negative) {
+ if (ret instanceof IntegerLiteralExpr && ((IntegerLiteralExpr)ret).isMinValue()) {
+ ret = new IntegerLiteralMinValueExpr(line, column, token.endLine, token.endColumn);
+ } else if (ret instanceof LongLiteralExpr && ((LongLiteralExpr)ret).isMinValue()) {
+ ret = new LongLiteralMinValueExpr(line, column, token.endLine, token.endColumn);
+ } else {
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, op);
+ }
+ } else {
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, op);
+ }
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ ret = UnaryExpressionNotPlusMinus();
+ break;
+ default:
+ jj_la1[100] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PreIncrementExpression() {
+ Expression ret;
+ int line;
+ int column;
+ jj_consume_token(INCR);
+ line=token.beginLine; column=token.beginColumn;
+ ret = UnaryExpression();
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, UnaryExpr.Operator.preIncrement);
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PreDecrementExpression() {
+ Expression ret;
+ int line;
+ int column;
+ jj_consume_token(DECR);
+ line=token.beginLine; column=token.beginColumn;
+ ret = UnaryExpression();
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, UnaryExpr.Operator.preDecrement);
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression UnaryExpressionNotPlusMinus() {
+ Expression ret;
+ UnaryExpr.Operator op;
+ int line = 0;
+ int column = 0;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BANG:
+ case TILDE:
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case TILDE:
+ jj_consume_token(TILDE);
+ op = UnaryExpr.Operator.inverse; line=token.beginLine; column=token.beginColumn;
+ break;
+ case BANG:
+ jj_consume_token(BANG);
+ op = UnaryExpr.Operator.not; line=token.beginLine; column=token.beginColumn;
+ break;
+ default:
+ jj_la1[101] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = UnaryExpression();
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, op);
+ break;
+ default:
+ jj_la1[102] = jj_gen;
+ if (jj_2_22(2147483647)) {
+ ret = CastExpression();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ ret = PostfixExpression();
+ break;
+ default:
+ jj_la1[103] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PostfixExpression() {
+ Expression ret;
+ UnaryExpr.Operator op;
+ ret = PrimaryExpression();
+ if (jj_2_23(2)) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case INCR:
+ jj_consume_token(INCR);
+ op = UnaryExpr.Operator.posIncrement;
+ break;
+ case DECR:
+ jj_consume_token(DECR);
+ op = UnaryExpr.Operator.posDecrement;
+ break;
+ default:
+ jj_la1[104] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = new UnaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, op);
+ } else {
+ ;
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression CastExpression() {
+ Expression ret;
+ Type type;
+ int line;
+ int column;
+ AnnotationExpr ann;
+ List annotations = null;
+ jj_consume_token(LPAREN);
+ line=token.beginLine; column=token.beginColumn;
+ label_52:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[105] = jj_gen;
+ break label_52;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ if (jj_2_24(2)) {
+ type = PrimitiveType();
+ jj_consume_token(RPAREN);
+ ret = UnaryExpression();
+ type.setAnnotations(annotations); ret = new CastExpr(line, column, token.endLine, token.endColumn,type, ret);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ type = ReferenceType();
+ jj_consume_token(RPAREN);
+ ret = UnaryExpressionNotPlusMinus();
+ type.setAnnotations(annotations); ret = new CastExpr(line, column, token.endLine, token.endColumn,type, ret);
+ break;
+ default:
+ jj_la1[106] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PrimaryExpression() {
+ Expression ret;
+ Expression inner;
+ ret = PrimaryPrefix();
+ label_53:
+ while (true) {
+ if (jj_2_25(2)) {
+ ;
+ } else {
+ break label_53;
+ }
+ ret = PrimarySuffix(ret);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PrimaryExpressionWithoutSuperSuffix() {
+ Expression ret;
+ Expression inner;
+ ret = PrimaryPrefix();
+ label_54:
+ while (true) {
+ if (jj_2_26(2147483647)) {
+ ;
+ } else {
+ break label_54;
+ }
+ ret = PrimarySuffixWithoutSuper(ret);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PrimaryPrefix() {
+ Expression ret = null;
+ NameExpr name;
+ List typeArgs = null;
+ List args = null;
+ boolean hasArgs = false;
+ boolean isLambda = false;
+ Type type;
+ int line;
+ int column;
+ Parameter p = null;
+ VariableDeclaratorId id = null;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case FALSE:
+ case NULL:
+ case TRUE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ ret = Literal();
+ break;
+ case THIS:
+ jj_consume_token(THIS);
+ ret = new ThisExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, null);
+ break;
+ case SUPER:
+ jj_consume_token(SUPER);
+ ret = new SuperExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, null);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case DOT:
+ jj_consume_token(DOT);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ case 132:
+ typeArgs = TypeArguments();
+ typeArgs.remove(0);
+ break;
+ default:
+ jj_la1[107] = jj_gen;
+ ;
+ }
+ name = SimpleName();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LPAREN:
+ args = Arguments();
+ hasArgs=true;
+ break;
+ default:
+ jj_la1[108] = jj_gen;
+ ;
+ }
+ if (hasArgs) {
+ MethodCallExpr m = new MethodCallExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, null, args);
+ m.setNameExpr(name);
+ ret = m;
+ } else {
+ FieldAccessExpr f = new FieldAccessExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, null, null);
+ f.setFieldExpr(name);
+ ret = f;
+ }
+ break;
+ case DOUBLECOLON:
+ jj_consume_token(DOUBLECOLON);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ typeArgs = TypeParameters();
+ typeArgs.remove(0);
+ break;
+ default:
+ jj_la1[109] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ break;
+ case NEW:
+ jj_consume_token(NEW);
+ break;
+ default:
+ jj_la1[110] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = new MethodReferenceExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, token.image);
+ break;
+ case LPAREN:
+ args = Arguments();
+ new MethodCallExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, null, args);
+ break;
+ default:
+ jj_la1[111] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ case LPAREN:
+ jj_consume_token(LPAREN);
+ line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SYNCHRONIZED:
+ case THIS:
+ case TRANSIENT:
+ case TRUE:
+ case VOID:
+ case VOLATILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ if (jj_2_27(2147483647)) {
+ p = FormalParameter();
+ isLambda = true;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ args = FormalLambdaParameters();
+ break;
+ default:
+ jj_la1[112] = jj_gen;
+ ;
+ }
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ret = Expression();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ args = InferredLambdaParameters();
+ isLambda = true;
+ break;
+ default:
+ jj_la1[113] = jj_gen;
+ ;
+ }
+ break;
+ default:
+ jj_la1[114] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ default:
+ jj_la1[115] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+ if(!isLambda) { ret = new EnclosedExpr(line, column, token.endLine, token.endColumn,ret);}
+ else{
+ if(ret != null){
+ if(ret instanceof NameExpr)
+ {
+ id = new VariableDeclaratorId(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), ((NameExpr)ret).getName(), 0);
+ p = new Parameter(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), 0, null, new UnknownType(), false, id);
+ }
+
+ }
+ args = add(0, args, p);
+ ret = new LambdaExpr(p.getBeginLine(), p.getBeginColumn(), token.endLine, token.endColumn, args, null, true);
+ }
+ break;
+ case NEW:
+ ret = AllocationExpression(null);
+ break;
+ default:
+ jj_la1[119] = jj_gen;
+ if (jj_2_28(2147483647)) {
+ type = ResultType();
+ jj_consume_token(DOT);
+ jj_consume_token(CLASS);
+ ret = new ClassExpr(type.getBeginLine(), type.getBeginColumn(), token.endLine, token.endColumn, type);
+ } else if (jj_2_29(2147483647)) {
+ type = ResultType();
+ jj_consume_token(DOUBLECOLON);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ typeArgs = TypeParameters();
+ typeArgs.remove(0);
+ break;
+ default:
+ jj_la1[116] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ break;
+ case NEW:
+ jj_consume_token(NEW);
+ break;
+ default:
+ jj_la1[117] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = new TypeExpr(type.getBeginLine(), type.getBeginColumn(), type.getEndLine(), type.getEndColumn(), type);
+ ret = new MethodReferenceExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, token.image);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ name = SimpleName();
+ line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LPAREN:
+ args = Arguments();
+ hasArgs=true;
+ break;
+ default:
+ jj_la1[118] = jj_gen;
+ ;
+ }
+ if (hasArgs) {
+ MethodCallExpr m = new MethodCallExpr(line, column, token.endLine, token.endColumn, null, null, null, args);
+ m.setNameExpr(name);
+ ret = m;
+ } else {
+ ret = name;
+ }
+ break;
+ default:
+ jj_la1[120] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PrimarySuffix(Expression scope) {
+ Expression ret;
+ if (jj_2_30(2)) {
+ ret = PrimarySuffixWithoutSuper(scope);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case DOT:
+ jj_consume_token(DOT);
+ jj_consume_token(SUPER);
+ ret = new SuperExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope);
+ break;
+ default:
+ jj_la1[121] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PrimarySuffixWithoutSuper(Expression scope) {
+ Expression ret;
+ List typeArgs = null;
+ List args = null;
+ boolean hasArgs = false;
+ NameExpr name;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case DOT:
+ jj_consume_token(DOT);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case THIS:
+ jj_consume_token(THIS);
+ ret = new ThisExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope);
+ break;
+ case NEW:
+ ret = AllocationExpression(scope);
+ break;
+ default:
+ jj_la1[124] = jj_gen;
+ if (jj_2_31(2147483647)) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ case 132:
+ typeArgs = TypeArguments();
+ typeArgs.remove(0);
+ break;
+ default:
+ jj_la1[122] = jj_gen;
+ ;
+ }
+ name = SimpleName();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LPAREN:
+ args = Arguments();
+ hasArgs=true;
+ break;
+ default:
+ jj_la1[123] = jj_gen;
+ ;
+ }
+ if (hasArgs) {
+ MethodCallExpr m = new MethodCallExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, typeArgs, null, args);
+ m.setNameExpr(name);
+ ret = m;
+ } else {
+ FieldAccessExpr f = new FieldAccessExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, typeArgs, null);
+ f.setFieldExpr(name);
+ ret = f;
+ }
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ case LBRACKET:
+ jj_consume_token(LBRACKET);
+ ret = Expression();
+ jj_consume_token(RBRACKET);
+ ret = new ArrayAccessExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, ret);
+ break;
+ default:
+ jj_la1[125] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression Literal() {
+ Expression ret;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case INTEGER_LITERAL:
+ jj_consume_token(INTEGER_LITERAL);
+ ret = new IntegerLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ break;
+ case LONG_LITERAL:
+ jj_consume_token(LONG_LITERAL);
+ ret = new LongLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ break;
+ case FLOATING_POINT_LITERAL:
+ jj_consume_token(FLOATING_POINT_LITERAL);
+ ret = new DoubleLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ break;
+ case CHARACTER_LITERAL:
+ jj_consume_token(CHARACTER_LITERAL);
+ ret = new CharLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image.substring(1, token.image.length()-1));
+ break;
+ case STRING_LITERAL:
+ jj_consume_token(STRING_LITERAL);
+ ret = new StringLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image.substring(1, token.image.length()-1));
+ break;
+ case FALSE:
+ case TRUE:
+ ret = BooleanLiteral();
+ break;
+ case NULL:
+ ret = NullLiteral();
+ break;
+ default:
+ jj_la1[126] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression BooleanLiteral() {
+ Expression ret;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case TRUE:
+ jj_consume_token(TRUE);
+ ret = new BooleanLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, true);
+ break;
+ case FALSE:
+ jj_consume_token(FALSE);
+ ret = new BooleanLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, false);
+ break;
+ default:
+ jj_la1[127] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression NullLiteral() {
+ jj_consume_token(NULL);
+ {if (true) return new NullLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List Arguments() {
+ List ret = null;
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ret = ArgumentList();
+ break;
+ default:
+ jj_la1[128] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ArgumentList() {
+ List ret = new LinkedList();
+ Expression expr;
+ expr = Expression();
+ ret.add(expr);
+ label_55:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[129] = jj_gen;
+ break label_55;
+ }
+ jj_consume_token(COMMA);
+ expr = Expression();
+ ret.add(expr);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression AllocationExpression(Expression scope) {
+ Expression ret;
+ ArrayCreationExpr arrayExpr;
+ Type type;
+ Object[] arr = null;
+ List typeArgs = null;
+ List anonymousBody = null;
+ List args;
+ int line;
+ int column;
+ List annotations = null;
+ AnnotationExpr ann;
+ jj_consume_token(NEW);
+ if(scope==null) {line=token.beginLine; column=token.beginColumn;} else {line=scope.getBeginLine(); column=scope.getBeginColumn();}
+ label_56:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[130] = jj_gen;
+ break label_56;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ type = PrimitiveType();
+ type.setAnnotations(annotations);
+ arr = ArrayDimsAndInits();
+ arrayExpr = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, null, 0);
+ arrayExpr.setArraysAnnotations((List)arr[2]);
+ if (arr[0] instanceof Integer) {
+ arrayExpr.setArrayCount(((Integer)arr[0]).intValue());
+ arrayExpr.setInitializer((ArrayInitializerExpr)arr[1]);
+ } else {
+ arrayExpr.setArrayCount(((Integer)arr[1]).intValue());
+ arrayExpr.setDimensions((List)arr[0]);
+ }
+ ret = arrayExpr;
+ break;
+ case IDENTIFIER:
+ case LT:
+ case 132:
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ case 132:
+ typeArgs = TypeArguments();
+ label_57:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[131] = jj_gen;
+ break label_57;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ typeArgs.remove(0);
+ break;
+ default:
+ jj_la1[132] = jj_gen;
+ ;
+ }
+ type = ClassOrInterfaceType();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACKET:
+ case AT:
+ arr = ArrayDimsAndInits();
+ type.setAnnotations(annotations); arrayExpr = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, null, 0);
+ arrayExpr.setArraysAnnotations((List)arr[2]);
+ if (arr[0] instanceof Integer) {
+ arrayExpr.setArrayCount(((Integer)arr[0]).intValue());
+ arrayExpr.setInitializer((ArrayInitializerExpr)arr[1]);
+ } else {
+ arrayExpr.setArrayCount(((Integer)arr[1]).intValue());
+ arrayExpr.setDimensions((List)arr[0]);
+ }
+ ret = arrayExpr;
+ break;
+ case LPAREN:
+ args = Arguments();
+ if (jj_2_32(2)) {
+ anonymousBody = ClassOrInterfaceBody(false);
+ } else {
+ ;
+ }
+ type.setAnnotations(annotations); ret = new ObjectCreationExpr(line, column, token.endLine, token.endColumn, scope, (ClassOrInterfaceType) type, typeArgs, args, anonymousBody);
+ break;
+ default:
+ jj_la1[133] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ default:
+ jj_la1[134] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+/*
+ * The third LOOKAHEAD specification below is to parse to PrimarySuffix
+ * if there is an expression between the "[...]".
+ */
+ final public Object[] ArrayDimsAndInits() {
+ Object[] ret = new Object[3];
+ Expression expr;
+ List inits = null;
+ int i = 0;
+ List accum = null;
+ List annotations = null;
+ AnnotationExpr ann;
+ label_58:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[135] = jj_gen;
+ break label_58;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ if (jj_2_35(2)) {
+ label_59:
+ while (true) {
+ jj_consume_token(LBRACKET);
+ expr = Expression();
+ accum = add(accum, annotations); annotations=null; inits = add(inits, expr);
+ jj_consume_token(RBRACKET);
+ if (jj_2_33(2)) {
+ ;
+ } else {
+ break label_59;
+ }
+ }
+ label_60:
+ while (true) {
+ if (jj_2_34(2)) {
+ ;
+ } else {
+ break label_60;
+ }
+ label_61:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[136] = jj_gen;
+ break label_61;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ i++;
+ }
+ accum = add(accum, annotations); annotations=null; ret[0] = inits; ret[1] = new Integer(i);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACKET:
+ label_62:
+ while (true) {
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ i++;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACKET:
+ ;
+ break;
+ default:
+ jj_la1[137] = jj_gen;
+ break label_62;
+ }
+ }
+ expr = ArrayInitializer();
+ accum = add(accum, annotations);annotations=null; ret[0] = new Integer(i); ret[1] = expr;
+ break;
+ default:
+ jj_la1[138] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ ret[2]=accum; {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+/*
+ * Statement syntax follows.
+ */
+ final public Statement Statement() {
+ Statement ret;
+ if (jj_2_36(2)) {
+ ret = LabeledStatement();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ASSERT:
+ ret = AssertStatement();
+ break;
+ case LBRACE:
+ ret = Block();
+ break;
+ case SEMICOLON:
+ ret = EmptyStatement();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case INCR:
+ case DECR:
+ ret = StatementExpression();
+ break;
+ case SWITCH:
+ ret = SwitchStatement();
+ break;
+ case IF:
+ ret = IfStatement();
+ break;
+ case WHILE:
+ ret = WhileStatement();
+ break;
+ case DO:
+ ret = DoStatement();
+ break;
+ case FOR:
+ ret = ForStatement();
+ break;
+ case BREAK:
+ ret = BreakStatement();
+ break;
+ case CONTINUE:
+ ret = ContinueStatement();
+ break;
+ case RETURN:
+ ret = ReturnStatement();
+ break;
+ case THROW:
+ ret = ThrowStatement();
+ break;
+ case SYNCHRONIZED:
+ ret = SynchronizedStatement();
+ break;
+ case TRY:
+ ret = TryStatement();
+ break;
+ default:
+ jj_la1[139] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public AssertStmt AssertStatement() {
+ Expression check;
+ Expression msg = null;
+ int line;
+ int column;
+ jj_consume_token(ASSERT);
+ line=token.beginLine; column=token.beginColumn;
+ check = Expression();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COLON:
+ jj_consume_token(COLON);
+ msg = Expression();
+ break;
+ default:
+ jj_la1[140] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ {if (true) return new AssertStmt(line, column, token.endLine, token.endColumn,check, msg);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public LabeledStmt LabeledStatement() {
+ String label;
+ Statement stmt;
+ int line;
+ int column;
+ jj_consume_token(IDENTIFIER);
+ line=token.beginLine; column=token.beginColumn;
+ label = token.image;
+ jj_consume_token(COLON);
+ stmt = Statement();
+ {if (true) return new LabeledStmt(line, column, token.endLine, token.endColumn,label, stmt);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public BlockStmt Block() {
+ List stmts;
+ int beginLine;
+ int beginColumn;
+ jj_consume_token(LBRACE);
+ beginLine=token.beginLine; beginColumn=token.beginColumn;
+ stmts = Statements();
+ jj_consume_token(RBRACE);
+ {if (true) return new BlockStmt(beginLine, beginColumn, token.endLine, token.endColumn, stmts);}
+ throw new Error("Missing return statement in function");
+ }
+
+/*
+ * Classes inside block stametents can only be abstract or final. The semantic must check it.
+ */
+ final public Statement BlockStatement() {
+ Statement ret;
+ Expression expr;
+ ClassOrInterfaceDeclaration typeDecl;
+ Modifier modifier;
+ if (jj_2_37(2147483647)) {
+
+ modifier = Modifiers();
+ typeDecl = ClassOrInterfaceDeclaration(modifier);
+ ret = new TypeDeclarationStmt(typeDecl.getBeginLine(), typeDecl.getBeginColumn(), token.endLine, token.endColumn, typeDecl);
+ } else if (jj_2_38(2147483647)) {
+ expr = VariableDeclarationExpression();
+ jj_consume_token(SEMICOLON);
+ ret = new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CHAR:
+ case CONTINUE:
+ case DO:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case FOR:
+ case IF:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case RETURN:
+ case SHORT:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case WHILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case SEMICOLON:
+ case INCR:
+ case DECR:
+ ret = Statement();
+ break;
+ default:
+ jj_la1[141] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public VariableDeclarationExpr VariableDeclarationExpression() {
+ Modifier modifier;
+ Type type;
+ List vars = new LinkedList();
+ VariableDeclarator var;
+ modifier = Modifiers();
+ type = Type();
+ var = VariableDeclarator();
+ vars.add(var);
+ label_63:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[142] = jj_gen;
+ break label_63;
+ }
+ jj_consume_token(COMMA);
+ var = VariableDeclarator();
+ vars.add(var);
+ }
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ if(line==-1) {line=type.getBeginLine(); column=type.getBeginColumn(); }
+ {if (true) return new VariableDeclarationExpr(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, vars);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public EmptyStmt EmptyStatement() {
+ jj_consume_token(SEMICOLON);
+ {if (true) return new EmptyStmt(token.beginLine, token.beginColumn, token.endLine, token.endColumn);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Statement LambdaBody() {
+ Expression expr;
+ Statement n = null;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ expr = Expression();
+ n = new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr);
+ break;
+ case LBRACE:
+ n = Block();
+ break;
+ default:
+ jj_la1[143] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return n;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ExpressionStmt StatementExpression() {
+ Expression expr;
+ AssignExpr.Operator op;
+ Expression value;
+ Type type;
+ List typeArgs = null;
+ Statement lambdaBody = null;
+ VariableDeclaratorId id = null;
+ List params = null;
+ Expression inner = null;
+ if (jj_2_39(2)) {
+ expr = PreIncrementExpression();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case DECR:
+ expr = PreDecrementExpression();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ expr = PrimaryExpression();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ASSIGN:
+ case INCR:
+ case DECR:
+ case PLUSASSIGN:
+ case MINUSASSIGN:
+ case STARASSIGN:
+ case SLASHASSIGN:
+ case ANDASSIGN:
+ case ORASSIGN:
+ case XORASSIGN:
+ case REMASSIGN:
+ case LSHIFTASSIGN:
+ case RSIGNEDSHIFTASSIGN:
+ case RUNSIGNEDSHIFTASSIGN:
+ case ARROW:
+ case DOUBLECOLON:
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case INCR:
+ jj_consume_token(INCR);
+ expr = new UnaryExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, UnaryExpr.Operator.posIncrement);
+ break;
+ case DECR:
+ jj_consume_token(DECR);
+ expr = new UnaryExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, UnaryExpr.Operator.posDecrement);
+ break;
+ case ASSIGN:
+ case PLUSASSIGN:
+ case MINUSASSIGN:
+ case STARASSIGN:
+ case SLASHASSIGN:
+ case ANDASSIGN:
+ case ORASSIGN:
+ case XORASSIGN:
+ case REMASSIGN:
+ case LSHIFTASSIGN:
+ case RSIGNEDSHIFTASSIGN:
+ case RUNSIGNEDSHIFTASSIGN:
+ op = AssignmentOperator();
+ value = Expression();
+ expr = new AssignExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, value, op);
+ break;
+ case DOUBLECOLON:
+ jj_consume_token(DOUBLECOLON);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LT:
+ typeArgs = TypeParameters();
+ typeArgs.remove(0);
+ break;
+ default:
+ jj_la1[144] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ break;
+ case NEW:
+ jj_consume_token(NEW);
+ break;
+ default:
+ jj_la1[145] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ expr = new MethodReferenceExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, typeArgs, token.image);
+ break;
+ case ARROW:
+ jj_consume_token(ARROW);
+ lambdaBody = LambdaBody();
+ if (expr instanceof CastExpr)
+ {
+ inner = generateLambda(((CastExpr)expr).getExpr(), lambdaBody);
+ ((CastExpr)expr).setExpr(inner);
+ }
+ else
+ {
+ expr = generateLambda(expr, lambdaBody);
+ }
+ break;
+ default:
+ jj_la1[146] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ default:
+ jj_la1[147] = jj_gen;
+ ;
+ }
+ break;
+ default:
+ jj_la1[148] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ jj_consume_token(SEMICOLON);
+ {if (true) return new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public SwitchStmt SwitchStatement() {
+ Expression selector;
+ SwitchEntryStmt entry;
+ List entries = null;
+ int line;
+ int column;
+ jj_consume_token(SWITCH);
+ line=token.beginLine; column=token.beginColumn;
+ jj_consume_token(LPAREN);
+ selector = Expression();
+ jj_consume_token(RPAREN);
+ jj_consume_token(LBRACE);
+ label_64:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case CASE:
+ case _DEFAULT:
+ ;
+ break;
+ default:
+ jj_la1[149] = jj_gen;
+ break label_64;
+ }
+ entry = SwitchEntry();
+ entries = add(entries, entry);
+ }
+ jj_consume_token(RBRACE);
+ {if (true) return new SwitchStmt(line, column, token.endLine, token.endColumn,selector, entries);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public SwitchEntryStmt SwitchEntry() {
+ Expression label = null;
+ List stmts;
+ int line;
+ int column;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case CASE:
+ jj_consume_token(CASE);
+ line=token.beginLine; column=token.beginColumn;
+ label = Expression();
+ break;
+ case _DEFAULT:
+ jj_consume_token(_DEFAULT);
+ line=token.beginLine; column=token.beginColumn;
+ break;
+ default:
+ jj_la1[150] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(COLON);
+ stmts = Statements();
+ {if (true) return new SwitchEntryStmt(line, column, token.endLine, token.endColumn,label, stmts);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public IfStmt IfStatement() {
+ Expression condition;
+ Statement thenStmt;
+ Statement elseStmt = null;
+ int line;
+ int column;
+ Comment thenCmmt = null;
+ Comment elseCmmt = null;
+ jj_consume_token(IF);
+ line=token.beginLine; column=token.beginColumn;
+ jj_consume_token(LPAREN);
+ condition = Expression();
+ jj_consume_token(RPAREN);
+
+ thenStmt = Statement();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ELSE:
+ jj_consume_token(ELSE);
+
+ elseStmt = Statement();
+ break;
+ default:
+ jj_la1[151] = jj_gen;
+ ;
+ }
+ IfStmt tmp = new IfStmt(line, column, token.endLine, token.endColumn,condition, thenStmt, elseStmt);
+
+ thenStmt.setComment(thenCmmt);
+ if (elseStmt != null)
+ elseStmt.setComment(elseCmmt);
+ {if (true) return tmp;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public WhileStmt WhileStatement() {
+ Expression condition;
+ Statement body;
+ int line;
+ int column;
+ jj_consume_token(WHILE);
+ line=token.beginLine; column=token.beginColumn;
+ jj_consume_token(LPAREN);
+ condition = Expression();
+ jj_consume_token(RPAREN);
+ body = Statement();
+ {if (true) return new WhileStmt(line, column, token.endLine, token.endColumn,condition, body);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public DoStmt DoStatement() {
+ Expression condition;
+ Statement body;
+ int line;
+ int column;
+ jj_consume_token(DO);
+ line=token.beginLine; column=token.beginColumn;
+ body = Statement();
+ jj_consume_token(WHILE);
+ jj_consume_token(LPAREN);
+ condition = Expression();
+ jj_consume_token(RPAREN);
+ jj_consume_token(SEMICOLON);
+ {if (true) return new DoStmt(line, column, token.endLine, token.endColumn,body, condition);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Statement ForStatement() {
+ String id = null;
+ VariableDeclarationExpr varExpr = null;
+ Expression expr = null;
+ List init = null;
+ List update = null;
+ Statement body;
+ int line;
+ int column;
+ jj_consume_token(FOR);
+ line=token.beginLine; column=token.beginColumn;
+ jj_consume_token(LPAREN);
+ if (jj_2_40(2147483647)) {
+ varExpr = VariableDeclarationExpression();
+ jj_consume_token(COLON);
+ expr = Expression();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SYNCHRONIZED:
+ case THIS:
+ case TRANSIENT:
+ case TRUE:
+ case VOID:
+ case VOLATILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case SEMICOLON:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SYNCHRONIZED:
+ case THIS:
+ case TRANSIENT:
+ case TRUE:
+ case VOID:
+ case VOLATILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ init = ForInit();
+ break;
+ default:
+ jj_la1[152] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ expr = Expression();
+ break;
+ default:
+ jj_la1[153] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ update = ForUpdate();
+ break;
+ default:
+ jj_la1[154] = jj_gen;
+ ;
+ }
+ break;
+ default:
+ jj_la1[155] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ jj_consume_token(RPAREN);
+ body = Statement();
+ if (varExpr != null) {
+ {if (true) return new ForeachStmt(line, column, token.endLine, token.endColumn,varExpr, expr, body);}
+ }
+ {if (true) return new ForStmt(line, column, token.endLine, token.endColumn,init, expr, update, body);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ForInit() {
+ List ret;
+ Expression expr;
+ if (jj_2_41(2147483647)) {
+ expr = VariableDeclarationExpression();
+ ret = new LinkedList(); ret.add(expr);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ret = ExpressionList();
+ break;
+ default:
+ jj_la1[156] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ExpressionList() {
+ List ret = new LinkedList();
+ Expression expr;
+ expr = Expression();
+ ret.add(expr);
+ label_65:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[157] = jj_gen;
+ break label_65;
+ }
+ jj_consume_token(COMMA);
+ expr = Expression();
+ ret.add(expr);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ForUpdate() {
+ List ret;
+ ret = ExpressionList();
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public BreakStmt BreakStatement() {
+ String id = null;
+ int line;
+ int column;
+ jj_consume_token(BREAK);
+ line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ id = token.image;
+ break;
+ default:
+ jj_la1[158] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ {if (true) return new BreakStmt(line, column, token.endLine, token.endColumn,id);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ContinueStmt ContinueStatement() {
+ String id = null;
+ int line;
+ int column;
+ jj_consume_token(CONTINUE);
+ line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ id = token.image;
+ break;
+ default:
+ jj_la1[159] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ {if (true) return new ContinueStmt(line, column, token.endLine, token.endColumn,id);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ReturnStmt ReturnStatement() {
+ Expression expr = null;
+ int line;
+ int column;
+ jj_consume_token(RETURN);
+ line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ expr = Expression();
+ break;
+ default:
+ jj_la1[160] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ {if (true) return new ReturnStmt(line, column, token.endLine, token.endColumn,expr);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ThrowStmt ThrowStatement() {
+ Expression expr;
+ int line;
+ int column;
+ jj_consume_token(THROW);
+ line=token.beginLine; column=token.beginColumn;
+ expr = Expression();
+ jj_consume_token(SEMICOLON);
+ {if (true) return new ThrowStmt(line, column, token.endLine, token.endColumn,expr);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public SynchronizedStmt SynchronizedStatement() {
+ Expression expr;
+ BlockStmt block;
+ int line;
+ int column;
+ jj_consume_token(SYNCHRONIZED);
+ line=token.beginLine; column=token.beginColumn;
+ jj_consume_token(LPAREN);
+ expr = Expression();
+ jj_consume_token(RPAREN);
+ block = Block();
+ {if (true) return new SynchronizedStmt(line, column, token.endLine, token.endColumn,expr, block);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public TryStmt TryStatement() {
+ List resources = new LinkedList();
+ BlockStmt tryBlock;
+ BlockStmt finallyBlock = null;
+ List catchs = null;
+ Parameter except;
+ BlockStmt catchBlock;
+ Modifier exceptModifier;
+ Type exceptType;
+ List exceptTypes = new LinkedList();
+ VariableDeclaratorId exceptId;
+ int line;
+ int column;
+ int cLine;
+ int cColumn;
+ jj_consume_token(TRY);
+ line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LPAREN:
+ resources = ResourceSpecification();
+ break;
+ default:
+ jj_la1[161] = jj_gen;
+ ;
+ }
+ tryBlock = Block();
+ label_66:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case CATCH:
+ ;
+ break;
+ default:
+ jj_la1[162] = jj_gen;
+ break label_66;
+ }
+ jj_consume_token(CATCH);
+ cLine=token.beginLine; cColumn=token.beginColumn;
+ jj_consume_token(LPAREN);
+ exceptModifier = Modifiers();
+ exceptType = Type();
+ exceptTypes.add(exceptType);
+ label_67:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BIT_OR:
+ ;
+ break;
+ default:
+ jj_la1[163] = jj_gen;
+ break label_67;
+ }
+ jj_consume_token(BIT_OR);
+ exceptType = Type();
+ exceptTypes.add(exceptType);
+ }
+ exceptId = VariableDeclaratorId();
+ jj_consume_token(RPAREN);
+ catchBlock = Block();
+ catchs = add(catchs, new CatchClause(cLine, cColumn, token.endLine, token.endColumn, exceptModifier.modifiers, exceptModifier.annotations, exceptTypes, exceptId, catchBlock)); exceptTypes = new LinkedList();
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case FINALLY:
+ jj_consume_token(FINALLY);
+ finallyBlock = Block();
+ break;
+ default:
+ jj_la1[164] = jj_gen;
+ ;
+ }
+ {if (true) return new TryStmt(line, column, token.endLine, token.endColumn, resources, tryBlock, catchs, finallyBlock);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ResourceSpecification() {
+List vars;
+ jj_consume_token(LPAREN);
+ vars = Resources();
+ if (jj_2_42(2)) {
+ jj_consume_token(SEMICOLON);
+ } else {
+ ;
+ }
+ jj_consume_token(RPAREN);
+ {if (true) return vars;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List Resources() {
+ List vars = new LinkedList();
+ VariableDeclarationExpr var;
+ /*this is a bit more lenient than we need to be, eg allowing access modifiers like private*/
+ var = VariableDeclarationExpression();
+ vars.add(var);
+ label_68:
+ while (true) {
+ if (jj_2_43(2)) {
+ ;
+ } else {
+ break label_68;
+ }
+ jj_consume_token(SEMICOLON);
+ var = VariableDeclarationExpression();
+ vars.add(var);
+ }
+ {if (true) return vars;}
+ throw new Error("Missing return statement in function");
+ }
+
+/* We use productions to match >>>, >> and > so that we can keep the
+ * type declaration syntax with generics clean
+ */
+ final public void RUNSIGNEDSHIFT() {
+ if (getToken(1).kind == GT &&
+ ((GTToken)getToken(1)).realKind == RUNSIGNEDSHIFT) {
+
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ }
+
+ final public void RSIGNEDSHIFT() {
+ if (getToken(1).kind == GT &&
+ ((GTToken)getToken(1)).realKind == RSIGNEDSHIFT) {
+
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ }
+
+/* Annotation syntax follows. */
+ final public AnnotationExpr Annotation() {
+ AnnotationExpr ret;
+ if (jj_2_44(2147483647)) {
+ ret = NormalAnnotation();
+ } else if (jj_2_45(2147483647)) {
+ ret = SingleMemberAnnotation();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ret = MarkerAnnotation();
+ break;
+ default:
+ jj_la1[165] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public NormalAnnotationExpr NormalAnnotation() {
+ NameExpr name;
+ List pairs = null;
+ int line;
+ int column;
+ jj_consume_token(AT);
+ line=token.beginLine; column=token.beginColumn;
+ name = Name();
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ pairs = MemberValuePairs();
+ break;
+ default:
+ jj_la1[166] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+ {if (true) return new NormalAnnotationExpr(line, column, token.endLine, token.endColumn,name, pairs);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public MarkerAnnotationExpr MarkerAnnotation() {
+ NameExpr name;
+ int line;
+ int column;
+ jj_consume_token(AT);
+ line=token.beginLine; column=token.beginColumn;
+ name = Name();
+ {if (true) return new MarkerAnnotationExpr(line, column, token.endLine, token.endColumn,name);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public SingleMemberAnnotationExpr SingleMemberAnnotation() {
+ NameExpr name;
+ Expression memberVal;
+ int line;
+ int column;
+ jj_consume_token(AT);
+ line=token.beginLine; column=token.beginColumn;
+ name = Name();
+ jj_consume_token(LPAREN);
+ memberVal = MemberValue();
+ jj_consume_token(RPAREN);
+ {if (true) return new SingleMemberAnnotationExpr(line, column, token.endLine, token.endColumn,name, memberVal);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List MemberValuePairs() {
+ List ret = new LinkedList();
+ MemberValuePair pair;
+ pair = MemberValuePair();
+ ret.add(pair);
+ label_69:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[167] = jj_gen;
+ break label_69;
+ }
+ jj_consume_token(COMMA);
+ pair = MemberValuePair();
+ ret.add(pair);
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public MemberValuePair MemberValuePair() {
+ String name;
+ Expression value;
+ int line;
+ int column;
+ jj_consume_token(IDENTIFIER);
+ name = token.image; line=token.beginLine; column=token.beginColumn;
+ jj_consume_token(ASSIGN);
+ value = MemberValue();
+ {if (true) return new MemberValuePair(line, column, token.endLine, token.endColumn,name, value);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression MemberValue() {
+ Expression ret;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case AT:
+ ret = Annotation();
+ break;
+ case LBRACE:
+ ret = MemberValueArrayInitializer();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ret = ConditionalExpression();
+ break;
+ default:
+ jj_la1[168] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression MemberValueArrayInitializer() {
+ List ret = new LinkedList();
+ Expression member;
+ int line;
+ int column;
+ jj_consume_token(LBRACE);
+ line=token.beginLine; column=token.beginColumn;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ member = MemberValue();
+ ret.add(member);
+ label_70:
+ while (true) {
+ if (jj_2_46(2)) {
+ ;
+ } else {
+ break label_70;
+ }
+ jj_consume_token(COMMA);
+ member = MemberValue();
+ ret.add(member);
+ }
+ break;
+ default:
+ jj_la1[169] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ break;
+ default:
+ jj_la1[170] = jj_gen;
+ ;
+ }
+ jj_consume_token(RBRACE);
+ {if (true) return new ArrayInitializerExpr(line, column, token.endLine, token.endColumn,ret);}
+ throw new Error("Missing return statement in function");
+ }
+
+/* Annotation Types. */
+ final public AnnotationDeclaration AnnotationTypeDeclaration(Modifier modifier) {
+ NameExpr name;
+ List members;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ jj_consume_token(AT);
+ if (line == -1) {line=token.beginLine; column=token.beginColumn;}
+ jj_consume_token(INTERFACE);
+ name = Name();
+ members = AnnotationTypeBody();
+ AnnotationDeclaration tmp = new AnnotationDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, null, members);
+ tmp.setNameExpr(name);
+ {if (true) return tmp;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List AnnotationTypeBody() {
+ List ret = null;
+ BodyDeclaration member;
+ jj_consume_token(LBRACE);
+ label_71:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case SEMICOLON:
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[171] = jj_gen;
+ break label_71;
+ }
+ member = AnnotationBodyDeclaration();
+ ret = add(ret, member);
+ }
+ jj_consume_token(RBRACE);
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public BodyDeclaration AnnotationBodyDeclaration() {
+ Modifier modifier;
+ BodyDeclaration ret;
+
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ ret = new EmptyTypeDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
+ break;
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ modifier = Modifiers();
+ if (jj_2_47(2147483647)) {
+ ret = AnnotationTypeMemberDeclaration(modifier);
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case CLASS:
+ case INTERFACE:
+ ret = ClassOrInterfaceDeclaration(modifier);
+ break;
+ case ENUM:
+ ret = EnumDeclaration(modifier);
+ break;
+ case AT:
+ ret = AnnotationTypeDeclaration(modifier);
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ ret = FieldDeclaration(modifier);
+ break;
+ default:
+ jj_la1[172] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ default:
+ jj_la1[173] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public AnnotationMemberDeclaration AnnotationTypeMemberDeclaration(Modifier modifier) {
+ Type type;
+ String name;
+ Expression defaultVal = null;
+ type = Type();
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ jj_consume_token(LPAREN);
+ jj_consume_token(RPAREN);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case _DEFAULT:
+ defaultVal = DefaultValue();
+ break;
+ default:
+ jj_la1[174] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ { if (line == -1) {line=type.getBeginLine(); column=type.getBeginColumn();} }
+ {if (true) return new AnnotationMemberDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, name, defaultVal);}
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression DefaultValue() {
+ Expression ret;
+ jj_consume_token(_DEFAULT);
+ ret = MemberValue();
+ {if (true) return ret;}
+ throw new Error("Missing return statement in function");
+ }
+
+ private boolean jj_2_1(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_1(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(0, xla); }
+ }
+
+ private boolean jj_2_2(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_2(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(1, xla); }
+ }
+
+ private boolean jj_2_3(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_3(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(2, xla); }
+ }
+
+ private boolean jj_2_4(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_4(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(3, xla); }
+ }
+
+ private boolean jj_2_5(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_5(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(4, xla); }
+ }
+
+ private boolean jj_2_6(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_6(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(5, xla); }
+ }
+
+ private boolean jj_2_7(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_7(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(6, xla); }
+ }
+
+ private boolean jj_2_8(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_8(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(7, xla); }
+ }
+
+ private boolean jj_2_9(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_9(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(8, xla); }
+ }
+
+ private boolean jj_2_10(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_10(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(9, xla); }
+ }
+
+ private boolean jj_2_11(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_11(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(10, xla); }
+ }
+
+ private boolean jj_2_12(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_12(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(11, xla); }
+ }
+
+ private boolean jj_2_13(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_13(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(12, xla); }
+ }
+
+ private boolean jj_2_14(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_14(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(13, xla); }
+ }
+
+ private boolean jj_2_15(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_15(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(14, xla); }
+ }
+
+ private boolean jj_2_16(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_16(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(15, xla); }
+ }
+
+ private boolean jj_2_17(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_17(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(16, xla); }
+ }
+
+ private boolean jj_2_18(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_18(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(17, xla); }
+ }
+
+ private boolean jj_2_19(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_19(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(18, xla); }
+ }
+
+ private boolean jj_2_20(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_20(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(19, xla); }
+ }
+
+ private boolean jj_2_21(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_21(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(20, xla); }
+ }
+
+ private boolean jj_2_22(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_22(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(21, xla); }
+ }
+
+ private boolean jj_2_23(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_23(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(22, xla); }
+ }
+
+ private boolean jj_2_24(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_24(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(23, xla); }
+ }
+
+ private boolean jj_2_25(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_25(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(24, xla); }
+ }
+
+ private boolean jj_2_26(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_26(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(25, xla); }
+ }
+
+ private boolean jj_2_27(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_27(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(26, xla); }
+ }
+
+ private boolean jj_2_28(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_28(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(27, xla); }
+ }
+
+ private boolean jj_2_29(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_29(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(28, xla); }
+ }
+
+ private boolean jj_2_30(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_30(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(29, xla); }
+ }
+
+ private boolean jj_2_31(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_31(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(30, xla); }
+ }
+
+ private boolean jj_2_32(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_32(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(31, xla); }
+ }
+
+ private boolean jj_2_33(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_33(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(32, xla); }
+ }
+
+ private boolean jj_2_34(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_34(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(33, xla); }
+ }
+
+ private boolean jj_2_35(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_35(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(34, xla); }
+ }
+
+ private boolean jj_2_36(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_36(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(35, xla); }
+ }
+
+ private boolean jj_2_37(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_37(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(36, xla); }
+ }
+
+ private boolean jj_2_38(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_38(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(37, xla); }
+ }
+
+ private boolean jj_2_39(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_39(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(38, xla); }
+ }
+
+ private boolean jj_2_40(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_40(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(39, xla); }
+ }
+
+ private boolean jj_2_41(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_41(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(40, xla); }
+ }
+
+ private boolean jj_2_42(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_42(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(41, xla); }
+ }
+
+ private boolean jj_2_43(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_43(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(42, xla); }
+ }
+
+ private boolean jj_2_44(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_44(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(43, xla); }
+ }
+
+ private boolean jj_2_45(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_45(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(44, xla); }
+ }
+
+ private boolean jj_2_46(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_46(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(45, xla); }
+ }
+
+ private boolean jj_2_47(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_47(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(46, xla); }
+ }
+
+ private boolean jj_3R_172() {
+ if (jj_3R_168()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_207()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_294() {
+ if (jj_3R_133()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_25()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_422() {
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_155() {
+ if (jj_3R_94()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_201()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_424() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_437()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_438()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3_24() {
+ if (jj_3R_107()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_174()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_88() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_421() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_423() {
+ if (jj_3R_436()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_388() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_172()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_361() {
+ if (jj_scan_token(TRY)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_423()) jj_scanpos = xsp;
+ if (jj_3R_128()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_424()) {
+ jj_scanpos = xsp;
+ if (jj_3R_425()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_154() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_302() {
+ if (jj_3R_87()) return true;
+ if (jj_3R_172()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_388()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_104() {
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_154()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_3_24()) {
+ jj_scanpos = xsp;
+ if (jj_3R_155()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_241() {
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_420() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_106() {
+ if (jj_scan_token(DECR)) return true;
+ return false;
+ }
+
+ private boolean jj_3_23() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_105()) {
+ jj_scanpos = xsp;
+ if (jj_3R_106()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_105() {
+ if (jj_scan_token(INCR)) return true;
+ return false;
+ }
+
+ private boolean jj_3_5() {
+ if (jj_3R_87()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_88()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(88)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(91)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(87)) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_86() {
+ if (jj_3R_125()) return true;
+ return false;
+ }
+
+ private boolean jj_3_22() {
+ if (jj_3R_104()) return true;
+ return false;
+ }
+
+ private boolean jj_3_4() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_86()) jj_scanpos = xsp;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_216() {
+ if (jj_3R_245()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_267() {
+ if (jj_3R_294()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_23()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_277() {
+ if (jj_3R_303()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_360() {
+ if (jj_scan_token(SYNCHRONIZED)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_100()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_128()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_271() {
+ if (jj_scan_token(_DEFAULT)) return true;
+ if (jj_3R_116()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_276() {
+ if (jj_3R_302()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_235() {
+ if (jj_3R_104()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_236() {
+ if (jj_3R_267()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_266() {
+ if (jj_scan_token(BANG)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_275() {
+ if (jj_3R_301()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_265() {
+ if (jj_scan_token(TILDE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_274() {
+ if (jj_3R_300()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_234() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_265()) {
+ jj_scanpos = xsp;
+ if (jj_3R_266()) return true;
+ }
+ if (jj_3R_174()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_273() {
+ if (jj_3R_299()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_272() {
+ if (jj_3R_298()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_359() {
+ if (jj_scan_token(THROW)) return true;
+ if (jj_3R_100()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_201() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_234()) {
+ jj_scanpos = xsp;
+ if (jj_3R_235()) {
+ jj_scanpos = xsp;
+ if (jj_3R_236()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_358() {
+ if (jj_scan_token(RETURN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_422()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_461() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_240() {
+ if (jj_3R_116()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_271()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_272()) {
+ jj_scanpos = xsp;
+ if (jj_3R_273()) {
+ jj_scanpos = xsp;
+ if (jj_3R_274()) {
+ jj_scanpos = xsp;
+ if (jj_3R_275()) {
+ jj_scanpos = xsp;
+ if (jj_3R_276()) {
+ jj_scanpos = xsp;
+ if (jj_3R_277()) return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_242() {
+ if (jj_scan_token(DECR)) return true;
+ if (jj_3R_174()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_357() {
+ if (jj_scan_token(CONTINUE)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_421()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3_6() {
+ if (jj_3R_89()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_417() {
+ if (jj_scan_token(ELSE)) return true;
+ if (jj_3R_306()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_118() {
+ if (jj_scan_token(INCR)) return true;
+ if (jj_3R_174()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_435() {
+ if (jj_3R_452()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_211() {
+ if (jj_3R_201()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_206() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_6()) {
+ jj_scanpos = xsp;
+ if (jj_3R_240()) {
+ jj_scanpos = xsp;
+ if (jj_3R_241()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_356() {
+ if (jj_scan_token(BREAK)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_420()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_171() {
+ if (jj_3R_206()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_452() {
+ if (jj_3R_459()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_279() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_244() {
+ if (jj_scan_token(MINUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_113() {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_171()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_305() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_243() {
+ if (jj_scan_token(PLUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_210() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_243()) {
+ jj_scanpos = xsp;
+ if (jj_3R_244()) return true;
+ }
+ if (jj_3R_174()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_209() {
+ if (jj_3R_242()) return true;
+ return false;
+ }
+
+ private boolean jj_3_41() {
+ if (jj_3R_116()) return true;
+ if (jj_3R_87()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_208() {
+ if (jj_3R_118()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_280() {
+ if (jj_scan_token(BIT_AND)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_305()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_198()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_459() {
+ if (jj_3R_100()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_461()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_245() {
+ if (jj_scan_token(EXTENDS)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_279()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_198()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_280()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_458() {
+ if (jj_3R_459()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_434() {
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_457() {
+ if (jj_3R_117()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_174() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_208()) {
+ jj_scanpos = xsp;
+ if (jj_3R_209()) {
+ jj_scanpos = xsp;
+ if (jj_3R_210()) {
+ jj_scanpos = xsp;
+ if (jj_3R_211()) return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_430() {
+ if (jj_scan_token(REM)) return true;
+ return false;
+ }
+
+ private boolean jj_3_3() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_85()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_429() {
+ if (jj_scan_token(SLASH)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_182() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_216()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_428() {
+ if (jj_scan_token(STAR)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_451() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_457()) {
+ jj_scanpos = xsp;
+ if (jj_3R_458()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_412() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_428()) {
+ jj_scanpos = xsp;
+ if (jj_3R_429()) {
+ jj_scanpos = xsp;
+ if (jj_3R_430()) return true;
+ }
+ }
+ if (jj_3R_174()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_217() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_408() {
+ if (jj_3R_113()) return true;
+ return false;
+ }
+
+ private boolean jj_3_40() {
+ if (jj_3R_117()) return true;
+ if (jj_scan_token(COLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_376() {
+ if (jj_3R_174()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_412()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_183() {
+ if (jj_scan_token(COMMA)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_217()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_182()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_181() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_433() {
+ if (jj_3R_451()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_414() {
+ if (jj_scan_token(MINUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_413() {
+ if (jj_scan_token(PLUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_125() {
+ if (jj_scan_token(LT)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_181()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_182()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_183()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_419() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_433()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_434()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_435()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_402() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_413()) {
+ jj_scanpos = xsp;
+ if (jj_3R_414()) return true;
+ }
+ if (jj_3R_376()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_418() {
+ if (jj_3R_117()) return true;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_372() {
+ if (jj_3R_376()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_402()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_355() {
+ if (jj_scan_token(FOR)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_418()) {
+ jj_scanpos = xsp;
+ if (jj_3R_419()) return true;
+ }
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_306()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_407() {
+ if (jj_3R_187()) return true;
+ return false;
+ }
+
+ private boolean jj_3_21() {
+ if (jj_3R_103()) return true;
+ return false;
+ }
+
+ private boolean jj_3_20() {
+ if (jj_3R_102()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_124() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_101() {
+ if (jj_scan_token(LSHIFT)) return true;
+ return false;
+ }
+
+ private boolean jj_3_19() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_101()) {
+ jj_scanpos = xsp;
+ if (jj_3_20()) {
+ jj_scanpos = xsp;
+ if (jj_3_21()) return true;
+ }
+ }
+ if (jj_3R_372()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_85() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_124()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(IDENTIFIER)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_407()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_408()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_398() {
+ if (jj_3R_206()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_373() {
+ if (jj_scan_token(INSTANCEOF)) return true;
+ if (jj_3R_87()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_354() {
+ if (jj_scan_token(DO)) return true;
+ if (jj_3R_306()) return true;
+ if (jj_scan_token(WHILE)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_100()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_370() {
+ if (jj_3R_372()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_19()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_383() {
+ if (jj_scan_token(SEMICOLON)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_398()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_395() {
+ if (jj_scan_token(GE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_394() {
+ if (jj_scan_token(LE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_393() {
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_392() {
+ if (jj_scan_token(LT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_377() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_392()) {
+ jj_scanpos = xsp;
+ if (jj_3R_393()) {
+ jj_scanpos = xsp;
+ if (jj_3R_394()) {
+ jj_scanpos = xsp;
+ if (jj_3R_395()) return true;
+ }
+ }
+ }
+ if (jj_3R_370()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_353() {
+ if (jj_scan_token(WHILE)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_100()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_306()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_382() {
+ if (jj_3R_85()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_3()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_368() {
+ if (jj_3R_370()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_377()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_381() {
+ if (jj_3R_397()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_369() {
+ if (jj_scan_token(BIT_AND)) return true;
+ if (jj_3R_345()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_299() {
+ if (jj_scan_token(ENUM)) return true;
+ if (jj_3R_119()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_381()) jj_scanpos = xsp;
+ if (jj_scan_token(LBRACE)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_382()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(88)) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_383()) jj_scanpos = xsp;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_364() {
+ if (jj_3R_368()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_373()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_352() {
+ if (jj_scan_token(IF)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_100()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_306()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_417()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_405() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_375() {
+ if (jj_scan_token(NE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_374() {
+ if (jj_scan_token(EQ)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_371() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_374()) {
+ jj_scanpos = xsp;
+ if (jj_3R_375()) return true;
+ }
+ if (jj_3R_364()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_365() {
+ if (jj_scan_token(XOR)) return true;
+ if (jj_3R_315()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_346() {
+ if (jj_scan_token(BIT_OR)) return true;
+ if (jj_3R_293()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_406() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_198()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_345() {
+ if (jj_3R_364()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_371()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_450() {
+ if (jj_scan_token(_DEFAULT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_449() {
+ if (jj_scan_token(CASE)) return true;
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_397() {
+ if (jj_scan_token(IMPLEMENTS)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_405()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_198()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_406()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_403() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_316() {
+ if (jj_scan_token(SC_AND)) return true;
+ if (jj_3R_264()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_315() {
+ if (jj_3R_345()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_369()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_432() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_449()) {
+ jj_scanpos = xsp;
+ if (jj_3R_450()) return true;
+ }
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_184()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_295() {
+ if (jj_scan_token(SC_OR)) return true;
+ if (jj_3R_233()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_404() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_198()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_396() {
+ if (jj_scan_token(EXTENDS)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_403()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_198()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_404()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_293() {
+ if (jj_3R_315()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_365()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_416() {
+ if (jj_3R_432()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_351() {
+ if (jj_scan_token(SWITCH)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_100()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_416()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_319() {
+ if (jj_scan_token(INTERFACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_264() {
+ if (jj_3R_293()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_346()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_380() {
+ if (jj_3R_397()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_173() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_172()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_379() {
+ if (jj_3R_396()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_378() {
+ if (jj_3R_125()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_456() {
+ if (jj_3R_125()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_233() {
+ if (jj_3R_264()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_316()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_298() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(20)) {
+ jj_scanpos = xsp;
+ if (jj_3R_319()) return true;
+ }
+ if (jj_3R_119()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_378()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_379()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_380()) jj_scanpos = xsp;
+ if (jj_3R_113()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_448() {
+ if (jj_scan_token(ARROW)) return true;
+ if (jj_3R_296()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_447() {
+ if (jj_scan_token(DOUBLECOLON)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_456()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(78)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(43)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_446() {
+ if (jj_3R_99()) return true;
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_445() {
+ if (jj_scan_token(DECR)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_200() {
+ if (jj_3R_233()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_295()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_444() {
+ if (jj_scan_token(INCR)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_431() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_444()) {
+ jj_scanpos = xsp;
+ if (jj_3R_445()) {
+ jj_scanpos = xsp;
+ if (jj_3R_446()) {
+ jj_scanpos = xsp;
+ if (jj_3R_447()) {
+ jj_scanpos = xsp;
+ if (jj_3R_448()) return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_367() {
+ if (jj_3R_294()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_431()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_366() {
+ if (jj_3R_242()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_268() {
+ if (jj_scan_token(HOOK)) return true;
+ if (jj_3R_100()) return true;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_151()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_151() {
+ if (jj_3R_200()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_268()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3_39() {
+ if (jj_3R_118()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_350() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_39()) {
+ jj_scanpos = xsp;
+ if (jj_3R_366()) {
+ jj_scanpos = xsp;
+ if (jj_3R_367()) return true;
+ }
+ }
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_150() {
+ if (jj_scan_token(ORASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_149() {
+ if (jj_scan_token(XORASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_148() {
+ if (jj_scan_token(ANDASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_147() {
+ if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_146() {
+ if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_145() {
+ if (jj_scan_token(LSHIFTASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_144() {
+ if (jj_scan_token(MINUSASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_143() {
+ if (jj_scan_token(PLUSASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_142() {
+ if (jj_scan_token(REMASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_141() {
+ if (jj_scan_token(SLASHASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_140() {
+ if (jj_scan_token(STARASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_139() {
+ if (jj_scan_token(ASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_318() {
+ if (jj_3R_128()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_99() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_139()) {
+ jj_scanpos = xsp;
+ if (jj_3R_140()) {
+ jj_scanpos = xsp;
+ if (jj_3R_141()) {
+ jj_scanpos = xsp;
+ if (jj_3R_142()) {
+ jj_scanpos = xsp;
+ if (jj_3R_143()) {
+ jj_scanpos = xsp;
+ if (jj_3R_144()) {
+ jj_scanpos = xsp;
+ if (jj_3R_145()) {
+ jj_scanpos = xsp;
+ if (jj_3R_146()) {
+ jj_scanpos = xsp;
+ if (jj_3R_147()) {
+ jj_scanpos = xsp;
+ if (jj_3R_148()) {
+ jj_scanpos = xsp;
+ if (jj_3R_149()) {
+ jj_scanpos = xsp;
+ if (jj_3R_150()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_84() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_83() {
+ if (jj_scan_token(STRICTFP)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_297() {
+ if (jj_3R_125()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_317() {
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_82() {
+ if (jj_scan_token(VOLATILE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_81() {
+ if (jj_scan_token(TRANSIENT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_114() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_80() {
+ if (jj_scan_token(NATIVE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_79() {
+ if (jj_scan_token(SYNCHRONIZED)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_270() {
+ if (jj_scan_token(DOUBLECOLON)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_297()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(78)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(43)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_296() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_317()) {
+ jj_scanpos = xsp;
+ if (jj_3R_318()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_78() {
+ if (jj_scan_token(ABSTRACT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_415() {
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_77() {
+ if (jj_scan_token(FINAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_76() {
+ if (jj_scan_token(PRIVATE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_75() {
+ if (jj_scan_token(PROTECTED)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_74() {
+ if (jj_scan_token(STATIC)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_349() {
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3_34() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_114()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_73() {
+ if (jj_scan_token(PUBLIC)) return true;
+ return false;
+ }
+
+ private boolean jj_3_2() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_73()) {
+ jj_scanpos = xsp;
+ if (jj_3R_74()) {
+ jj_scanpos = xsp;
+ if (jj_3R_75()) {
+ jj_scanpos = xsp;
+ if (jj_3R_76()) {
+ jj_scanpos = xsp;
+ if (jj_3R_77()) {
+ jj_scanpos = xsp;
+ if (jj_3R_78()) {
+ jj_scanpos = xsp;
+ if (jj_3R_79()) {
+ jj_scanpos = xsp;
+ if (jj_3R_80()) {
+ jj_scanpos = xsp;
+ if (jj_3R_81()) {
+ jj_scanpos = xsp;
+ if (jj_3R_82()) {
+ jj_scanpos = xsp;
+ if (jj_3R_83()) {
+ jj_scanpos = xsp;
+ if (jj_3R_84()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_116() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_2()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3_18() {
+ if (jj_3R_99()) return true;
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_269() {
+ if (jj_scan_token(ARROW)) return true;
+ if (jj_3R_296()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_411() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_119()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_239() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_18()) {
+ jj_scanpos = xsp;
+ if (jj_3R_269()) {
+ jj_scanpos = xsp;
+ if (jj_3R_270()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_38() {
+ if (jj_3R_117()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_117() {
+ if (jj_3R_116()) return true;
+ if (jj_3R_87()) return true;
+ if (jj_3R_172()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_173()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_100() {
+ if (jj_3R_151()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_239()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3_37() {
+ if (jj_3R_116()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(20)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(40)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_283() {
+ if (jj_3R_306()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_282() {
+ if (jj_3R_117()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_281() {
+ if (jj_3R_116()) return true;
+ if (jj_3R_298()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_246() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_281()) {
+ jj_scanpos = xsp;
+ if (jj_3R_282()) {
+ jj_scanpos = xsp;
+ if (jj_3R_283()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_122() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_72() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_122()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(PACKAGE)) return true;
+ if (jj_3R_119()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3_1() {
+ if (jj_3R_72()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_401() {
+ if (jj_3R_119()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_411()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_128() {
+ if (jj_scan_token(LBRACE)) return true;
+ if (jj_3R_184()) return true;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_227() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_115() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_306()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_348() {
+ if (jj_scan_token(ASSERT)) return true;
+ if (jj_3R_100()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_415()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3_17() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_119() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_17()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_339() {
+ if (jj_3R_361()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_338() {
+ if (jj_3R_360()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_337() {
+ if (jj_3R_359()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_170() {
+ if (jj_3R_87()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_336() {
+ if (jj_3R_358()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_169() {
+ if (jj_scan_token(VOID)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_335() {
+ if (jj_3R_357()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_334() {
+ if (jj_3R_356()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_333() {
+ if (jj_3R_355()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_332() {
+ if (jj_3R_354()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_331() {
+ if (jj_3R_353()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_111() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_169()) {
+ jj_scanpos = xsp;
+ if (jj_3R_170()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_330() {
+ if (jj_3R_352()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_329() {
+ if (jj_3R_351()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_328() {
+ if (jj_3R_350()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_327() {
+ if (jj_3R_349()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_326() {
+ if (jj_3R_128()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_163() {
+ if (jj_scan_token(DOUBLE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_325() {
+ if (jj_3R_348()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_162() {
+ if (jj_scan_token(FLOAT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_161() {
+ if (jj_scan_token(LONG)) return true;
+ return false;
+ }
+
+ private boolean jj_3_36() {
+ if (jj_3R_115()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_160() {
+ if (jj_scan_token(INT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_363() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_159() {
+ if (jj_scan_token(SHORT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_362() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_158() {
+ if (jj_scan_token(BYTE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_157() {
+ if (jj_scan_token(CHAR)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_156() {
+ if (jj_scan_token(BOOLEAN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_306() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_36()) {
+ jj_scanpos = xsp;
+ if (jj_3R_325()) {
+ jj_scanpos = xsp;
+ if (jj_3R_326()) {
+ jj_scanpos = xsp;
+ if (jj_3R_327()) {
+ jj_scanpos = xsp;
+ if (jj_3R_328()) {
+ jj_scanpos = xsp;
+ if (jj_3R_329()) {
+ jj_scanpos = xsp;
+ if (jj_3R_330()) {
+ jj_scanpos = xsp;
+ if (jj_3R_331()) {
+ jj_scanpos = xsp;
+ if (jj_3R_332()) {
+ jj_scanpos = xsp;
+ if (jj_3R_333()) {
+ jj_scanpos = xsp;
+ if (jj_3R_334()) {
+ jj_scanpos = xsp;
+ if (jj_3R_335()) {
+ jj_scanpos = xsp;
+ if (jj_3R_336()) {
+ jj_scanpos = xsp;
+ if (jj_3R_337()) {
+ jj_scanpos = xsp;
+ if (jj_3R_338()) {
+ jj_scanpos = xsp;
+ if (jj_3R_339()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_344() {
+ if (jj_scan_token(SUPER)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_363()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_94()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_107() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_156()) {
+ jj_scanpos = xsp;
+ if (jj_3R_157()) {
+ jj_scanpos = xsp;
+ if (jj_3R_158()) {
+ jj_scanpos = xsp;
+ if (jj_3R_159()) {
+ jj_scanpos = xsp;
+ if (jj_3R_160()) {
+ jj_scanpos = xsp;
+ if (jj_3R_161()) {
+ jj_scanpos = xsp;
+ if (jj_3R_162()) {
+ jj_scanpos = xsp;
+ if (jj_3R_163()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_342() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_343() {
+ if (jj_scan_token(EXTENDS)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_362()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_94()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_314() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_343()) {
+ jj_scanpos = xsp;
+ if (jj_3R_344()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_312() {
+ Token xsp;
+ if (jj_3R_342()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_342()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_185()) return true;
+ return false;
+ }
+
+ private boolean jj_3_33() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_3R_100()) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3_32() {
+ if (jj_3R_113()) return true;
+ return false;
+ }
+
+ private boolean jj_3_35() {
+ Token xsp;
+ if (jj_3_33()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_33()) { jj_scanpos = xsp; break; }
+ }
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_34()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_229() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_199()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_311() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_289() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_311()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_3_35()) {
+ jj_scanpos = xsp;
+ if (jj_3R_312()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_313() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_263() {
+ if (jj_scan_token(HOOK)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_314()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_292() {
+ if (jj_3R_187()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_32()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_232() {
+ if (jj_3R_263()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_231() {
+ if (jj_3R_94()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_460() {
+ if (jj_3R_462()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_230() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_199() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_230()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_231()) {
+ jj_scanpos = xsp;
+ if (jj_3R_232()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_291() {
+ if (jj_3R_289()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_96() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_98() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_290() {
+ if (jj_3R_97()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_313()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_138() {
+ if (jj_scan_token(132)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_262() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_290()) jj_scanpos = xsp;
+ if (jj_3R_198()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_291()) {
+ jj_scanpos = xsp;
+ if (jj_3R_292()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_95() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_284() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3_13() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_96()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_137() {
+ if (jj_scan_token(LT)) return true;
+ if (jj_3R_199()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_229()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_97() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_137()) {
+ jj_scanpos = xsp;
+ if (jj_3R_138()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_16() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ private boolean jj_3_15() {
+ if (jj_scan_token(DOT)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_98()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(IDENTIFIER)) return true;
+ xsp = jj_scanpos;
+ if (jj_3_16()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_261() {
+ if (jj_3R_107()) return true;
+ if (jj_3R_289()) return true;
+ return false;
+ }
+
+ private boolean jj_3_12() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_95()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_386() {
+ if (jj_scan_token(THROWS)) return true;
+ if (jj_3R_401()) return true;
+ return false;
+ }
+
+ private boolean jj_3_14() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_260() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_198() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_14()) jj_scanpos = xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_15()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_225() {
+ if (jj_scan_token(NEW)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_260()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_261()) {
+ jj_scanpos = xsp;
+ if (jj_3R_262()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_462() {
+ if (jj_scan_token(_DEFAULT)) return true;
+ if (jj_3R_121()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_136() {
+ if (jj_3R_198()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_13()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_135() {
+ if (jj_3R_107()) return true;
+ Token xsp;
+ if (jj_3_12()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_12()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_94() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_135()) {
+ jj_scanpos = xsp;
+ if (jj_3R_136()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_247() {
+ if (jj_3R_100()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_284()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_455() {
+ if (jj_3R_87()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_460()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_219() {
+ if (jj_3R_247()) return true;
+ return false;
+ }
+
+ private boolean jj_3_47() {
+ if (jj_3R_87()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_443() {
+ if (jj_3R_302()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_442() {
+ if (jj_3R_300()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_187() {
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_219()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_126() {
+ if (jj_3R_107()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_441() {
+ if (jj_3R_299()) return true;
+ return false;
+ }
+
+ private boolean jj_3_11() {
+ if (jj_3R_94()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_440() {
+ if (jj_3R_298()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_87() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_11()) {
+ jj_scanpos = xsp;
+ if (jj_3R_126()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_439() {
+ if (jj_3R_455()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_286() {
+ if (jj_scan_token(NULL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_308() {
+ if (jj_scan_token(FALSE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_307() {
+ if (jj_scan_token(TRUE)) return true;
+ return false;
+ }
+
+ private boolean jj_3_46() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_121()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_426() {
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_427() {
+ if (jj_3R_116()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_439()) {
+ jj_scanpos = xsp;
+ if (jj_3R_440()) {
+ jj_scanpos = xsp;
+ if (jj_3R_441()) {
+ jj_scanpos = xsp;
+ if (jj_3R_442()) {
+ jj_scanpos = xsp;
+ if (jj_3R_443()) return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_127() {
+ if (jj_scan_token(STATIC)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_89() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_127()) jj_scanpos = xsp;
+ if (jj_3R_128()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_285() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_307()) {
+ jj_scanpos = xsp;
+ if (jj_3R_308()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_409() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_426()) {
+ jj_scanpos = xsp;
+ if (jj_3R_427()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_254() {
+ if (jj_3R_286()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_218() {
+ if (jj_3R_246()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_253() {
+ if (jj_3R_285()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_184() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_218()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_399() {
+ if (jj_3R_409()) return true;
+ return false;
+ }
+
+ private boolean jj_3_9() {
+ if (jj_3R_92()) return true;
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_252() {
+ if (jj_scan_token(STRING_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_251() {
+ if (jj_scan_token(CHARACTER_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_384() {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_399()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_93() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_189() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ private boolean jj_3_10() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_93()) jj_scanpos = xsp;
+ if (jj_scan_token(THIS)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_250() {
+ if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_188() {
+ if (jj_3R_92()) return true;
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_249() {
+ if (jj_scan_token(LONG_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_132() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_188()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_189()) jj_scanpos = xsp;
+ if (jj_scan_token(SUPER)) return true;
+ if (jj_3R_187()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_186() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_248() {
+ if (jj_scan_token(INTEGER_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_131() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_186()) jj_scanpos = xsp;
+ if (jj_scan_token(THIS)) return true;
+ if (jj_3R_187()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_300() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_scan_token(INTERFACE)) return true;
+ if (jj_3R_119()) return true;
+ if (jj_3R_384()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_112() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_220() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_248()) {
+ jj_scanpos = xsp;
+ if (jj_3R_249()) {
+ jj_scanpos = xsp;
+ if (jj_3R_250()) {
+ jj_scanpos = xsp;
+ if (jj_3R_251()) {
+ jj_scanpos = xsp;
+ if (jj_3R_252()) {
+ jj_scanpos = xsp;
+ if (jj_3R_253()) {
+ jj_scanpos = xsp;
+ if (jj_3R_254()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_91() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_131()) {
+ jj_scanpos = xsp;
+ if (jj_3R_132()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_166() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_3R_100()) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3_31() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_112()) jj_scanpos = xsp;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_324() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_323()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_347() {
+ if (jj_3R_121()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_46()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_238() {
+ if (jj_3R_187()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_237() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_278() {
+ if (jj_3R_304()) return true;
+ return false;
+ }
+
+ private boolean jj_3_8() {
+ if (jj_3R_91()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_204() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_237()) jj_scanpos = xsp;
+ if (jj_3R_227()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_238()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_212() {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_347()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(88)) jj_scanpos = xsp;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3_7() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_90()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_203() {
+ if (jj_3R_225()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_167() {
+ if (jj_scan_token(ELLIPSIS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_202() {
+ if (jj_scan_token(THIS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_177() {
+ if (jj_3R_151()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_287() {
+ if (jj_3R_309()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_176() {
+ if (jj_3R_212()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_175() {
+ if (jj_3R_123()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_387() {
+ if (jj_3R_91()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_340() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_110()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_165() {
+ if (jj_scan_token(DOT)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_202()) {
+ jj_scanpos = xsp;
+ if (jj_3R_203()) {
+ jj_scanpos = xsp;
+ if (jj_3R_204()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_320() {
+ if (jj_3R_125()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_301() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_320()) jj_scanpos = xsp;
+ if (jj_3R_227()) return true;
+ if (jj_3R_385()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_386()) jj_scanpos = xsp;
+ if (jj_scan_token(LBRACE)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_387()) jj_scanpos = xsp;
+ if (jj_3R_184()) return true;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_121() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_175()) {
+ jj_scanpos = xsp;
+ if (jj_3R_176()) {
+ jj_scanpos = xsp;
+ if (jj_3R_177()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_109() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_165()) {
+ jj_scanpos = xsp;
+ if (jj_3R_166()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_410() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_110()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_323() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(ASSIGN)) return true;
+ if (jj_3R_121()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_164() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(SUPER)) return true;
+ return false;
+ }
+
+ private boolean jj_3_30() {
+ if (jj_3R_109()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_226() {
+ if (jj_3R_125()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_304() {
+ if (jj_3R_323()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_324()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_108() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_30()) {
+ jj_scanpos = xsp;
+ if (jj_3R_164()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_228() {
+ if (jj_3R_187()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_110() {
+ if (jj_3R_116()) return true;
+ if (jj_3R_87()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_167()) jj_scanpos = xsp;
+ if (jj_3R_168()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_197() {
+ if (jj_3R_227()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_228()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3_29() {
+ if (jj_3R_111()) return true;
+ if (jj_scan_token(DOUBLECOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_214() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_119()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_121()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_389() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3_28() {
+ if (jj_3R_111()) return true;
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(CLASS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_341() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_168()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_120() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(ASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_205() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_288() {
+ if (jj_3R_310()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_310() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_168()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_341()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_196() {
+ if (jj_3R_111()) return true;
+ if (jj_scan_token(DOUBLECOLON)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_226()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(78)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(43)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_215() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_119()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_322() {
+ if (jj_3R_90()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_7()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_195() {
+ if (jj_3R_111()) return true;
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(CLASS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_194() {
+ if (jj_3R_225()) return true;
+ return false;
+ }
+
+ private boolean jj_3_27() {
+ if (jj_3R_110()) return true;
+ return false;
+ }
+
+ private boolean jj_3_45() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_119()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_309() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_110()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_340()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3_43() {
+ if (jj_scan_token(SEMICOLON)) return true;
+ if (jj_3R_117()) return true;
+ return false;
+ }
+
+ private boolean jj_3_44() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_119()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_120()) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(82)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_213() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_119()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_278()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_400() {
+ if (jj_3R_110()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_410()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_180() {
+ if (jj_3R_215()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_259() {
+ if (jj_3R_100()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_288()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_258() {
+ if (jj_3R_110()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_287()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_179() {
+ if (jj_3R_214()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_224() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_258()) {
+ jj_scanpos = xsp;
+ if (jj_3R_259()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_385() {
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_400()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_178() {
+ if (jj_3R_213()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_257() {
+ if (jj_3R_125()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_193() {
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_224()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_222() {
+ if (jj_scan_token(DOUBLECOLON)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_257()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(78)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(43)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_123() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_178()) {
+ jj_scanpos = xsp;
+ if (jj_3R_179()) {
+ jj_scanpos = xsp;
+ if (jj_3R_180()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_223() {
+ if (jj_3R_187()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_152() {
+ return false;
+ }
+
+ private boolean jj_3R_391() {
+ if (jj_3R_128()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_390() {
+ if (jj_scan_token(THROWS)) return true;
+ if (jj_3R_401()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_321() {
+ if (jj_3R_125()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_303() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_321()) jj_scanpos = xsp;
+ if (jj_3R_111()) return true;
+ if (jj_3R_119()) return true;
+ if (jj_3R_385()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_389()) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_390()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_391()) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(87)) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_153() {
+ return false;
+ }
+
+ private boolean jj_3R_102() {
+ jj_lookingAhead = true;
+ jj_semLA = getToken(1).kind == GT &&
+ ((GTToken)getToken(1)).realKind == RSIGNEDSHIFT;
+ jj_lookingAhead = false;
+ if (!jj_semLA || jj_3R_152()) return true;
+ if (jj_scan_token(GT)) return true;
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_256() {
+ if (jj_3R_187()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_221() {
+ if (jj_scan_token(DOT)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_255()) jj_scanpos = xsp;
+ if (jj_3R_227()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_256()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_255() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ private boolean jj_3_26() {
+ if (jj_3R_109()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_192() {
+ if (jj_scan_token(SUPER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_221()) {
+ jj_scanpos = xsp;
+ if (jj_3R_222()) {
+ jj_scanpos = xsp;
+ if (jj_3R_223()) return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_103() {
+ jj_lookingAhead = true;
+ jj_semLA = getToken(1).kind == GT &&
+ ((GTToken)getToken(1)).realKind == RUNSIGNEDSHIFT;
+ jj_lookingAhead = false;
+ if (!jj_semLA || jj_3R_153()) return true;
+ if (jj_scan_token(GT)) return true;
+ if (jj_scan_token(GT)) return true;
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_191() {
+ if (jj_scan_token(THIS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_185() {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_322()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(88)) jj_scanpos = xsp;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_190() {
+ if (jj_3R_220()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_134() {
+ if (jj_3R_109()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_130() {
+ if (jj_3R_100()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_129() {
+ if (jj_3R_185()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_207() {
+ if (jj_scan_token(ASSIGN)) return true;
+ if (jj_3R_90()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_453() {
+ if (jj_3R_117()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_43()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_133() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_190()) {
+ jj_scanpos = xsp;
+ if (jj_3R_191()) {
+ jj_scanpos = xsp;
+ if (jj_3R_192()) {
+ jj_scanpos = xsp;
+ if (jj_3R_193()) {
+ jj_scanpos = xsp;
+ if (jj_3R_194()) {
+ jj_scanpos = xsp;
+ if (jj_3R_195()) {
+ jj_scanpos = xsp;
+ if (jj_3R_196()) {
+ jj_scanpos = xsp;
+ if (jj_3R_197()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_25() {
+ if (jj_3R_108()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_90() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_129()) {
+ jj_scanpos = xsp;
+ if (jj_3R_130()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_454() {
+ if (jj_scan_token(BIT_OR)) return true;
+ if (jj_3R_87()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_438() {
+ if (jj_scan_token(FINALLY)) return true;
+ if (jj_3R_128()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_425() {
+ if (jj_scan_token(FINALLY)) return true;
+ if (jj_3R_128()) return true;
+ return false;
+ }
+
+ private boolean jj_3_42() {
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_436() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_453()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_42()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_437() {
+ if (jj_scan_token(CATCH)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_116()) return true;
+ if (jj_3R_87()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_454()) { jj_scanpos = xsp; break; }
+ }
+ if (jj_3R_168()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_128()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_168() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_205()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_92() {
+ if (jj_3R_133()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_134()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ /** Generated Token Manager. */
+ public ASTParserTokenManager token_source;
+ JavaCharStream jj_input_stream;
+ /** Current token. */
+ public Token token;
+ /** Next token. */
+ public Token jj_nt;
+ private int jj_ntk;
+ private Token jj_scanpos, jj_lastpos;
+ private int jj_la;
+ /** Whether we are looking ahead. */
+ private boolean jj_lookingAhead = false;
+ private boolean jj_semLA;
+ private int jj_gen;
+ final private int[] jj_la1 = new int[175];
+ static private int[] jj_la1_0;
+ static private int[] jj_la1_1;
+ static private int[] jj_la1_2;
+ static private int[] jj_la1_3;
+ static private int[] jj_la1_4;
+ static {
+ jj_la1_init_0();
+ jj_la1_init_1();
+ jj_la1_init_2();
+ jj_la1_init_3();
+ jj_la1_init_4();
+ }
+ private static void jj_la1_init_0() {
+ jj_la1_0 = new int[] {0x0,0x48101000,0x1,0x0,0x0,0x0,0x40001000,0x8100000,0x48101000,0x100000,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4a995000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x4a995000,0x800000,0x8100000,0x2094000,0x4a995000,0x0,0x0,0x0,0x22094000,0x22094000,0x0,0x0,0x0,0x0,0x0,0x0,0x42095000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x22094000,0x6359f000,0x0,0x2094000,0x0,0x0,0x2094000,0x0,0x0,0x0,0x0,0x2094000,0x0,0x0,0x10000000,0x10000000,0x2094000,0x2094000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x22094000,0x0,0x0,0x22094000,0x0,0x0,0x2094000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x22094000,0x62095000,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x20000000,0x22094000,0x0,0x0,0x0,0x0,0x0,0x2094000,0x0,0x0,0x0,0x0,0x2349e000,0x0,0x2349e000,0x0,0x22094000,0x0,0x0,0x0,0x0,0x22094000,0x820000,0x820000,0x4000000,0x62095000,0x22094000,0x22094000,0x62095000,0x22094000,0x0,0x0,0x0,0x22094000,0x0,0x40000,0x0,0x80000000,0x0,0x0,0x0,0x22094000,0x22094000,0x0,0x4a195000,0xa194000,0x4a195000,0x800000,};
+ }
+ private static void jj_la1_init_1() {
+ jj_la1_1 = new int[] {0x20,0x8899c500,0x0,0x0,0x80000,0x0,0x8899c400,0x100,0x8899c500,0x100,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0xc89dc781,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc89dc781,0x0,0x100,0x40040281,0xc89dc781,0x0,0x0,0x0,0x51241a81,0x51241a81,0x0,0x0,0x0,0x4000000,0x0,0x0,0x889dc681,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x51241a81,0xfbffdf8b,0x80000,0x40281,0x0,0x0,0x40281,0x0,0x0,0x0,0x0,0x40281,0x0,0x0,0x200000,0x200000,0x40281,0x40040281,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x51241a81,0x0,0x0,0x51241a81,0x0,0x0,0x40281,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x51241a81,0xd9bdde81,0x0,0x800,0x0,0x11201800,0x0,0x0,0x0,0x0,0x1000800,0x0,0x10001000,0x10000000,0x51241a81,0x0,0x0,0x0,0x0,0x0,0x40281,0x0,0x0,0x0,0x0,0x73e61a8b,0x0,0x73e61a8b,0x0,0x51241a81,0x0,0x800,0x0,0x0,0x51241a81,0x0,0x0,0x0,0xd9bdde81,0x51241a81,0x51241a81,0xd9bdde81,0x51241a81,0x0,0x0,0x0,0x51241a81,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x51241a81,0x51241a81,0x0,0x889dc781,0x40381,0x889dc781,0x0,};
+ }
+ private static void jj_la1_init_2() {
+ jj_la1_2 = new int[] {0x0,0x4800000,0x0,0x4000000,0x0,0x2000000,0x4000000,0x4000000,0x4800000,0x0,0x10000000,0x0,0x0,0x4000000,0x1000000,0x4000000,0x1000000,0x0,0x4004000,0x1000000,0x14884000,0x800000,0x4000000,0x20000,0x80000,0x4000000,0x1000000,0x4000000,0x0,0x4000000,0x0,0x4000000,0x14884000,0x0,0x4000000,0x10004000,0x14804000,0x1000000,0x8000000,0x200000,0x600a7086,0x600a7086,0x1000000,0x10000000,0x200000,0x0,0x880000,0x1000000,0x4004000,0x1000000,0x1000000,0x0,0x10000000,0x0,0x10000000,0x10000000,0x10027086,0x48a7087,0x0,0x0,0x4000000,0x4000000,0x4000,0x4000000,0x1000000,0x10000000,0x4000000,0x80004000,0x4000000,0x4000000,0x0,0x0,0x0,0x4000,0x4000000,0x1000000,0x4000000,0x1000000,0x10000000,0x4000,0x0,0x8000000,0x8000000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x60027086,0x60000000,0x60000000,0x27086,0x0,0x4000000,0x4000,0x10000000,0x20000,0x10000000,0x4000,0x2020000,0x1000000,0x1000000,0x60027086,0x64027086,0x10000000,0x4000,0x20000,0x23086,0x4000,0x2000000,0x10000000,0x20000,0x0,0x2200000,0x3086,0x0,0x60027086,0x1000000,0x4000000,0x4000000,0x10000000,0x4220000,0x10004000,0x4000000,0x4000000,0x200000,0x200000,0x8a7087,0x0,0x8a7087,0x1000000,0x600a7086,0x10000000,0x4000,0x8000000,0x8000000,0x27086,0x0,0x0,0x0,0x64027086,0x60027086,0x60027086,0x64827086,0x60027086,0x1000000,0x4000,0x4000,0x60027086,0x20000,0x0,0x0,0x0,0x4000000,0x4000,0x1000000,0x640a7086,0x640a7086,0x1000000,0x4804000,0x4004000,0x4804000,0x0,};
+ }
+ private static void jj_la1_init_3() {
+ jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780,0x780,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0000000,0xdffc0000,0x1ffc0000,0x0,0x20,0x40,0x4000,0x8000,0x2000,0x12,0x12,0x0,0xc,0xc,0x20000,0x600,0x600,0x11800,0x11800,0x600,0x780,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x780,0x780,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x1,0x180,0x0,0x780,0x0,0x0,0xdffc0180,0xdffc0180,0x100,0x0,0x0,0x0,0x780,0x780,0x780,0x780,0x780,0x0,0x0,0x0,0x780,0x0,0x0,0x4000,0x0,0x0,0x0,0x0,0x780,0x780,0x0,0x0,0x0,0x0,0x0,};
+ }
+ private static void jj_la1_init_4() {
+ jj_la1_4 = new int[] {0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x10,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
+ }
+ final private JJCalls[] jj_2_rtns = new JJCalls[47];
+ private boolean jj_rescan = false;
+ private int jj_gc = 0;
+
+ /** Constructor with InputStream. */
+ public ASTParser(java.io.InputStream stream) {
+ this(stream, null);
+ }
+ /** Constructor with InputStream and supplied encoding */
+ public ASTParser(java.io.InputStream stream, String encoding) {
+ try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+ token_source = new ASTParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 175; i++) jj_la1[i] = -1;
+ for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream stream) {
+ ReInit(stream, null);
+ }
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream stream, String encoding) {
+ try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 175; i++) jj_la1[i] = -1;
+ for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+ }
+
+ /** Constructor. */
+ public ASTParser(java.io.Reader stream) {
+ jj_input_stream = new JavaCharStream(stream, 1, 1);
+ token_source = new ASTParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 175; i++) jj_la1[i] = -1;
+ for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.Reader stream) {
+ jj_input_stream.ReInit(stream, 1, 1);
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 175; i++) jj_la1[i] = -1;
+ for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+ }
+
+ /** Constructor with generated Token Manager. */
+ public ASTParser(ASTParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 175; i++) jj_la1[i] = -1;
+ for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+ }
+
+ /** Reinitialise. */
+ public void ReInit(ASTParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 175; i++) jj_la1[i] = -1;
+ for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+ }
+
+ private Token jj_consume_token(int kind) {
+ Token oldToken;
+ if ((oldToken = token).next != null) token = token.next;
+ else token = token.next = token_source.getNextToken();
+ jj_ntk = -1;
+ if (token.kind == kind) {
+ jj_gen++;
+ if (++jj_gc > 100) {
+ jj_gc = 0;
+ for (int i = 0; i < jj_2_rtns.length; i++) {
+ JJCalls c = jj_2_rtns[i];
+ while (c != null) {
+ if (c.gen < jj_gen) c.first = null;
+ c = c.next;
+ }
+ }
+ }
+ return token;
+ }
+ token = oldToken;
+ jj_kind = kind;
+ throw generateParseException();
+ }
+
+ static private final class LookaheadSuccess extends java.lang.Error { }
+ final private LookaheadSuccess jj_ls = new LookaheadSuccess();
+ private boolean jj_scan_token(int kind) {
+ if (jj_scanpos == jj_lastpos) {
+ jj_la--;
+ if (jj_scanpos.next == null) {
+ jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
+ } else {
+ jj_lastpos = jj_scanpos = jj_scanpos.next;
+ }
+ } else {
+ jj_scanpos = jj_scanpos.next;
+ }
+ if (jj_rescan) {
+ int i = 0; Token tok = token;
+ while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
+ if (tok != null) jj_add_error_token(kind, i);
+ }
+ if (jj_scanpos.kind != kind) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
+ return false;
+ }
+
+
+/** Get the next Token. */
+ final public Token getNextToken() {
+ if (token.next != null) token = token.next;
+ else token = token.next = token_source.getNextToken();
+ jj_ntk = -1;
+ jj_gen++;
+ return token;
+ }
+
+/** Get the specific Token. */
+ final public Token getToken(int index) {
+ Token t = jj_lookingAhead ? jj_scanpos : token;
+ for (int i = 0; i < index; i++) {
+ if (t.next != null) t = t.next;
+ else t = t.next = token_source.getNextToken();
+ }
+ return t;
+ }
+
+ private int jj_ntk() {
+ if ((jj_nt=token.next) == null)
+ return (jj_ntk = (token.next=token_source.getNextToken()).kind);
+ else
+ return (jj_ntk = jj_nt.kind);
+ }
+
+ private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
+ private int[] jj_expentry;
+ private int jj_kind = -1;
+ private int[] jj_lasttokens = new int[100];
+ private int jj_endpos;
+
+ private void jj_add_error_token(int kind, int pos) {
+ if (pos >= 100) return;
+ if (pos == jj_endpos + 1) {
+ jj_lasttokens[jj_endpos++] = kind;
+ } else if (jj_endpos != 0) {
+ jj_expentry = new int[jj_endpos];
+ for (int i = 0; i < jj_endpos; i++) {
+ jj_expentry[i] = jj_lasttokens[i];
+ }
+ jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {
+ int[] oldentry = (int[])(it.next());
+ if (oldentry.length == jj_expentry.length) {
+ for (int i = 0; i < jj_expentry.length; i++) {
+ if (oldentry[i] != jj_expentry[i]) {
+ continue jj_entries_loop;
+ }
+ }
+ jj_expentries.add(jj_expentry);
+ break jj_entries_loop;
+ }
+ }
+ if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
+ }
+ }
+
+ /** Generate ParseException. */
+ public ParseException generateParseException() {
+ jj_expentries.clear();
+ boolean[] la1tokens = new boolean[133];
+ if (jj_kind >= 0) {
+ la1tokens[jj_kind] = true;
+ jj_kind = -1;
+ }
+ for (int i = 0; i < 175; i++) {
+ if (jj_la1[i] == jj_gen) {
+ for (int j = 0; j < 32; j++) {
+ if ((jj_la1_0[i] & (1<<j)) != 0) {
+ la1tokens[j] = true;
+ }
+ if ((jj_la1_1[i] & (1<<j)) != 0) {
+ la1tokens[32+j] = true;
+ }
+ if ((jj_la1_2[i] & (1<<j)) != 0) {
+ la1tokens[64+j] = true;
+ }
+ if ((jj_la1_3[i] & (1<<j)) != 0) {
+ la1tokens[96+j] = true;
+ }
+ if ((jj_la1_4[i] & (1<<j)) != 0) {
+ la1tokens[128+j] = true;
+ }
+ }
+ }
+ }
+ for (int i = 0; i < 133; i++) {
+ if (la1tokens[i]) {
+ jj_expentry = new int[1];
+ jj_expentry[0] = i;
+ jj_expentries.add(jj_expentry);
+ }
+ }
+ jj_endpos = 0;
+ jj_rescan_token();
+ jj_add_error_token(0, 0);
+ int[][] exptokseq = new int[jj_expentries.size()][];
+ for (int i = 0; i < jj_expentries.size(); i++) {
+ exptokseq[i] = jj_expentries.get(i);
+ }
+ return new ParseException(token, exptokseq, tokenImage);
+ }
+
+ /** Enable tracing. */
+ final public void enable_tracing() {
+ }
+
+ /** Disable tracing. */
+ final public void disable_tracing() {
+ }
+
+ private void jj_rescan_token() {
+ jj_rescan = true;
+ for (int i = 0; i < 47; i++) {
+ try {
+ JJCalls p = jj_2_rtns[i];
+ do {
+ if (p.gen > jj_gen) {
+ jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
+ switch (i) {
+ case 0: jj_3_1(); break;
+ case 1: jj_3_2(); break;
+ case 2: jj_3_3(); break;
+ case 3: jj_3_4(); break;
+ case 4: jj_3_5(); break;
+ case 5: jj_3_6(); break;
+ case 6: jj_3_7(); break;
+ case 7: jj_3_8(); break;
+ case 8: jj_3_9(); break;
+ case 9: jj_3_10(); break;
+ case 10: jj_3_11(); break;
+ case 11: jj_3_12(); break;
+ case 12: jj_3_13(); break;
+ case 13: jj_3_14(); break;
+ case 14: jj_3_15(); break;
+ case 15: jj_3_16(); break;
+ case 16: jj_3_17(); break;
+ case 17: jj_3_18(); break;
+ case 18: jj_3_19(); break;
+ case 19: jj_3_20(); break;
+ case 20: jj_3_21(); break;
+ case 21: jj_3_22(); break;
+ case 22: jj_3_23(); break;
+ case 23: jj_3_24(); break;
+ case 24: jj_3_25(); break;
+ case 25: jj_3_26(); break;
+ case 26: jj_3_27(); break;
+ case 27: jj_3_28(); break;
+ case 28: jj_3_29(); break;
+ case 29: jj_3_30(); break;
+ case 30: jj_3_31(); break;
+ case 31: jj_3_32(); break;
+ case 32: jj_3_33(); break;
+ case 33: jj_3_34(); break;
+ case 34: jj_3_35(); break;
+ case 35: jj_3_36(); break;
+ case 36: jj_3_37(); break;
+ case 37: jj_3_38(); break;
+ case 38: jj_3_39(); break;
+ case 39: jj_3_40(); break;
+ case 40: jj_3_41(); break;
+ case 41: jj_3_42(); break;
+ case 42: jj_3_43(); break;
+ case 43: jj_3_44(); break;
+ case 44: jj_3_45(); break;
+ case 45: jj_3_46(); break;
+ case 46: jj_3_47(); break;
+ }
+ }
+ p = p.next;
+ } while (p != null);
+ } catch(LookaheadSuccess ls) { }
+ }
+ jj_rescan = false;
+ }
+
+ private void jj_save(int index, int xla) {
+ JJCalls p = jj_2_rtns[index];
+ while (p.gen > jj_gen) {
+ if (p.next == null) { p = p.next = new JJCalls(); break; }
+ p = p.next;
+ }
+ p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
+ }
+
+ static final class JJCalls {
+ int gen;
+ Token first;
+ int arg;
+ JJCalls next;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParserConstants.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParserConstants.java
new file mode 100644
index 000000000..3692dfc71
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParserConstants.java
@@ -0,0 +1,414 @@
+/* Generated By:JavaCC: Do not edit this line. ASTParserConstants.java */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+
+/**
+ * Token literal values and constants.
+ * Generated by org.javacc.parser.OtherFilesGen#start()
+ */
+public interface ASTParserConstants {
+
+ /** End of File. */
+ int EOF = 0;
+ /** RegularExpression Id. */
+ int SINGLE_LINE_COMMENT = 6;
+ /** RegularExpression Id. */
+ int JAVA_DOC_COMMENT = 9;
+ /** RegularExpression Id. */
+ int MULTI_LINE_COMMENT = 10;
+ /** RegularExpression Id. */
+ int ABSTRACT = 12;
+ /** RegularExpression Id. */
+ int ASSERT = 13;
+ /** RegularExpression Id. */
+ int BOOLEAN = 14;
+ /** RegularExpression Id. */
+ int BREAK = 15;
+ /** RegularExpression Id. */
+ int BYTE = 16;
+ /** RegularExpression Id. */
+ int CASE = 17;
+ /** RegularExpression Id. */
+ int CATCH = 18;
+ /** RegularExpression Id. */
+ int CHAR = 19;
+ /** RegularExpression Id. */
+ int CLASS = 20;
+ /** RegularExpression Id. */
+ int CONST = 21;
+ /** RegularExpression Id. */
+ int CONTINUE = 22;
+ /** RegularExpression Id. */
+ int _DEFAULT = 23;
+ /** RegularExpression Id. */
+ int DO = 24;
+ /** RegularExpression Id. */
+ int DOUBLE = 25;
+ /** RegularExpression Id. */
+ int ELSE = 26;
+ /** RegularExpression Id. */
+ int ENUM = 27;
+ /** RegularExpression Id. */
+ int EXTENDS = 28;
+ /** RegularExpression Id. */
+ int FALSE = 29;
+ /** RegularExpression Id. */
+ int FINAL = 30;
+ /** RegularExpression Id. */
+ int FINALLY = 31;
+ /** RegularExpression Id. */
+ int FLOAT = 32;
+ /** RegularExpression Id. */
+ int FOR = 33;
+ /** RegularExpression Id. */
+ int GOTO = 34;
+ /** RegularExpression Id. */
+ int IF = 35;
+ /** RegularExpression Id. */
+ int IMPLEMENTS = 36;
+ /** RegularExpression Id. */
+ int IMPORT = 37;
+ /** RegularExpression Id. */
+ int INSTANCEOF = 38;
+ /** RegularExpression Id. */
+ int INT = 39;
+ /** RegularExpression Id. */
+ int INTERFACE = 40;
+ /** RegularExpression Id. */
+ int LONG = 41;
+ /** RegularExpression Id. */
+ int NATIVE = 42;
+ /** RegularExpression Id. */
+ int NEW = 43;
+ /** RegularExpression Id. */
+ int NULL = 44;
+ /** RegularExpression Id. */
+ int PACKAGE = 45;
+ /** RegularExpression Id. */
+ int PRIVATE = 46;
+ /** RegularExpression Id. */
+ int PROTECTED = 47;
+ /** RegularExpression Id. */
+ int PUBLIC = 48;
+ /** RegularExpression Id. */
+ int RETURN = 49;
+ /** RegularExpression Id. */
+ int SHORT = 50;
+ /** RegularExpression Id. */
+ int STATIC = 51;
+ /** RegularExpression Id. */
+ int STRICTFP = 52;
+ /** RegularExpression Id. */
+ int SUPER = 53;
+ /** RegularExpression Id. */
+ int SWITCH = 54;
+ /** RegularExpression Id. */
+ int SYNCHRONIZED = 55;
+ /** RegularExpression Id. */
+ int THIS = 56;
+ /** RegularExpression Id. */
+ int THROW = 57;
+ /** RegularExpression Id. */
+ int THROWS = 58;
+ /** RegularExpression Id. */
+ int TRANSIENT = 59;
+ /** RegularExpression Id. */
+ int TRUE = 60;
+ /** RegularExpression Id. */
+ int TRY = 61;
+ /** RegularExpression Id. */
+ int VOID = 62;
+ /** RegularExpression Id. */
+ int VOLATILE = 63;
+ /** RegularExpression Id. */
+ int WHILE = 64;
+ /** RegularExpression Id. */
+ int LONG_LITERAL = 65;
+ /** RegularExpression Id. */
+ int INTEGER_LITERAL = 66;
+ /** RegularExpression Id. */
+ int DECIMAL_LITERAL = 67;
+ /** RegularExpression Id. */
+ int HEX_LITERAL = 68;
+ /** RegularExpression Id. */
+ int OCTAL_LITERAL = 69;
+ /** RegularExpression Id. */
+ int BINARY_LITERAL = 70;
+ /** RegularExpression Id. */
+ int FLOATING_POINT_LITERAL = 71;
+ /** RegularExpression Id. */
+ int DECIMAL_FLOATING_POINT_LITERAL = 72;
+ /** RegularExpression Id. */
+ int DECIMAL_EXPONENT = 73;
+ /** RegularExpression Id. */
+ int HEXADECIMAL_FLOATING_POINT_LITERAL = 74;
+ /** RegularExpression Id. */
+ int HEXADECIMAL_EXPONENT = 75;
+ /** RegularExpression Id. */
+ int CHARACTER_LITERAL = 76;
+ /** RegularExpression Id. */
+ int STRING_LITERAL = 77;
+ /** RegularExpression Id. */
+ int IDENTIFIER = 78;
+ /** RegularExpression Id. */
+ int LETTER = 79;
+ /** RegularExpression Id. */
+ int PART_LETTER = 80;
+ /** RegularExpression Id. */
+ int LPAREN = 81;
+ /** RegularExpression Id. */
+ int RPAREN = 82;
+ /** RegularExpression Id. */
+ int LBRACE = 83;
+ /** RegularExpression Id. */
+ int RBRACE = 84;
+ /** RegularExpression Id. */
+ int LBRACKET = 85;
+ /** RegularExpression Id. */
+ int RBRACKET = 86;
+ /** RegularExpression Id. */
+ int SEMICOLON = 87;
+ /** RegularExpression Id. */
+ int COMMA = 88;
+ /** RegularExpression Id. */
+ int DOT = 89;
+ /** RegularExpression Id. */
+ int AT = 90;
+ /** RegularExpression Id. */
+ int ASSIGN = 91;
+ /** RegularExpression Id. */
+ int LT = 92;
+ /** RegularExpression Id. */
+ int BANG = 93;
+ /** RegularExpression Id. */
+ int TILDE = 94;
+ /** RegularExpression Id. */
+ int HOOK = 95;
+ /** RegularExpression Id. */
+ int COLON = 96;
+ /** RegularExpression Id. */
+ int EQ = 97;
+ /** RegularExpression Id. */
+ int LE = 98;
+ /** RegularExpression Id. */
+ int GE = 99;
+ /** RegularExpression Id. */
+ int NE = 100;
+ /** RegularExpression Id. */
+ int SC_OR = 101;
+ /** RegularExpression Id. */
+ int SC_AND = 102;
+ /** RegularExpression Id. */
+ int INCR = 103;
+ /** RegularExpression Id. */
+ int DECR = 104;
+ /** RegularExpression Id. */
+ int PLUS = 105;
+ /** RegularExpression Id. */
+ int MINUS = 106;
+ /** RegularExpression Id. */
+ int STAR = 107;
+ /** RegularExpression Id. */
+ int SLASH = 108;
+ /** RegularExpression Id. */
+ int BIT_AND = 109;
+ /** RegularExpression Id. */
+ int BIT_OR = 110;
+ /** RegularExpression Id. */
+ int XOR = 111;
+ /** RegularExpression Id. */
+ int REM = 112;
+ /** RegularExpression Id. */
+ int LSHIFT = 113;
+ /** RegularExpression Id. */
+ int PLUSASSIGN = 114;
+ /** RegularExpression Id. */
+ int MINUSASSIGN = 115;
+ /** RegularExpression Id. */
+ int STARASSIGN = 116;
+ /** RegularExpression Id. */
+ int SLASHASSIGN = 117;
+ /** RegularExpression Id. */
+ int ANDASSIGN = 118;
+ /** RegularExpression Id. */
+ int ORASSIGN = 119;
+ /** RegularExpression Id. */
+ int XORASSIGN = 120;
+ /** RegularExpression Id. */
+ int REMASSIGN = 121;
+ /** RegularExpression Id. */
+ int LSHIFTASSIGN = 122;
+ /** RegularExpression Id. */
+ int RSIGNEDSHIFTASSIGN = 123;
+ /** RegularExpression Id. */
+ int RUNSIGNEDSHIFTASSIGN = 124;
+ /** RegularExpression Id. */
+ int ELLIPSIS = 125;
+ /** RegularExpression Id. */
+ int ARROW = 126;
+ /** RegularExpression Id. */
+ int DOUBLECOLON = 127;
+ /** RegularExpression Id. */
+ int RUNSIGNEDSHIFT = 128;
+ /** RegularExpression Id. */
+ int RSIGNEDSHIFT = 129;
+ /** RegularExpression Id. */
+ int GT = 130;
+
+ /** Lexical state. */
+ int DEFAULT = 0;
+ /** Lexical state. */
+ int IN_JAVA_DOC_COMMENT = 1;
+ /** Lexical state. */
+ int IN_MULTI_LINE_COMMENT = 2;
+
+ /** Literal token values. */
+ String[] tokenImage = {
+ "<EOF>",
+ "\" \"",
+ "\"\\t\"",
+ "\"\\n\"",
+ "\"\\r\"",
+ "\"\\f\"",
+ "<SINGLE_LINE_COMMENT>",
+ "<token of kind 7>",
+ "\"/*\"",
+ "\"*/\"",
+ "\"*/\"",
+ "<token of kind 11>",
+ "\"abstract\"",
+ "\"assert\"",
+ "\"boolean\"",
+ "\"break\"",
+ "\"byte\"",
+ "\"case\"",
+ "\"catch\"",
+ "\"char\"",
+ "\"class\"",
+ "\"const\"",
+ "\"continue\"",
+ "\"default\"",
+ "\"do\"",
+ "\"double\"",
+ "\"else\"",
+ "\"enum\"",
+ "\"extends\"",
+ "\"false\"",
+ "\"final\"",
+ "\"finally\"",
+ "\"float\"",
+ "\"for\"",
+ "\"goto\"",
+ "\"if\"",
+ "\"implements\"",
+ "\"import\"",
+ "\"instanceof\"",
+ "\"int\"",
+ "\"interface\"",
+ "\"long\"",
+ "\"native\"",
+ "\"new\"",
+ "\"null\"",
+ "\"package\"",
+ "\"private\"",
+ "\"protected\"",
+ "\"public\"",
+ "\"return\"",
+ "\"short\"",
+ "\"static\"",
+ "\"strictfp\"",
+ "\"super\"",
+ "\"switch\"",
+ "\"synchronized\"",
+ "\"this\"",
+ "\"throw\"",
+ "\"throws\"",
+ "\"transient\"",
+ "\"true\"",
+ "\"try\"",
+ "\"void\"",
+ "\"volatile\"",
+ "\"while\"",
+ "<LONG_LITERAL>",
+ "<INTEGER_LITERAL>",
+ "<DECIMAL_LITERAL>",
+ "<HEX_LITERAL>",
+ "<OCTAL_LITERAL>",
+ "<BINARY_LITERAL>",
+ "<FLOATING_POINT_LITERAL>",
+ "<DECIMAL_FLOATING_POINT_LITERAL>",
+ "<DECIMAL_EXPONENT>",
+ "<HEXADECIMAL_FLOATING_POINT_LITERAL>",
+ "<HEXADECIMAL_EXPONENT>",
+ "<CHARACTER_LITERAL>",
+ "<STRING_LITERAL>",
+ "<IDENTIFIER>",
+ "<LETTER>",
+ "<PART_LETTER>",
+ "\"(\"",
+ "\")\"",
+ "\"{\"",
+ "\"}\"",
+ "\"[\"",
+ "\"]\"",
+ "\";\"",
+ "\",\"",
+ "\".\"",
+ "\"@\"",
+ "\"=\"",
+ "\"<\"",
+ "\"!\"",
+ "\"~\"",
+ "\"?\"",
+ "\":\"",
+ "\"==\"",
+ "\"<=\"",
+ "\">=\"",
+ "\"!=\"",
+ "\"||\"",
+ "\"&&\"",
+ "\"++\"",
+ "\"--\"",
+ "\"+\"",
+ "\"-\"",
+ "\"*\"",
+ "\"/\"",
+ "\"&\"",
+ "\"|\"",
+ "\"^\"",
+ "\"%\"",
+ "\"<<\"",
+ "\"+=\"",
+ "\"-=\"",
+ "\"*=\"",
+ "\"/=\"",
+ "\"&=\"",
+ "\"|=\"",
+ "\"^=\"",
+ "\"%=\"",
+ "\"<<=\"",
+ "\">>=\"",
+ "\">>>=\"",
+ "\"...\"",
+ "\"->\"",
+ "\"::\"",
+ "\">>>\"",
+ "\">>\"",
+ "\">\"",
+ "\"\\u001a\"",
+ "\"<>\"",
+ };
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParserTokenManager.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParserTokenManager.java
new file mode 100644
index 000000000..8c157641c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ASTParserTokenManager.java
@@ -0,0 +1,2559 @@
+/* Generated By:JavaCC: Do not edit this line. ASTParserTokenManager.java */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+import java.io.*;
+import java.util.*;
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.body.*;
+import com.github.javaparser.ast.comments.*;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.*;
+import com.github.javaparser.ast.type.*;
+
+/** Token Manager. */
+public class ASTParserTokenManager implements ASTParserConstants
+{
+
+ /** Debug output. */
+ public java.io.PrintStream debugStream = System.out;
+ /** Set debug output. */
+ public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1, long active2)
+{
+ switch (pos)
+ {
+ case 0:
+ if ((active0 & 0xfffffffffffff000L) != 0L || (active1 & 0x1L) != 0L)
+ {
+ jjmatchedKind = 78;
+ return 43;
+ }
+ if ((active0 & 0x100L) != 0L || (active1 & 0x20100000000000L) != 0L)
+ return 45;
+ if ((active1 & 0x2000000002000000L) != 0L)
+ return 1;
+ return -1;
+ case 1:
+ if ((active0 & 0x803000000L) != 0L)
+ return 43;
+ if ((active0 & 0xfffffff7fcfff000L) != 0L || (active1 & 0x1L) != 0L)
+ {
+ if (jjmatchedPos != 1)
+ {
+ jjmatchedKind = 78;
+ jjmatchedPos = 1;
+ }
+ return 43;
+ }
+ if ((active0 & 0x100L) != 0L)
+ return 50;
+ return -1;
+ case 2:
+ if ((active0 & 0x2000098200000000L) != 0L)
+ return 43;
+ if ((active0 & 0xdffff675fefff000L) != 0L || (active1 & 0x1L) != 0L)
+ {
+ if (jjmatchedPos != 2)
+ {
+ jjmatchedKind = 78;
+ jjmatchedPos = 2;
+ }
+ return 43;
+ }
+ return -1;
+ case 3:
+ if ((active0 & 0x8effe571f2f4f000L) != 0L || (active1 & 0x1L) != 0L)
+ {
+ jjmatchedKind = 78;
+ jjmatchedPos = 3;
+ return 43;
+ }
+ if ((active0 & 0x510012040c0b0000L) != 0L)
+ return 43;
+ return -1;
+ case 4:
+ if ((active0 & 0x88dbe57012c07000L) != 0L)
+ {
+ if (jjmatchedPos != 4)
+ {
+ jjmatchedKind = 78;
+ jjmatchedPos = 4;
+ }
+ return 43;
+ }
+ if ((active0 & 0x6240001e0348000L) != 0L || (active1 & 0x1L) != 0L)
+ return 43;
+ return -1;
+ case 5:
+ if ((active0 & 0x44b042002002000L) != 0L)
+ return 43;
+ if ((active0 & 0x8890e15090c05000L) != 0L)
+ {
+ jjmatchedKind = 78;
+ jjmatchedPos = 5;
+ return 43;
+ }
+ return -1;
+ case 6:
+ if ((active0 & 0x600090804000L) != 0L)
+ return 43;
+ if ((active0 & 0x8890815000401000L) != 0L)
+ {
+ jjmatchedKind = 78;
+ jjmatchedPos = 6;
+ return 43;
+ }
+ return -1;
+ case 7:
+ if ((active0 & 0x880815000000000L) != 0L)
+ {
+ jjmatchedKind = 78;
+ jjmatchedPos = 7;
+ return 43;
+ }
+ if ((active0 & 0x8010000000401000L) != 0L)
+ return 43;
+ return -1;
+ case 8:
+ if ((active0 & 0x800810000000000L) != 0L)
+ return 43;
+ if ((active0 & 0x80005000000000L) != 0L)
+ {
+ jjmatchedKind = 78;
+ jjmatchedPos = 8;
+ return 43;
+ }
+ return -1;
+ case 9:
+ if ((active0 & 0x5000000000L) != 0L)
+ return 43;
+ if ((active0 & 0x80000000000000L) != 0L)
+ {
+ jjmatchedKind = 78;
+ jjmatchedPos = 9;
+ return 43;
+ }
+ return -1;
+ case 10:
+ if ((active0 & 0x80000000000000L) != 0L)
+ {
+ jjmatchedKind = 78;
+ jjmatchedPos = 10;
+ return 43;
+ }
+ return -1;
+ default :
+ return -1;
+ }
+}
+private final int jjStartNfa_0(int pos, long active0, long active1, long active2)
+{
+ return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1, active2), pos + 1);
+}
+private int jjStopAtPos(int pos, int kind)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ return pos + 1;
+}
+private int jjMoveStringLiteralDfa0_0()
+{
+ switch(curChar)
+ {
+ case 26:
+ return jjStopAtPos(0, 131);
+ case 33:
+ jjmatchedKind = 93;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x1000000000L, 0x0L);
+ case 37:
+ jjmatchedKind = 112;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x200000000000000L, 0x0L);
+ case 38:
+ jjmatchedKind = 109;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x40004000000000L, 0x0L);
+ case 40:
+ return jjStopAtPos(0, 81);
+ case 41:
+ return jjStopAtPos(0, 82);
+ case 42:
+ jjmatchedKind = 107;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x10000000000000L, 0x0L);
+ case 43:
+ jjmatchedKind = 105;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x4008000000000L, 0x0L);
+ case 44:
+ return jjStopAtPos(0, 88);
+ case 45:
+ jjmatchedKind = 106;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x4008010000000000L, 0x0L);
+ case 46:
+ jjmatchedKind = 89;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000000000000L, 0x0L);
+ case 47:
+ jjmatchedKind = 108;
+ return jjMoveStringLiteralDfa1_0(0x100L, 0x20000000000000L, 0x0L);
+ case 58:
+ jjmatchedKind = 96;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x8000000000000000L, 0x0L);
+ case 59:
+ return jjStopAtPos(0, 87);
+ case 60:
+ jjmatchedKind = 92;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x402000400000000L, 0x10L);
+ case 61:
+ jjmatchedKind = 91;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x200000000L, 0x0L);
+ case 62:
+ jjmatchedKind = 130;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x1800000800000000L, 0x3L);
+ case 63:
+ return jjStopAtPos(0, 95);
+ case 64:
+ return jjStopAtPos(0, 90);
+ case 91:
+ return jjStopAtPos(0, 85);
+ case 93:
+ return jjStopAtPos(0, 86);
+ case 94:
+ jjmatchedKind = 111;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x100000000000000L, 0x0L);
+ case 97:
+ return jjMoveStringLiteralDfa1_0(0x3000L, 0x0L, 0x0L);
+ case 98:
+ return jjMoveStringLiteralDfa1_0(0x1c000L, 0x0L, 0x0L);
+ case 99:
+ return jjMoveStringLiteralDfa1_0(0x7e0000L, 0x0L, 0x0L);
+ case 100:
+ return jjMoveStringLiteralDfa1_0(0x3800000L, 0x0L, 0x0L);
+ case 101:
+ return jjMoveStringLiteralDfa1_0(0x1c000000L, 0x0L, 0x0L);
+ case 102:
+ return jjMoveStringLiteralDfa1_0(0x3e0000000L, 0x0L, 0x0L);
+ case 103:
+ return jjMoveStringLiteralDfa1_0(0x400000000L, 0x0L, 0x0L);
+ case 105:
+ return jjMoveStringLiteralDfa1_0(0x1f800000000L, 0x0L, 0x0L);
+ case 108:
+ return jjMoveStringLiteralDfa1_0(0x20000000000L, 0x0L, 0x0L);
+ case 110:
+ return jjMoveStringLiteralDfa1_0(0x1c0000000000L, 0x0L, 0x0L);
+ case 112:
+ return jjMoveStringLiteralDfa1_0(0x1e00000000000L, 0x0L, 0x0L);
+ case 114:
+ return jjMoveStringLiteralDfa1_0(0x2000000000000L, 0x0L, 0x0L);
+ case 115:
+ return jjMoveStringLiteralDfa1_0(0xfc000000000000L, 0x0L, 0x0L);
+ case 116:
+ return jjMoveStringLiteralDfa1_0(0x3f00000000000000L, 0x0L, 0x0L);
+ case 118:
+ return jjMoveStringLiteralDfa1_0(0xc000000000000000L, 0x0L, 0x0L);
+ case 119:
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x1L, 0x0L);
+ case 123:
+ return jjStopAtPos(0, 83);
+ case 124:
+ jjmatchedKind = 110;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x80002000000000L, 0x0L);
+ case 125:
+ return jjStopAtPos(0, 84);
+ case 126:
+ return jjStopAtPos(0, 94);
+ default :
+ return jjMoveNfa_0(0, 0);
+ }
+}
+private int jjMoveStringLiteralDfa1_0(long active0, long active1, long active2)
+{
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(0, active0, active1, active2);
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 38:
+ if ((active1 & 0x4000000000L) != 0L)
+ return jjStopAtPos(1, 102);
+ break;
+ case 42:
+ if ((active0 & 0x100L) != 0L)
+ return jjStartNfaWithStates_0(1, 8, 50);
+ break;
+ case 43:
+ if ((active1 & 0x8000000000L) != 0L)
+ return jjStopAtPos(1, 103);
+ break;
+ case 45:
+ if ((active1 & 0x10000000000L) != 0L)
+ return jjStopAtPos(1, 104);
+ break;
+ case 46:
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x2000000000000000L, active2, 0L);
+ case 58:
+ if ((active1 & 0x8000000000000000L) != 0L)
+ return jjStopAtPos(1, 127);
+ break;
+ case 60:
+ if ((active1 & 0x2000000000000L) != 0L)
+ {
+ jjmatchedKind = 113;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x400000000000000L, active2, 0L);
+ case 61:
+ if ((active1 & 0x200000000L) != 0L)
+ return jjStopAtPos(1, 97);
+ else if ((active1 & 0x400000000L) != 0L)
+ return jjStopAtPos(1, 98);
+ else if ((active1 & 0x800000000L) != 0L)
+ return jjStopAtPos(1, 99);
+ else if ((active1 & 0x1000000000L) != 0L)
+ return jjStopAtPos(1, 100);
+ else if ((active1 & 0x4000000000000L) != 0L)
+ return jjStopAtPos(1, 114);
+ else if ((active1 & 0x8000000000000L) != 0L)
+ return jjStopAtPos(1, 115);
+ else if ((active1 & 0x10000000000000L) != 0L)
+ return jjStopAtPos(1, 116);
+ else if ((active1 & 0x20000000000000L) != 0L)
+ return jjStopAtPos(1, 117);
+ else if ((active1 & 0x40000000000000L) != 0L)
+ return jjStopAtPos(1, 118);
+ else if ((active1 & 0x80000000000000L) != 0L)
+ return jjStopAtPos(1, 119);
+ else if ((active1 & 0x100000000000000L) != 0L)
+ return jjStopAtPos(1, 120);
+ else if ((active1 & 0x200000000000000L) != 0L)
+ return jjStopAtPos(1, 121);
+ break;
+ case 62:
+ if ((active1 & 0x4000000000000000L) != 0L)
+ return jjStopAtPos(1, 126);
+ else if ((active2 & 0x2L) != 0L)
+ {
+ jjmatchedKind = 129;
+ jjmatchedPos = 1;
+ }
+ else if ((active2 & 0x10L) != 0L)
+ return jjStopAtPos(1, 132);
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x1800000000000000L, active2, 0x1L);
+ case 97:
+ return jjMoveStringLiteralDfa2_0(active0, 0x240020060000L, active1, 0L, active2, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa2_0(active0, 0x1000L, active1, 0L, active2, 0L);
+ case 101:
+ return jjMoveStringLiteralDfa2_0(active0, 0x2080000800000L, active1, 0L, active2, 0L);
+ case 102:
+ if ((active0 & 0x800000000L) != 0L)
+ return jjStartNfaWithStates_0(1, 35, 43);
+ break;
+ case 104:
+ return jjMoveStringLiteralDfa2_0(active0, 0x704000000080000L, active1, 0x1L, active2, 0L);
+ case 105:
+ return jjMoveStringLiteralDfa2_0(active0, 0xc0000000L, active1, 0L, active2, 0L);
+ case 108:
+ return jjMoveStringLiteralDfa2_0(active0, 0x104100000L, active1, 0L, active2, 0L);
+ case 109:
+ return jjMoveStringLiteralDfa2_0(active0, 0x3000000000L, active1, 0L, active2, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa2_0(active0, 0x1c008000000L, active1, 0L, active2, 0L);
+ case 111:
+ if ((active0 & 0x1000000L) != 0L)
+ {
+ jjmatchedKind = 24;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0xc000020602604000L, active1, 0L, active2, 0L);
+ case 114:
+ return jjMoveStringLiteralDfa2_0(active0, 0x3800c00000008000L, active1, 0L, active2, 0L);
+ case 115:
+ return jjMoveStringLiteralDfa2_0(active0, 0x2000L, active1, 0L, active2, 0L);
+ case 116:
+ return jjMoveStringLiteralDfa2_0(active0, 0x18000000000000L, active1, 0L, active2, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa2_0(active0, 0x21100000000000L, active1, 0L, active2, 0L);
+ case 119:
+ return jjMoveStringLiteralDfa2_0(active0, 0x40000000000000L, active1, 0L, active2, 0L);
+ case 120:
+ return jjMoveStringLiteralDfa2_0(active0, 0x10000000L, active1, 0L, active2, 0L);
+ case 121:
+ return jjMoveStringLiteralDfa2_0(active0, 0x80000000010000L, active1, 0L, active2, 0L);
+ case 124:
+ if ((active1 & 0x2000000000L) != 0L)
+ return jjStopAtPos(1, 101);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(0, active0, active1, active2);
+}
+private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1, long old2, long active2)
+{
+ if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
+ return jjStartNfa_0(0, old0, old1, old2);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(1, active0, active1, active2);
+ return 2;
+ }
+ switch(curChar)
+ {
+ case 46:
+ if ((active1 & 0x2000000000000000L) != 0L)
+ return jjStopAtPos(2, 125);
+ break;
+ case 61:
+ if ((active1 & 0x400000000000000L) != 0L)
+ return jjStopAtPos(2, 122);
+ else if ((active1 & 0x800000000000000L) != 0L)
+ return jjStopAtPos(2, 123);
+ break;
+ case 62:
+ if ((active2 & 0x1L) != 0L)
+ {
+ jjmatchedKind = 128;
+ jjmatchedPos = 2;
+ }
+ return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1000000000000000L, active2, 0L);
+ case 97:
+ return jjMoveStringLiteralDfa3_0(active0, 0x808000000180000L, active1, 0L, active2, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000L, active1, 0L, active2, 0L);
+ case 99:
+ return jjMoveStringLiteralDfa3_0(active0, 0x200000000000L, active1, 0L, active2, 0L);
+ case 101:
+ return jjMoveStringLiteralDfa3_0(active0, 0x8000L, active1, 0L, active2, 0L);
+ case 102:
+ return jjMoveStringLiteralDfa3_0(active0, 0x800000L, active1, 0L, active2, 0L);
+ case 105:
+ return jjMoveStringLiteralDfa3_0(active0, 0x4140400000000000L, active1, 0x1L, active2, 0L);
+ case 108:
+ return jjMoveStringLiteralDfa3_0(active0, 0x8000100020000000L, active1, 0L, active2, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa3_0(active0, 0x800200c0600000L, active1, 0L, active2, 0L);
+ case 111:
+ return jjMoveStringLiteralDfa3_0(active0, 0x4800100004000L, active1, 0L, active2, 0L);
+ case 112:
+ return jjMoveStringLiteralDfa3_0(active0, 0x20003000000000L, active1, 0L, active2, 0L);
+ case 114:
+ if ((active0 & 0x200000000L) != 0L)
+ return jjStartNfaWithStates_0(2, 33, 43);
+ return jjMoveStringLiteralDfa3_0(active0, 0x610000000000000L, active1, 0L, active2, 0L);
+ case 115:
+ return jjMoveStringLiteralDfa3_0(active0, 0x4004023000L, active1, 0L, active2, 0L);
+ case 116:
+ if ((active0 & 0x8000000000L) != 0L)
+ {
+ jjmatchedKind = 39;
+ jjmatchedPos = 2;
+ }
+ return jjMoveStringLiteralDfa3_0(active0, 0x2050410050000L, active1, 0L, active2, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa3_0(active0, 0x100000000a000000L, active1, 0L, active2, 0L);
+ case 119:
+ if ((active0 & 0x80000000000L) != 0L)
+ return jjStartNfaWithStates_0(2, 43, 43);
+ break;
+ case 121:
+ if ((active0 & 0x2000000000000000L) != 0L)
+ return jjStartNfaWithStates_0(2, 61, 43);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(1, active0, active1, active2);
+}
+private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1, long old2, long active2)
+{
+ if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
+ return jjStartNfa_0(1, old0, old1, old2);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(2, active0, active1, 0L);
+ return 3;
+ }
+ switch(curChar)
+ {
+ case 61:
+ if ((active1 & 0x1000000000000000L) != 0L)
+ return jjStopAtPos(3, 124);
+ break;
+ case 97:
+ return jjMoveStringLiteralDfa4_0(active0, 0x80000001c0808000L, active1, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa4_0(active0, 0x2000000L, active1, 0L);
+ case 99:
+ return jjMoveStringLiteralDfa4_0(active0, 0x80000000040000L, active1, 0L);
+ case 100:
+ if ((active0 & 0x4000000000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 62, 43);
+ break;
+ case 101:
+ if ((active0 & 0x10000L) != 0L)
+ return jjStartNfaWithStates_0(3, 16, 43);
+ else if ((active0 & 0x20000L) != 0L)
+ return jjStartNfaWithStates_0(3, 17, 43);
+ else if ((active0 & 0x4000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 26, 43);
+ else if ((active0 & 0x1000000000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 60, 43);
+ return jjMoveStringLiteralDfa4_0(active0, 0x20010010002000L, active1, 0L);
+ case 103:
+ if ((active0 & 0x20000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 41, 43);
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa4_0(active0, 0x10040000000000L, active1, 0L);
+ case 107:
+ return jjMoveStringLiteralDfa4_0(active0, 0x200000000000L, active1, 0L);
+ case 108:
+ if ((active0 & 0x100000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 44, 43);
+ return jjMoveStringLiteralDfa4_0(active0, 0x1001000004000L, active1, 0x1L);
+ case 109:
+ if ((active0 & 0x8000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 27, 43);
+ break;
+ case 110:
+ return jjMoveStringLiteralDfa4_0(active0, 0x800000000000000L, active1, 0L);
+ case 111:
+ if ((active0 & 0x400000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 34, 43);
+ return jjMoveStringLiteralDfa4_0(active0, 0x600002000000000L, active1, 0L);
+ case 114:
+ if ((active0 & 0x80000L) != 0L)
+ return jjStartNfaWithStates_0(3, 19, 43);
+ return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000L, active1, 0L);
+ case 115:
+ if ((active0 & 0x100000000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 56, 43);
+ return jjMoveStringLiteralDfa4_0(active0, 0x20300000L, active1, 0L);
+ case 116:
+ return jjMoveStringLiteralDfa4_0(active0, 0x48804000401000L, active1, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa4_0(active0, 0x2000000000000L, active1, 0L);
+ case 118:
+ return jjMoveStringLiteralDfa4_0(active0, 0x400000000000L, active1, 0L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(2, active0, active1, 0L);
+}
+private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1)
+{
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(2, old0, old1, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(3, active0, active1, 0L);
+ return 4;
+ }
+ switch(curChar)
+ {
+ case 97:
+ return jjMoveStringLiteralDfa5_0(active0, 0x604000000000L, active1, 0L);
+ case 99:
+ return jjMoveStringLiteralDfa5_0(active0, 0x50000000000000L, active1, 0L);
+ case 101:
+ if ((active0 & 0x20000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 29, 43);
+ else if ((active1 & 0x1L) != 0L)
+ return jjStartNfaWithStates_0(4, 64, 43);
+ return jjMoveStringLiteralDfa5_0(active0, 0x801000004000L, active1, 0L);
+ case 104:
+ if ((active0 & 0x40000L) != 0L)
+ return jjStartNfaWithStates_0(4, 18, 43);
+ return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0L);
+ case 105:
+ return jjMoveStringLiteralDfa5_0(active0, 0x9000000400000L, active1, 0L);
+ case 107:
+ if ((active0 & 0x8000L) != 0L)
+ return jjStartNfaWithStates_0(4, 15, 43);
+ break;
+ case 108:
+ if ((active0 & 0x40000000L) != 0L)
+ {
+ jjmatchedKind = 30;
+ jjmatchedPos = 4;
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x82000000L, active1, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa5_0(active0, 0x10000000L, active1, 0L);
+ case 114:
+ if ((active0 & 0x20000000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 53, 43);
+ return jjMoveStringLiteralDfa5_0(active0, 0x2012000003000L, active1, 0L);
+ case 115:
+ if ((active0 & 0x100000L) != 0L)
+ return jjStartNfaWithStates_0(4, 20, 43);
+ return jjMoveStringLiteralDfa5_0(active0, 0x800000000000000L, active1, 0L);
+ case 116:
+ if ((active0 & 0x200000L) != 0L)
+ return jjStartNfaWithStates_0(4, 21, 43);
+ else if ((active0 & 0x100000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 32, 43);
+ else if ((active0 & 0x4000000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 50, 43);
+ return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa5_0(active0, 0x800000L, active1, 0L);
+ case 118:
+ return jjMoveStringLiteralDfa5_0(active0, 0x40000000000L, active1, 0L);
+ case 119:
+ if ((active0 & 0x200000000000000L) != 0L)
+ {
+ jjmatchedKind = 57;
+ jjmatchedPos = 4;
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x400000000000000L, active1, 0L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(3, active0, active1, 0L);
+}
+private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long active1)
+{
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(3, old0, old1, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(4, active0, 0L, 0L);
+ return 5;
+ }
+ switch(curChar)
+ {
+ case 97:
+ return jjMoveStringLiteralDfa6_0(active0, 0x5000L);
+ case 99:
+ if ((active0 & 0x1000000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 48, 43);
+ else if ((active0 & 0x8000000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 51, 43);
+ return jjMoveStringLiteralDfa6_0(active0, 0x800000000000L);
+ case 100:
+ return jjMoveStringLiteralDfa6_0(active0, 0x10000000L);
+ case 101:
+ if ((active0 & 0x2000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 25, 43);
+ else if ((active0 & 0x40000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 42, 43);
+ break;
+ case 102:
+ return jjMoveStringLiteralDfa6_0(active0, 0x10000000000L);
+ case 103:
+ return jjMoveStringLiteralDfa6_0(active0, 0x200000000000L);
+ case 104:
+ if ((active0 & 0x40000000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 54, 43);
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa6_0(active0, 0x8800000000000000L);
+ case 108:
+ return jjMoveStringLiteralDfa6_0(active0, 0x80800000L);
+ case 109:
+ return jjMoveStringLiteralDfa6_0(active0, 0x1000000000L);
+ case 110:
+ if ((active0 & 0x2000000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 49, 43);
+ return jjMoveStringLiteralDfa6_0(active0, 0x4000400000L);
+ case 114:
+ return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L);
+ case 115:
+ if ((active0 & 0x400000000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 58, 43);
+ break;
+ case 116:
+ if ((active0 & 0x2000L) != 0L)
+ return jjStartNfaWithStates_0(5, 13, 43);
+ else if ((active0 & 0x2000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 37, 43);
+ return jjMoveStringLiteralDfa6_0(active0, 0x10400000000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(4, active0, 0L, 0L);
+}
+private int jjMoveStringLiteralDfa6_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(4, old0, 0L, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(5, active0, 0L, 0L);
+ return 6;
+ }
+ switch(curChar)
+ {
+ case 97:
+ return jjMoveStringLiteralDfa7_0(active0, 0x10000000000L);
+ case 99:
+ return jjMoveStringLiteralDfa7_0(active0, 0x4000001000L);
+ case 101:
+ if ((active0 & 0x200000000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 45, 43);
+ else if ((active0 & 0x400000000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 46, 43);
+ return jjMoveStringLiteralDfa7_0(active0, 0x800001000000000L);
+ case 102:
+ return jjMoveStringLiteralDfa7_0(active0, 0x10000000000000L);
+ case 108:
+ return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000000L);
+ case 110:
+ if ((active0 & 0x4000L) != 0L)
+ return jjStartNfaWithStates_0(6, 14, 43);
+ break;
+ case 111:
+ return jjMoveStringLiteralDfa7_0(active0, 0x80000000000000L);
+ case 115:
+ if ((active0 & 0x10000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 28, 43);
+ break;
+ case 116:
+ if ((active0 & 0x800000L) != 0L)
+ return jjStartNfaWithStates_0(6, 23, 43);
+ return jjMoveStringLiteralDfa7_0(active0, 0x800000000000L);
+ case 117:
+ return jjMoveStringLiteralDfa7_0(active0, 0x400000L);
+ case 121:
+ if ((active0 & 0x80000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 31, 43);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(5, active0, 0L, 0L);
+}
+private int jjMoveStringLiteralDfa7_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(5, old0, 0L, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(6, active0, 0L, 0L);
+ return 7;
+ }
+ switch(curChar)
+ {
+ case 99:
+ return jjMoveStringLiteralDfa8_0(active0, 0x10000000000L);
+ case 101:
+ if ((active0 & 0x400000L) != 0L)
+ return jjStartNfaWithStates_0(7, 22, 43);
+ else if ((active0 & 0x8000000000000000L) != 0L)
+ return jjStartNfaWithStates_0(7, 63, 43);
+ return jjMoveStringLiteralDfa8_0(active0, 0x804000000000L);
+ case 110:
+ return jjMoveStringLiteralDfa8_0(active0, 0x880001000000000L);
+ case 112:
+ if ((active0 & 0x10000000000000L) != 0L)
+ return jjStartNfaWithStates_0(7, 52, 43);
+ break;
+ case 116:
+ if ((active0 & 0x1000L) != 0L)
+ return jjStartNfaWithStates_0(7, 12, 43);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(6, active0, 0L, 0L);
+}
+private int jjMoveStringLiteralDfa8_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(6, old0, 0L, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(7, active0, 0L, 0L);
+ return 8;
+ }
+ switch(curChar)
+ {
+ case 100:
+ if ((active0 & 0x800000000000L) != 0L)
+ return jjStartNfaWithStates_0(8, 47, 43);
+ break;
+ case 101:
+ if ((active0 & 0x10000000000L) != 0L)
+ return jjStartNfaWithStates_0(8, 40, 43);
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa9_0(active0, 0x80000000000000L);
+ case 111:
+ return jjMoveStringLiteralDfa9_0(active0, 0x4000000000L);
+ case 116:
+ if ((active0 & 0x800000000000000L) != 0L)
+ return jjStartNfaWithStates_0(8, 59, 43);
+ return jjMoveStringLiteralDfa9_0(active0, 0x1000000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(7, active0, 0L, 0L);
+}
+private int jjMoveStringLiteralDfa9_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(7, old0, 0L, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(8, active0, 0L, 0L);
+ return 9;
+ }
+ switch(curChar)
+ {
+ case 102:
+ if ((active0 & 0x4000000000L) != 0L)
+ return jjStartNfaWithStates_0(9, 38, 43);
+ break;
+ case 115:
+ if ((active0 & 0x1000000000L) != 0L)
+ return jjStartNfaWithStates_0(9, 36, 43);
+ break;
+ case 122:
+ return jjMoveStringLiteralDfa10_0(active0, 0x80000000000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(8, active0, 0L, 0L);
+}
+private int jjMoveStringLiteralDfa10_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(8, old0, 0L, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(9, active0, 0L, 0L);
+ return 10;
+ }
+ switch(curChar)
+ {
+ case 101:
+ return jjMoveStringLiteralDfa11_0(active0, 0x80000000000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(9, active0, 0L, 0L);
+}
+private int jjMoveStringLiteralDfa11_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(9, old0, 0L, 0L);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(10, active0, 0L, 0L);
+ return 11;
+ }
+ switch(curChar)
+ {
+ case 100:
+ if ((active0 & 0x80000000000000L) != 0L)
+ return jjStartNfaWithStates_0(11, 55, 43);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(10, active0, 0L, 0L);
+}
+private int jjStartNfaWithStates_0(int pos, int kind, int state)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return pos + 1; }
+ return jjMoveNfa_0(state, pos + 1);
+}
+static final long[] jjbitVec0 = {
+ 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec2 = {
+ 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec3 = {
+ 0xfff0000000200002L, 0xffffffffffffdfffL, 0xfffff00f7fffffffL, 0x12000000007fffffL
+};
+static final long[] jjbitVec4 = {
+ 0x0L, 0x0L, 0x420043c00000000L, 0xff7fffffff7fffffL
+};
+static final long[] jjbitVec5 = {
+ 0x7fffffffffffffL, 0xffffffffffff0000L, 0xffffffffffffffffL, 0x401f0003ffc3L
+};
+static final long[] jjbitVec6 = {
+ 0x0L, 0x400000000000000L, 0xfffffffbffffd740L, 0xfbfffffffff7fffL
+};
+static final long[] jjbitVec7 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffffffc03L, 0x33fffffffff7fffL
+};
+static final long[] jjbitVec8 = {
+ 0xfffe00000000ffffL, 0xfffffffe027fffffL, 0xffL, 0x707ffffff0000L
+};
+static final long[] jjbitVec9 = {
+ 0x7fffffe00000000L, 0xfffec000000007ffL, 0xffffffffffffffffL, 0x9c00c060002fffffL
+};
+static final long[] jjbitVec10 = {
+ 0xfffffffd0000L, 0xe000L, 0x2003fffffffffL, 0x0L
+};
+static final long[] jjbitVec11 = {
+ 0x23fffffffffffff0L, 0x3ff010000L, 0x23c5fdfffff99fe0L, 0xf0003b0000000L
+};
+static final long[] jjbitVec12 = {
+ 0x36dfdfffff987e0L, 0x1c00005e000000L, 0x23edfdfffffbbfe0L, 0x2000300010000L
+};
+static final long[] jjbitVec13 = {
+ 0x23edfdfffff99fe0L, 0x20003b0000000L, 0x3bfc718d63dc7e8L, 0x200000000000000L
+};
+static final long[] jjbitVec14 = {
+ 0x3effdfffffddfe0L, 0x300000000L, 0x23effdfffffddfe0L, 0x340000000L
+};
+static final long[] jjbitVec15 = {
+ 0x3fffdfffffddfe0L, 0x300000000L, 0x2ffbfffffc7fffe0L, 0x7fL
+};
+static final long[] jjbitVec16 = {
+ 0x800dfffffffffffeL, 0x7fL, 0x200decaefef02596L, 0x3000005fL
+};
+static final long[] jjbitVec17 = {
+ 0x1L, 0x7fffffffeffL, 0xf00L, 0x0L
+};
+static final long[] jjbitVec18 = {
+ 0x6fbffffffffL, 0x3f0000L, 0xffffffff00000000L, 0x1ffffffffff003fL
+};
+static final long[] jjbitVec19 = {
+ 0xffffffffffffffffL, 0xffffffff83ffffffL, 0xffffff07ffffffffL, 0x3ffffffffffffffL
+};
+static final long[] jjbitVec20 = {
+ 0xffffffffffffff7fL, 0xffffffff3d7f3d7fL, 0x7f3d7fffffff3d7fL, 0xffff7fffff7f7f3dL
+};
+static final long[] jjbitVec21 = {
+ 0xffffffff7f3d7fffL, 0x7ffff7fL, 0xffffffff00000000L, 0x1fffffffffffffL
+};
+static final long[] jjbitVec22 = {
+ 0xffffffffffffffffL, 0x7f9fffffffffffL, 0xffffffff07fffffeL, 0x1c7ffffffffffL
+};
+static final long[] jjbitVec23 = {
+ 0x3ffff0003dfffL, 0x1dfff0003ffffL, 0xfffffffffffffL, 0x18800000L
+};
+static final long[] jjbitVec24 = {
+ 0xffffffff00000000L, 0xffffffffffffffL, 0x1ffffffffffL, 0x0L
+};
+static final long[] jjbitVec25 = {
+ 0x1fffffffL, 0x1f3fffffff0000L, 0x0L, 0x0L
+};
+static final long[] jjbitVec26 = {
+ 0xffffffffffffffffL, 0xfffffffffffL, 0x0L, 0x0L
+};
+static final long[] jjbitVec27 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffff0fffffffL, 0x3ffffffffffffffL
+};
+static final long[] jjbitVec28 = {
+ 0xffffffff3f3fffffL, 0x3fffffffaaff3f3fL, 0x5fdfffffffffffffL, 0x1fdc1fff0fcf1fdcL
+};
+static final long[] jjbitVec29 = {
+ 0x8000000000000000L, 0x8002000000100001L, 0x3ffff00000000L, 0x0L
+};
+static final long[] jjbitVec30 = {
+ 0xe3fbbd503e2ffc84L, 0xffffffff000003e0L, 0xfL, 0x0L
+};
+static final long[] jjbitVec31 = {
+ 0x1f3e03fe000000e0L, 0xfffffffffffffffeL, 0xfffffffee07fffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec32 = {
+ 0xfffe1fffffffffe0L, 0xffffffffffffffffL, 0xffffff00007fffL, 0xffff000000000000L
+};
+static final long[] jjbitVec33 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fffffffffffffL, 0x0L
+};
+static final long[] jjbitVec34 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fffffffffL, 0x0L
+};
+static final long[] jjbitVec35 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x1fffL, 0x0L
+};
+static final long[] jjbitVec36 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffL, 0x0L
+};
+static final long[] jjbitVec37 = {
+ 0x6L, 0x0L, 0x0L, 0x0L
+};
+static final long[] jjbitVec38 = {
+ 0xffff3fffffffffffL, 0x7ffffffffffL, 0x0L, 0x0L
+};
+static final long[] jjbitVec39 = {
+ 0x5f7ffdffa0f8007fL, 0xffffffffffffffdbL, 0x3ffffffffffffL, 0xfffffffffff80000L
+};
+static final long[] jjbitVec40 = {
+ 0x3fffffffffffffffL, 0xffffffffffff0000L, 0xfffffffffffcffffL, 0x1fff0000000000ffL
+};
+static final long[] jjbitVec41 = {
+ 0x18000000000000L, 0xffdf02000000e000L, 0xffffffffffffffffL, 0x1fffffffffffffffL
+};
+static final long[] jjbitVec42 = {
+ 0x87fffffe00000010L, 0xffffffe007fffffeL, 0x7fffffffffffffffL, 0x631cfcfcfcL
+};
+static final long[] jjbitVec43 = {
+ 0x0L, 0x0L, 0x420243cffffffffL, 0xff7fffffff7fffffL
+};
+static final long[] jjbitVec44 = {
+ 0xffffffffffffffffL, 0x400ffffe0ffffffL, 0xfffffffbffffd740L, 0xfbfffffffff7fffL
+};
+static final long[] jjbitVec45 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffffffc7bL, 0x33fffffffff7fffL
+};
+static final long[] jjbitVec46 = {
+ 0xfffe00000000ffffL, 0xfffffffe027fffffL, 0xbbfffffbfffe00ffL, 0x707ffffff0016L
+};
+static final long[] jjbitVec47 = {
+ 0x7fffffe003f000fL, 0xffffc3ff01ffffffL, 0xffffffffffffffffL, 0x9ffffdffbfefffffL
+};
+static final long[] jjbitVec48 = {
+ 0xffffffffffff8000L, 0xe7ffL, 0x3ffffffffffffL, 0x0L
+};
+static final long[] jjbitVec49 = {
+ 0xf3fffffffffffffeL, 0xffcfff1f3fffL, 0xf3c5fdfffff99feeL, 0xfffcfb080399fL
+};
+static final long[] jjbitVec50 = {
+ 0xd36dfdfffff987eeL, 0x1fffc05e003987L, 0xf3edfdfffffbbfeeL, 0x2ffcf00013bbfL
+};
+static final long[] jjbitVec51 = {
+ 0xf3edfdfffff99feeL, 0x2ffc3b0c0398fL, 0xc3bfc718d63dc7ecL, 0x200ff8000803dc7L
+};
+static final long[] jjbitVec52 = {
+ 0xc3effdfffffddfeeL, 0xffc300603ddfL, 0xf3effdfffffddfecL, 0xffc340603ddfL
+};
+static final long[] jjbitVec53 = {
+ 0xc3fffdfffffddfecL, 0xffc300803dcfL, 0x2ffbfffffc7fffecL, 0xc0000ff5f847fL
+};
+static final long[] jjbitVec54 = {
+ 0x87fffffffffffffeL, 0x3ff7fffL, 0x3bffecaefef02596L, 0x33ff3f5fL
+};
+static final long[] jjbitVec55 = {
+ 0xc2a003ff03000001L, 0xfffe07fffffffeffL, 0x1ffffffffeff0fdfL, 0x40L
+};
+static final long[] jjbitVec56 = {
+ 0x3c7f6fbffffffffL, 0x3ff03ffL, 0xffffffff00000000L, 0x1ffffffffff003fL
+};
+static final long[] jjbitVec57 = {
+ 0xffffffff7f3d7fffL, 0x3fe0007ffff7fL, 0xffffffff00000000L, 0x1fffffffffffffL
+};
+static final long[] jjbitVec58 = {
+ 0x1fffff001fdfffL, 0xddfff000fffffL, 0xffffffffffffffffL, 0x3ff388fffffL
+};
+static final long[] jjbitVec59 = {
+ 0xffffffff03ff3800L, 0xffffffffffffffL, 0x3ffffffffffL, 0x0L
+};
+static final long[] jjbitVec60 = {
+ 0xfff0fff1fffffffL, 0x1f3fffffffffc0L, 0x0L, 0x0L
+};
+static final long[] jjbitVec61 = {
+ 0x80007c000000f000L, 0x8002fc0f00100001L, 0x3ffff00000000L, 0x7e21fff0000L
+};
+static final long[] jjbitVec62 = {
+ 0x1f3efffe000000e0L, 0xfffffffffffffffeL, 0xfffffffee67fffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec63 = {
+ 0x10000000000006L, 0x0L, 0x0L, 0x0L
+};
+static final long[] jjbitVec64 = {
+ 0x3L, 0x0L, 0x0L, 0x0L
+};
+static final long[] jjbitVec65 = {
+ 0x0L, 0x800000000000000L, 0x0L, 0x0L
+};
+static final long[] jjbitVec66 = {
+ 0x5f7ffdffe0f8007fL, 0xffffffffffffffdbL, 0x3ffffffffffffL, 0xfffffffffff80000L
+};
+static final long[] jjbitVec67 = {
+ 0x18000f0000ffffL, 0xffdf02000000e000L, 0xffffffffffffffffL, 0x9fffffffffffffffL
+};
+static final long[] jjbitVec68 = {
+ 0x87fffffe03ff0010L, 0xffffffe007fffffeL, 0x7fffffffffffffffL, 0xe0000631cfcfcfcL
+};
+private int jjMoveNfa_0(int startState, int curPos)
+{
+ int startsAt = 0;
+ jjnewStateCnt = 130;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int kind = 0x7fffffff;
+ for (;;)
+ {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64)
+ {
+ long l = 1L << curChar;
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 45:
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 50;
+ else if (curChar == 47)
+ {
+ if (kind > 6)
+ kind = 6;
+ jjCheckNAddStates(0, 2);
+ }
+ break;
+ case 0:
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 66)
+ kind = 66;
+ jjCheckNAddStates(3, 17);
+ }
+ else if (curChar == 47)
+ jjAddStates(18, 19);
+ else if (curChar == 36)
+ {
+ if (kind > 78)
+ kind = 78;
+ jjCheckNAdd(43);
+ }
+ else if (curChar == 34)
+ jjCheckNAddStates(20, 23);
+ else if (curChar == 39)
+ jjAddStates(24, 26);
+ else if (curChar == 46)
+ jjCheckNAdd(1);
+ if (curChar == 48)
+ jjAddStates(27, 34);
+ break;
+ case 1:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(35, 38);
+ break;
+ case 2:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(2, 3);
+ break;
+ case 3:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(39, 41);
+ break;
+ case 5:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(6);
+ break;
+ case 6:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(42, 44);
+ break;
+ case 7:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(7, 8);
+ break;
+ case 8:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddTwoStates(6, 9);
+ break;
+ case 10:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(45, 48);
+ break;
+ case 11:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(49, 53);
+ break;
+ case 12:
+ if (curChar == 39)
+ jjAddStates(24, 26);
+ break;
+ case 13:
+ if ((0xffffff7fffffdbffL & l) != 0L)
+ jjCheckNAdd(14);
+ break;
+ case 14:
+ if (curChar == 39 && kind > 76)
+ kind = 76;
+ break;
+ case 16:
+ if ((0x8400000000L & l) != 0L)
+ jjCheckNAdd(14);
+ break;
+ case 17:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(18, 14);
+ break;
+ case 18:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAdd(14);
+ break;
+ case 19:
+ if ((0xf000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 20;
+ break;
+ case 20:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAdd(18);
+ break;
+ case 22:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 23;
+ break;
+ case 23:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 24;
+ break;
+ case 24:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 25;
+ break;
+ case 25:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAdd(14);
+ break;
+ case 27:
+ if (curChar == 34)
+ jjCheckNAddStates(20, 23);
+ break;
+ case 28:
+ if ((0xfffffffbffffdbffL & l) != 0L)
+ jjCheckNAddStates(20, 23);
+ break;
+ case 30:
+ if ((0x8400000000L & l) != 0L)
+ jjCheckNAddStates(20, 23);
+ break;
+ case 32:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 33;
+ break;
+ case 33:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 34;
+ break;
+ case 34:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 35;
+ break;
+ case 35:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(20, 23);
+ break;
+ case 37:
+ if (curChar == 34 && kind > 77)
+ kind = 77;
+ break;
+ case 38:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAddStates(54, 58);
+ break;
+ case 39:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAddStates(20, 23);
+ break;
+ case 40:
+ if ((0xf000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 41;
+ break;
+ case 41:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAdd(39);
+ break;
+ case 42:
+ if (curChar != 36)
+ break;
+ if (kind > 78)
+ kind = 78;
+ jjCheckNAdd(43);
+ break;
+ case 43:
+ if ((0x3ff00100fffc1ffL & l) == 0L)
+ break;
+ if (kind > 78)
+ kind = 78;
+ jjCheckNAdd(43);
+ break;
+ case 44:
+ if (curChar == 47)
+ jjAddStates(18, 19);
+ break;
+ case 46:
+ if ((0xffffffffffffdbffL & l) == 0L)
+ break;
+ if (kind > 6)
+ kind = 6;
+ jjCheckNAddStates(0, 2);
+ break;
+ case 47:
+ if ((0x2400L & l) != 0L && kind > 6)
+ kind = 6;
+ break;
+ case 48:
+ if (curChar == 10 && kind > 6)
+ kind = 6;
+ break;
+ case 49:
+ if (curChar == 13)
+ jjstateSet[jjnewStateCnt++] = 48;
+ break;
+ case 50:
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 51;
+ break;
+ case 51:
+ if ((0xffff7fffffffffffL & l) != 0L && kind > 7)
+ kind = 7;
+ break;
+ case 52:
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 50;
+ break;
+ case 53:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 66)
+ kind = 66;
+ jjCheckNAddStates(3, 17);
+ break;
+ case 54:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(54, 55);
+ break;
+ case 55:
+ case 98:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAdd(56);
+ break;
+ case 57:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(57, 58);
+ break;
+ case 58:
+ case 109:
+ if ((0x3ff000000000000L & l) != 0L && kind > 66)
+ kind = 66;
+ break;
+ case 59:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(59, 60);
+ break;
+ case 60:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(59, 61);
+ break;
+ case 61:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(62, 65);
+ break;
+ case 63:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(64);
+ break;
+ case 64:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(66, 68);
+ break;
+ case 65:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(65, 66);
+ break;
+ case 66:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(64, 9);
+ break;
+ case 67:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(69, 72);
+ break;
+ case 68:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(73, 77);
+ break;
+ case 69:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(69, 70);
+ break;
+ case 70:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(71, 72);
+ break;
+ case 71:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(78, 80);
+ break;
+ case 73:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(74);
+ break;
+ case 74:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(81, 83);
+ break;
+ case 75:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(75, 76);
+ break;
+ case 76:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddTwoStates(74, 9);
+ break;
+ case 77:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(84, 87);
+ break;
+ case 78:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(88, 91);
+ break;
+ case 79:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(79, 80);
+ break;
+ case 80:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(81, 82);
+ break;
+ case 81:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(92, 94);
+ break;
+ case 82:
+ if (curChar != 46)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(95, 97);
+ break;
+ case 83:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(98, 101);
+ break;
+ case 84:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(84, 85);
+ break;
+ case 85:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(95, 97);
+ break;
+ case 87:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(88);
+ break;
+ case 88:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(102, 104);
+ break;
+ case 89:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(89, 90);
+ break;
+ case 90:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddTwoStates(88, 9);
+ break;
+ case 91:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(105, 108);
+ break;
+ case 92:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(109, 113);
+ break;
+ case 93:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(114, 117);
+ break;
+ case 94:
+ if (curChar == 48)
+ jjAddStates(27, 34);
+ break;
+ case 96:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(118, 120);
+ break;
+ case 97:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(97, 98);
+ break;
+ case 99:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAddStates(121, 123);
+ break;
+ case 100:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(100, 101);
+ break;
+ case 101:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAdd(56);
+ break;
+ case 103:
+ if ((0x3000000000000L & l) != 0L)
+ jjCheckNAddStates(124, 126);
+ break;
+ case 104:
+ if ((0x3000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(104, 105);
+ break;
+ case 105:
+ if ((0x3000000000000L & l) != 0L)
+ jjCheckNAdd(56);
+ break;
+ case 107:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 66)
+ kind = 66;
+ jjCheckNAddTwoStates(108, 109);
+ break;
+ case 108:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(108, 109);
+ break;
+ case 110:
+ if ((0xff000000000000L & l) == 0L)
+ break;
+ if (kind > 66)
+ kind = 66;
+ jjCheckNAddTwoStates(111, 112);
+ break;
+ case 111:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(111, 112);
+ break;
+ case 112:
+ if ((0xff000000000000L & l) != 0L && kind > 66)
+ kind = 66;
+ break;
+ case 114:
+ if ((0x3000000000000L & l) == 0L)
+ break;
+ if (kind > 66)
+ kind = 66;
+ jjCheckNAddTwoStates(115, 116);
+ break;
+ case 115:
+ if ((0x3000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(115, 116);
+ break;
+ case 116:
+ if ((0x3000000000000L & l) != 0L && kind > 66)
+ kind = 66;
+ break;
+ case 118:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjAddStates(127, 128);
+ break;
+ case 119:
+ if (curChar == 46)
+ jjCheckNAdd(120);
+ break;
+ case 120:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(120, 121);
+ break;
+ case 122:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(123);
+ break;
+ case 123:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddTwoStates(123, 9);
+ break;
+ case 125:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(129, 131);
+ break;
+ case 126:
+ if (curChar == 46)
+ jjCheckNAdd(127);
+ break;
+ case 128:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(129);
+ break;
+ case 129:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddTwoStates(129, 9);
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else if (curChar < 128)
+ {
+ long l = 1L << (curChar & 077);
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 78)
+ kind = 78;
+ jjCheckNAdd(43);
+ break;
+ case 2:
+ if (curChar == 95)
+ jjAddStates(132, 133);
+ break;
+ case 4:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(134, 135);
+ break;
+ case 7:
+ if (curChar == 95)
+ jjAddStates(136, 137);
+ break;
+ case 9:
+ if ((0x5000000050L & l) != 0L && kind > 71)
+ kind = 71;
+ break;
+ case 13:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAdd(14);
+ break;
+ case 15:
+ if (curChar == 92)
+ jjAddStates(138, 140);
+ break;
+ case 16:
+ if ((0x14404410000000L & l) != 0L)
+ jjCheckNAdd(14);
+ break;
+ case 21:
+ if (curChar == 117)
+ jjstateSet[jjnewStateCnt++] = 22;
+ break;
+ case 22:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 23;
+ break;
+ case 23:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 24;
+ break;
+ case 24:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 25;
+ break;
+ case 25:
+ if ((0x7e0000007eL & l) != 0L)
+ jjCheckNAdd(14);
+ break;
+ case 26:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 21;
+ break;
+ case 28:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAddStates(20, 23);
+ break;
+ case 29:
+ if (curChar == 92)
+ jjAddStates(141, 143);
+ break;
+ case 30:
+ if ((0x14404410000000L & l) != 0L)
+ jjCheckNAddStates(20, 23);
+ break;
+ case 31:
+ if (curChar == 117)
+ jjstateSet[jjnewStateCnt++] = 32;
+ break;
+ case 32:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 33;
+ break;
+ case 33:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 34;
+ break;
+ case 34:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 35;
+ break;
+ case 35:
+ if ((0x7e0000007eL & l) != 0L)
+ jjCheckNAddStates(20, 23);
+ break;
+ case 36:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 31;
+ break;
+ case 43:
+ if ((0x87fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 78)
+ kind = 78;
+ jjCheckNAdd(43);
+ break;
+ case 46:
+ if (kind > 6)
+ kind = 6;
+ jjAddStates(0, 2);
+ break;
+ case 51:
+ if (kind > 7)
+ kind = 7;
+ break;
+ case 54:
+ if (curChar == 95)
+ jjAddStates(144, 145);
+ break;
+ case 56:
+ if ((0x100000001000L & l) != 0L && kind > 65)
+ kind = 65;
+ break;
+ case 57:
+ if (curChar == 95)
+ jjAddStates(146, 147);
+ break;
+ case 59:
+ if (curChar == 95)
+ jjAddStates(148, 149);
+ break;
+ case 62:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(150, 151);
+ break;
+ case 65:
+ if (curChar == 95)
+ jjAddStates(152, 153);
+ break;
+ case 69:
+ if (curChar == 95)
+ jjAddStates(154, 155);
+ break;
+ case 72:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(156, 157);
+ break;
+ case 75:
+ if (curChar == 95)
+ jjAddStates(158, 159);
+ break;
+ case 79:
+ if (curChar == 95)
+ jjAddStates(160, 161);
+ break;
+ case 84:
+ if (curChar == 95)
+ jjAddStates(162, 163);
+ break;
+ case 86:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(164, 165);
+ break;
+ case 89:
+ if (curChar == 95)
+ jjAddStates(166, 167);
+ break;
+ case 95:
+ if ((0x100000001000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 96;
+ break;
+ case 96:
+ if ((0x7e0000007eL & l) != 0L)
+ jjCheckNAddStates(118, 120);
+ break;
+ case 97:
+ if ((0x7e8000007eL & l) != 0L)
+ jjCheckNAddTwoStates(97, 98);
+ break;
+ case 98:
+ if ((0x7e0000007eL & l) != 0L)
+ jjCheckNAdd(56);
+ break;
+ case 100:
+ if (curChar == 95)
+ jjAddStates(168, 169);
+ break;
+ case 102:
+ if ((0x400000004L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 103;
+ break;
+ case 104:
+ if (curChar == 95)
+ jjAddStates(170, 171);
+ break;
+ case 106:
+ if ((0x100000001000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 107;
+ break;
+ case 107:
+ if ((0x7e0000007eL & l) == 0L)
+ break;
+ if (kind > 66)
+ kind = 66;
+ jjCheckNAddTwoStates(108, 109);
+ break;
+ case 108:
+ if ((0x7e8000007eL & l) != 0L)
+ jjCheckNAddTwoStates(108, 109);
+ break;
+ case 109:
+ if ((0x7e0000007eL & l) != 0L && kind > 66)
+ kind = 66;
+ break;
+ case 111:
+ if (curChar == 95)
+ jjAddStates(172, 173);
+ break;
+ case 113:
+ if ((0x400000004L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 114;
+ break;
+ case 115:
+ if (curChar == 95)
+ jjAddStates(174, 175);
+ break;
+ case 117:
+ if ((0x100000001000000L & l) != 0L)
+ jjCheckNAddTwoStates(118, 119);
+ break;
+ case 118:
+ if ((0x7e0000007eL & l) != 0L)
+ jjCheckNAddTwoStates(118, 119);
+ break;
+ case 120:
+ if ((0x7e0000007eL & l) != 0L)
+ jjAddStates(176, 177);
+ break;
+ case 121:
+ if ((0x1000000010000L & l) != 0L)
+ jjAddStates(178, 179);
+ break;
+ case 124:
+ if ((0x100000001000000L & l) != 0L)
+ jjCheckNAdd(125);
+ break;
+ case 125:
+ if ((0x7e0000007eL & l) != 0L)
+ jjCheckNAddStates(129, 131);
+ break;
+ case 127:
+ if ((0x1000000010000L & l) != 0L)
+ jjAddStates(180, 181);
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else
+ {
+ int hiByte = (int)(curChar >> 8);
+ int i1 = hiByte >> 6;
+ long l1 = 1L << (hiByte & 077);
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 78)
+ kind = 78;
+ jjCheckNAdd(43);
+ break;
+ case 13:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjstateSet[jjnewStateCnt++] = 14;
+ break;
+ case 28:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjAddStates(20, 23);
+ break;
+ case 43:
+ if (!jjCanMove_2(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 78)
+ kind = 78;
+ jjCheckNAdd(43);
+ break;
+ case 46:
+ if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 6)
+ kind = 6;
+ jjAddStates(0, 2);
+ break;
+ case 51:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 7)
+ kind = 7;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ if (kind != 0x7fffffff)
+ {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 130 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return curPos; }
+ }
+}
+private int jjMoveStringLiteralDfa0_2()
+{
+ switch(curChar)
+ {
+ case 42:
+ return jjMoveStringLiteralDfa1_2(0x400L);
+ default :
+ return 1;
+ }
+}
+private int jjMoveStringLiteralDfa1_2(long active0)
+{
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 47:
+ if ((active0 & 0x400L) != 0L)
+ return jjStopAtPos(1, 10);
+ break;
+ default :
+ return 2;
+ }
+ return 2;
+}
+private int jjMoveStringLiteralDfa0_1()
+{
+ switch(curChar)
+ {
+ case 42:
+ return jjMoveStringLiteralDfa1_1(0x200L);
+ default :
+ return 1;
+ }
+}
+private int jjMoveStringLiteralDfa1_1(long active0)
+{
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 47:
+ if ((active0 & 0x200L) != 0L)
+ return jjStopAtPos(1, 9);
+ break;
+ default :
+ return 2;
+ }
+ return 2;
+}
+static final int[] jjnextStates = {
+ 46, 47, 49, 54, 55, 56, 57, 58, 59, 62, 9, 69, 72, 79, 82, 93,
+ 78, 68, 45, 52, 28, 29, 36, 37, 13, 15, 26, 95, 99, 102, 106, 110,
+ 113, 117, 124, 2, 4, 9, 11, 1, 4, 9, 7, 9, 10, 6, 7, 9,
+ 10, 1, 2, 4, 9, 11, 28, 29, 39, 36, 37, 61, 62, 9, 59, 62,
+ 9, 68, 65, 9, 67, 64, 65, 9, 67, 61, 59, 62, 9, 68, 69, 72,
+ 78, 75, 9, 77, 74, 75, 9, 77, 71, 69, 72, 78, 79, 82, 93, 83,
+ 86, 9, 84, 86, 9, 92, 89, 9, 91, 88, 89, 9, 91, 83, 84, 86,
+ 9, 92, 81, 79, 82, 93, 97, 98, 56, 100, 101, 56, 104, 105, 56, 118,
+ 119, 125, 126, 127, 2, 3, 5, 6, 7, 8, 16, 17, 19, 30, 38, 40,
+ 54, 55, 57, 58, 59, 60, 63, 64, 65, 66, 69, 70, 73, 74, 75, 76,
+ 79, 80, 84, 85, 87, 88, 89, 90, 100, 101, 104, 105, 111, 112, 115, 116,
+ 120, 121, 122, 123, 128, 129,
+};
+private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec2[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec0[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec4[i2] & l2) != 0L);
+ case 2:
+ return ((jjbitVec5[i2] & l2) != 0L);
+ case 3:
+ return ((jjbitVec6[i2] & l2) != 0L);
+ case 4:
+ return ((jjbitVec7[i2] & l2) != 0L);
+ case 5:
+ return ((jjbitVec8[i2] & l2) != 0L);
+ case 6:
+ return ((jjbitVec9[i2] & l2) != 0L);
+ case 7:
+ return ((jjbitVec10[i2] & l2) != 0L);
+ case 9:
+ return ((jjbitVec11[i2] & l2) != 0L);
+ case 10:
+ return ((jjbitVec12[i2] & l2) != 0L);
+ case 11:
+ return ((jjbitVec13[i2] & l2) != 0L);
+ case 12:
+ return ((jjbitVec14[i2] & l2) != 0L);
+ case 13:
+ return ((jjbitVec15[i2] & l2) != 0L);
+ case 14:
+ return ((jjbitVec16[i2] & l2) != 0L);
+ case 15:
+ return ((jjbitVec17[i2] & l2) != 0L);
+ case 16:
+ return ((jjbitVec18[i2] & l2) != 0L);
+ case 17:
+ return ((jjbitVec19[i2] & l2) != 0L);
+ case 18:
+ return ((jjbitVec20[i2] & l2) != 0L);
+ case 19:
+ return ((jjbitVec21[i2] & l2) != 0L);
+ case 20:
+ return ((jjbitVec0[i2] & l2) != 0L);
+ case 22:
+ return ((jjbitVec22[i2] & l2) != 0L);
+ case 23:
+ return ((jjbitVec23[i2] & l2) != 0L);
+ case 24:
+ return ((jjbitVec24[i2] & l2) != 0L);
+ case 25:
+ return ((jjbitVec25[i2] & l2) != 0L);
+ case 29:
+ return ((jjbitVec26[i2] & l2) != 0L);
+ case 30:
+ return ((jjbitVec27[i2] & l2) != 0L);
+ case 31:
+ return ((jjbitVec28[i2] & l2) != 0L);
+ case 32:
+ return ((jjbitVec29[i2] & l2) != 0L);
+ case 33:
+ return ((jjbitVec30[i2] & l2) != 0L);
+ case 48:
+ return ((jjbitVec31[i2] & l2) != 0L);
+ case 49:
+ return ((jjbitVec32[i2] & l2) != 0L);
+ case 77:
+ return ((jjbitVec33[i2] & l2) != 0L);
+ case 159:
+ return ((jjbitVec34[i2] & l2) != 0L);
+ case 164:
+ return ((jjbitVec35[i2] & l2) != 0L);
+ case 215:
+ return ((jjbitVec36[i2] & l2) != 0L);
+ case 216:
+ return ((jjbitVec37[i2] & l2) != 0L);
+ case 250:
+ return ((jjbitVec38[i2] & l2) != 0L);
+ case 251:
+ return ((jjbitVec39[i2] & l2) != 0L);
+ case 253:
+ return ((jjbitVec40[i2] & l2) != 0L);
+ case 254:
+ return ((jjbitVec41[i2] & l2) != 0L);
+ case 255:
+ return ((jjbitVec42[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec3[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+private static final boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec43[i2] & l2) != 0L);
+ case 2:
+ return ((jjbitVec5[i2] & l2) != 0L);
+ case 3:
+ return ((jjbitVec44[i2] & l2) != 0L);
+ case 4:
+ return ((jjbitVec45[i2] & l2) != 0L);
+ case 5:
+ return ((jjbitVec46[i2] & l2) != 0L);
+ case 6:
+ return ((jjbitVec47[i2] & l2) != 0L);
+ case 7:
+ return ((jjbitVec48[i2] & l2) != 0L);
+ case 9:
+ return ((jjbitVec49[i2] & l2) != 0L);
+ case 10:
+ return ((jjbitVec50[i2] & l2) != 0L);
+ case 11:
+ return ((jjbitVec51[i2] & l2) != 0L);
+ case 12:
+ return ((jjbitVec52[i2] & l2) != 0L);
+ case 13:
+ return ((jjbitVec53[i2] & l2) != 0L);
+ case 14:
+ return ((jjbitVec54[i2] & l2) != 0L);
+ case 15:
+ return ((jjbitVec55[i2] & l2) != 0L);
+ case 16:
+ return ((jjbitVec56[i2] & l2) != 0L);
+ case 17:
+ return ((jjbitVec19[i2] & l2) != 0L);
+ case 18:
+ return ((jjbitVec20[i2] & l2) != 0L);
+ case 19:
+ return ((jjbitVec57[i2] & l2) != 0L);
+ case 20:
+ return ((jjbitVec0[i2] & l2) != 0L);
+ case 22:
+ return ((jjbitVec22[i2] & l2) != 0L);
+ case 23:
+ return ((jjbitVec58[i2] & l2) != 0L);
+ case 24:
+ return ((jjbitVec59[i2] & l2) != 0L);
+ case 25:
+ return ((jjbitVec60[i2] & l2) != 0L);
+ case 29:
+ return ((jjbitVec26[i2] & l2) != 0L);
+ case 30:
+ return ((jjbitVec27[i2] & l2) != 0L);
+ case 31:
+ return ((jjbitVec28[i2] & l2) != 0L);
+ case 32:
+ return ((jjbitVec61[i2] & l2) != 0L);
+ case 33:
+ return ((jjbitVec30[i2] & l2) != 0L);
+ case 48:
+ return ((jjbitVec62[i2] & l2) != 0L);
+ case 49:
+ return ((jjbitVec32[i2] & l2) != 0L);
+ case 77:
+ return ((jjbitVec33[i2] & l2) != 0L);
+ case 159:
+ return ((jjbitVec34[i2] & l2) != 0L);
+ case 164:
+ return ((jjbitVec35[i2] & l2) != 0L);
+ case 215:
+ return ((jjbitVec36[i2] & l2) != 0L);
+ case 216:
+ return ((jjbitVec63[i2] & l2) != 0L);
+ case 220:
+ return ((jjbitVec64[i2] & l2) != 0L);
+ case 221:
+ return ((jjbitVec65[i2] & l2) != 0L);
+ case 250:
+ return ((jjbitVec38[i2] & l2) != 0L);
+ case 251:
+ return ((jjbitVec66[i2] & l2) != 0L);
+ case 253:
+ return ((jjbitVec40[i2] & l2) != 0L);
+ case 254:
+ return ((jjbitVec67[i2] & l2) != 0L);
+ case 255:
+ return ((jjbitVec68[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec3[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+
+/** Token literal values. */
+public static final String[] jjstrLiteralImages = {
+"", null, null, null, null, null, null, null, null, null, null, null,
+"\141\142\163\164\162\141\143\164", "\141\163\163\145\162\164", "\142\157\157\154\145\141\156",
+"\142\162\145\141\153", "\142\171\164\145", "\143\141\163\145", "\143\141\164\143\150",
+"\143\150\141\162", "\143\154\141\163\163", "\143\157\156\163\164",
+"\143\157\156\164\151\156\165\145", "\144\145\146\141\165\154\164", "\144\157", "\144\157\165\142\154\145",
+"\145\154\163\145", "\145\156\165\155", "\145\170\164\145\156\144\163", "\146\141\154\163\145",
+"\146\151\156\141\154", "\146\151\156\141\154\154\171", "\146\154\157\141\164", "\146\157\162",
+"\147\157\164\157", "\151\146", "\151\155\160\154\145\155\145\156\164\163",
+"\151\155\160\157\162\164", "\151\156\163\164\141\156\143\145\157\146", "\151\156\164",
+"\151\156\164\145\162\146\141\143\145", "\154\157\156\147", "\156\141\164\151\166\145", "\156\145\167",
+"\156\165\154\154", "\160\141\143\153\141\147\145", "\160\162\151\166\141\164\145",
+"\160\162\157\164\145\143\164\145\144", "\160\165\142\154\151\143", "\162\145\164\165\162\156",
+"\163\150\157\162\164", "\163\164\141\164\151\143", "\163\164\162\151\143\164\146\160",
+"\163\165\160\145\162", "\163\167\151\164\143\150",
+"\163\171\156\143\150\162\157\156\151\172\145\144", "\164\150\151\163", "\164\150\162\157\167", "\164\150\162\157\167\163",
+"\164\162\141\156\163\151\145\156\164", "\164\162\165\145", "\164\162\171", "\166\157\151\144",
+"\166\157\154\141\164\151\154\145", "\167\150\151\154\145", null, null, null, null, null, null, null, null, null,
+null, null, null, null, null, null, null, "\50", "\51", "\173", "\175", "\133",
+"\135", "\73", "\54", "\56", "\100", "\75", "\74", "\41", "\176", "\77", "\72",
+"\75\75", "\74\75", "\76\75", "\41\75", "\174\174", "\46\46", "\53\53", "\55\55", "\53",
+"\55", "\52", "\57", "\46", "\174", "\136", "\45", "\74\74", "\53\75", "\55\75",
+"\52\75", "\57\75", "\46\75", "\174\75", "\136\75", "\45\75", "\74\74\75", "\76\76\75",
+"\76\76\76\75", "\56\56\56", "\55\76", "\72\72", "\76\76\76", "\76\76", "\76", "\32",
+"\74\76", };
+
+/** Lexer state names. */
+public static final String[] lexStateNames = {
+ "DEFAULT",
+ "IN_JAVA_DOC_COMMENT",
+ "IN_MULTI_LINE_COMMENT",
+};
+
+/** Lex State array. */
+public static final int[] jjnewLexState = {
+ -1, -1, -1, -1, -1, -1, -1, 1, 2, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+};
+static final long[] jjtoToken = {
+ 0xfffffffffffff001L, 0xfffffffffffe7087L, 0x1fL,
+};
+static final long[] jjtoSkip = {
+ 0x67eL, 0x0L, 0x0L,
+};
+static final long[] jjtoSpecial = {
+ 0x640L, 0x0L, 0x0L,
+};
+static final long[] jjtoMore = {
+ 0x980L, 0x0L, 0x0L,
+};
+protected JavaCharStream input_stream;
+private final int[] jjrounds = new int[130];
+private final int[] jjstateSet = new int[260];
+private final StringBuilder jjimage = new StringBuilder();
+private StringBuilder image = jjimage;
+private int jjimageLen;
+private int lengthOfMatch;
+protected char curChar;
+/** Constructor. */
+public ASTParserTokenManager(JavaCharStream stream){
+ if (JavaCharStream.staticFlag)
+ throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+ input_stream = stream;
+}
+
+/** Constructor. */
+public ASTParserTokenManager(JavaCharStream stream, int lexState){
+ this(stream);
+ SwitchTo(lexState);
+}
+
+/** Reinitialise parser. */
+public void ReInit(JavaCharStream stream)
+{
+ jjmatchedPos = jjnewStateCnt = 0;
+ curLexState = defaultLexState;
+ input_stream = stream;
+ ReInitRounds();
+}
+private void ReInitRounds()
+{
+ int i;
+ jjround = 0x80000001;
+ for (i = 130; i-- > 0;)
+ jjrounds[i] = 0x80000000;
+}
+
+/** Reinitialise parser. */
+public void ReInit(JavaCharStream stream, int lexState)
+{
+ ReInit(stream);
+ SwitchTo(lexState);
+}
+
+/** Switch to specified lex state. */
+public void SwitchTo(int lexState)
+{
+ if (lexState >= 3 || lexState < 0)
+ throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+ else
+ curLexState = lexState;
+}
+
+protected Token jjFillToken()
+{
+ final Token t;
+ final String curTokenImage;
+ final int beginLine;
+ final int endLine;
+ final int beginColumn;
+ final int endColumn;
+ String im = jjstrLiteralImages[jjmatchedKind];
+ curTokenImage = (im == null) ? input_stream.GetImage() : im;
+ beginLine = input_stream.getBeginLine();
+ beginColumn = input_stream.getBeginColumn();
+ endLine = input_stream.getEndLine();
+ endColumn = input_stream.getEndColumn();
+ t = ASTParser.GTToken.newToken(jjmatchedKind, curTokenImage);
+
+ t.beginLine = beginLine;
+ t.endLine = endLine;
+ t.beginColumn = beginColumn;
+ t.endColumn = endColumn;
+
+ return t;
+}
+
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+/** Get the next Token. */
+public Token getNextToken()
+{
+ Token specialToken = null;
+ Token matchedToken;
+ int curPos = 0;
+
+ EOFLoop :
+ for (;;)
+ {
+ try
+ {
+ curChar = input_stream.BeginToken();
+ }
+ catch(java.io.IOException e)
+ {
+ jjmatchedKind = 0;
+ matchedToken = jjFillToken();
+ matchedToken.specialToken = specialToken;
+ return matchedToken;
+ }
+ image = jjimage;
+ image.setLength(0);
+ jjimageLen = 0;
+
+ for (;;)
+ {
+ switch(curLexState)
+ {
+ case 0:
+ try { input_stream.backup(0);
+ while (curChar <= 32 && (0x100003600L & (1L << curChar)) != 0L)
+ curChar = input_stream.BeginToken();
+ }
+ catch (java.io.IOException e1) { continue EOFLoop; }
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_0();
+ break;
+ case 1:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_1();
+ if (jjmatchedPos == 0 && jjmatchedKind > 11)
+ {
+ jjmatchedKind = 11;
+ }
+ break;
+ case 2:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_2();
+ if (jjmatchedPos == 0 && jjmatchedKind > 11)
+ {
+ jjmatchedKind = 11;
+ }
+ break;
+ }
+ if (jjmatchedKind != 0x7fffffff)
+ {
+ if (jjmatchedPos + 1 < curPos)
+ input_stream.backup(curPos - jjmatchedPos - 1);
+ if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+ {
+ matchedToken = jjFillToken();
+ matchedToken.specialToken = specialToken;
+ TokenLexicalActions(matchedToken);
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ return matchedToken;
+ }
+ else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+ {
+ if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+ {
+ matchedToken = jjFillToken();
+ if (specialToken == null)
+ specialToken = matchedToken;
+ else
+ {
+ matchedToken.specialToken = specialToken;
+ specialToken = (specialToken.next = matchedToken);
+ }
+ SkipLexicalActions(matchedToken);
+ }
+ else
+ SkipLexicalActions(null);
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ continue EOFLoop;
+ }
+ MoreLexicalActions();
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ curPos = 0;
+ jjmatchedKind = 0x7fffffff;
+ try {
+ curChar = input_stream.readChar();
+ continue;
+ }
+ catch (java.io.IOException e1) { }
+ }
+ int error_line = input_stream.getEndLine();
+ int error_column = input_stream.getEndColumn();
+ String error_after = null;
+ boolean EOFSeen = false;
+ try { input_stream.readChar(); input_stream.backup(1); }
+ catch (java.io.IOException e1) {
+ EOFSeen = true;
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ if (curChar == '\n' || curChar == '\r') {
+ error_line++;
+ error_column = 0;
+ }
+ else
+ error_column++;
+ }
+ if (!EOFSeen) {
+ input_stream.backup(1);
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ }
+ throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+ }
+ }
+}
+
+void SkipLexicalActions(Token matchedToken)
+{
+ switch(jjmatchedKind)
+ {
+ default :
+ break;
+ }
+}
+void MoreLexicalActions()
+{
+ jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
+ switch(jjmatchedKind)
+ {
+ case 7 :
+ image.append(input_stream.GetSuffix(jjimageLen));
+ jjimageLen = 0;
+ input_stream.backup(1);
+ break;
+ default :
+ break;
+ }
+}
+void TokenLexicalActions(Token matchedToken)
+{
+ switch(jjmatchedKind)
+ {
+ case 128 :
+ image.append(jjstrLiteralImages[128]);
+ lengthOfMatch = jjstrLiteralImages[128].length();
+ matchedToken.kind = GT;
+ ((ASTParser.GTToken)matchedToken).realKind = RUNSIGNEDSHIFT;
+ input_stream.backup(2);
+ break;
+ case 129 :
+ image.append(jjstrLiteralImages[129]);
+ lengthOfMatch = jjstrLiteralImages[129].length();
+ matchedToken.kind = GT;
+ ((ASTParser.GTToken)matchedToken).realKind = RSIGNEDSHIFT;
+ input_stream.backup(1);
+ break;
+ default :
+ break;
+ }
+}
+private void jjCheckNAdd(int state)
+{
+ if (jjrounds[state] != jjround)
+ {
+ jjstateSet[jjnewStateCnt++] = state;
+ jjrounds[state] = jjround;
+ }
+}
+private void jjAddStates(int start, int end)
+{
+ do {
+ jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+ } while (start++ != end);
+}
+private void jjCheckNAddTwoStates(int state1, int state2)
+{
+ jjCheckNAdd(state1);
+ jjCheckNAdd(state2);
+}
+
+private void jjCheckNAddStates(int start, int end)
+{
+ do {
+ jjCheckNAdd(jjnextStates[start]);
+ } while (start++ != end);
+}
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/JavaCharStream.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/JavaCharStream.java
new file mode 100644
index 000000000..62a6544b3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/JavaCharStream.java
@@ -0,0 +1,629 @@
+/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 5.0 */
+/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+/**
+ * An implementation of interface CharStream, where the stream is assumed to
+ * contain only ASCII characters (with java-like unicode escape processing).
+ */
+
+public
+class JavaCharStream
+{
+ /** Whether parser is static. */
+ public static final boolean staticFlag = false;
+
+ static final int hexval(char c) throws java.io.IOException {
+ switch(c)
+ {
+ case '0' :
+ return 0;
+ case '1' :
+ return 1;
+ case '2' :
+ return 2;
+ case '3' :
+ return 3;
+ case '4' :
+ return 4;
+ case '5' :
+ return 5;
+ case '6' :
+ return 6;
+ case '7' :
+ return 7;
+ case '8' :
+ return 8;
+ case '9' :
+ return 9;
+
+ case 'a' :
+ case 'A' :
+ return 10;
+ case 'b' :
+ case 'B' :
+ return 11;
+ case 'c' :
+ case 'C' :
+ return 12;
+ case 'd' :
+ case 'D' :
+ return 13;
+ case 'e' :
+ case 'E' :
+ return 14;
+ case 'f' :
+ case 'F' :
+ return 15;
+ }
+
+ throw new java.io.IOException(); // Should never come here
+ }
+
+/** Position in buffer. */
+ public int bufpos = -1;
+ int bufsize;
+ int available;
+ int tokenBegin;
+ protected int bufline[];
+ protected int bufcolumn[];
+
+ protected int column = 0;
+ protected int line = 1;
+
+ protected boolean prevCharIsCR = false;
+ protected boolean prevCharIsLF = false;
+
+ protected java.io.Reader inputStream;
+
+ protected char[] nextCharBuf;
+ protected char[] buffer;
+ protected int maxNextCharInd = 0;
+ protected int nextCharInd = -1;
+ protected int inBuf = 0;
+ protected int tabSize = 8;
+
+ protected void setTabSize(int i) { tabSize = i; }
+ protected int getTabSize(int i) { return tabSize; }
+
+ protected void ExpandBuff(boolean wrapAround)
+ {
+ char[] newbuffer = new char[bufsize + 2048];
+ int newbufline[] = new int[bufsize + 2048];
+ int newbufcolumn[] = new int[bufsize + 2048];
+
+ try
+ {
+ if (wrapAround)
+ {
+ System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+ System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos);
+ buffer = newbuffer;
+
+ System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+ System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
+ bufline = newbufline;
+
+ System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+ System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
+ bufcolumn = newbufcolumn;
+
+ bufpos += (bufsize - tokenBegin);
+ }
+ else
+ {
+ System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+ buffer = newbuffer;
+
+ System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+ bufline = newbufline;
+
+ System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+ bufcolumn = newbufcolumn;
+
+ bufpos -= tokenBegin;
+ }
+ }
+ catch (Throwable t)
+ {
+ throw new Error(t.getMessage());
+ }
+
+ available = (bufsize += 2048);
+ tokenBegin = 0;
+ }
+
+ protected void FillBuff() throws java.io.IOException
+ {
+ int i;
+ if (maxNextCharInd == 4096)
+ maxNextCharInd = nextCharInd = 0;
+
+ try {
+ if ((i = inputStream.read(nextCharBuf, maxNextCharInd,
+ 4096 - maxNextCharInd)) == -1)
+ {
+ inputStream.close();
+ throw new java.io.IOException();
+ }
+ else
+ maxNextCharInd += i;
+ return;
+ }
+ catch(java.io.IOException e) {
+ if (bufpos != 0)
+ {
+ --bufpos;
+ backup(0);
+ }
+ else
+ {
+ bufline[bufpos] = line;
+ bufcolumn[bufpos] = column;
+ }
+ throw e;
+ }
+ }
+
+ protected char ReadByte() throws java.io.IOException
+ {
+ if (++nextCharInd >= maxNextCharInd)
+ FillBuff();
+
+ return nextCharBuf[nextCharInd];
+ }
+
+/** @return starting character for token. */
+ public char BeginToken() throws java.io.IOException
+ {
+ if (inBuf > 0)
+ {
+ --inBuf;
+
+ if (++bufpos == bufsize)
+ bufpos = 0;
+
+ tokenBegin = bufpos;
+ return buffer[bufpos];
+ }
+
+ tokenBegin = 0;
+ bufpos = -1;
+
+ return readChar();
+ }
+
+ protected void AdjustBuffSize()
+ {
+ if (available == bufsize)
+ {
+ if (tokenBegin > 2048)
+ {
+ bufpos = 0;
+ available = tokenBegin;
+ }
+ else
+ ExpandBuff(false);
+ }
+ else if (available > tokenBegin)
+ available = bufsize;
+ else if ((tokenBegin - available) < 2048)
+ ExpandBuff(true);
+ else
+ available = tokenBegin;
+ }
+
+ protected void UpdateLineColumn(char c)
+ {
+ column++;
+
+ if (prevCharIsLF)
+ {
+ prevCharIsLF = false;
+ line += (column = 1);
+ }
+ else if (prevCharIsCR)
+ {
+ prevCharIsCR = false;
+ if (c == '\n')
+ {
+ prevCharIsLF = true;
+ }
+ else
+ line += (column = 1);
+ }
+
+ switch (c)
+ {
+ case '\r' :
+ prevCharIsCR = true;
+ break;
+ case '\n' :
+ prevCharIsLF = true;
+ break;
+ case '\t' :
+ column--;
+ column += (tabSize - (column % tabSize));
+ break;
+ default :
+ break;
+ }
+
+ bufline[bufpos] = line;
+ bufcolumn[bufpos] = column;
+ }
+
+/** Read a character. */
+ public char readChar() throws java.io.IOException
+ {
+ if (inBuf > 0)
+ {
+ --inBuf;
+
+ if (++bufpos == bufsize)
+ bufpos = 0;
+
+ return buffer[bufpos];
+ }
+
+ char c;
+
+ if (++bufpos == available)
+ AdjustBuffSize();
+
+ if ((buffer[bufpos] = c = ReadByte()) == '\\')
+ {
+ UpdateLineColumn(c);
+
+ int backSlashCnt = 1;
+
+ for (;;) // Read all the backslashes
+ {
+ if (++bufpos == available)
+ AdjustBuffSize();
+
+ try
+ {
+ if ((buffer[bufpos] = c = ReadByte()) != '\\')
+ {
+ UpdateLineColumn(c);
+ // found a non-backslash char.
+ if ((c == 'u') && ((backSlashCnt & 1) == 1))
+ {
+ if (--bufpos < 0)
+ bufpos = bufsize - 1;
+
+ break;
+ }
+
+ backup(backSlashCnt);
+ return '\\';
+ }
+ }
+ catch(java.io.IOException e)
+ {
+ // We are returning one backslash so we should only backup (count-1)
+ if (backSlashCnt > 1)
+ backup(backSlashCnt-1);
+
+ return '\\';
+ }
+
+ UpdateLineColumn(c);
+ backSlashCnt++;
+ }
+
+ // Here, we have seen an odd number of backslash's followed by a 'u'
+ try
+ {
+ while ((c = ReadByte()) == 'u')
+ ++column;
+
+ buffer[bufpos] = c = (char)(hexval(c) << 12 |
+ hexval(ReadByte()) << 8 |
+ hexval(ReadByte()) << 4 |
+ hexval(ReadByte()));
+
+ column += 4;
+ }
+ catch(java.io.IOException e)
+ {
+ throw new Error("Invalid escape character at line " + line +
+ " column " + column + ".");
+ }
+
+ if (backSlashCnt == 1)
+ return c;
+ else
+ {
+ backup(backSlashCnt - 1);
+ return '\\';
+ }
+ }
+ else
+ {
+ UpdateLineColumn(c);
+ return c;
+ }
+ }
+
+ @Deprecated
+ /**
+ * @deprecated
+ * @see #getEndColumn
+ */
+ public int getColumn() {
+ return bufcolumn[bufpos];
+ }
+
+ @Deprecated
+ /**
+ * @deprecated
+ * @see #getEndLine
+ */
+ public int getLine() {
+ return bufline[bufpos];
+ }
+
+/** Get end column. */
+ public int getEndColumn() {
+ return bufcolumn[bufpos];
+ }
+
+/** Get end line. */
+ public int getEndLine() {
+ return bufline[bufpos];
+ }
+
+/** @return column of token start */
+ public int getBeginColumn() {
+ return bufcolumn[tokenBegin];
+ }
+
+/** @return line number of token start */
+ public int getBeginLine() {
+ return bufline[tokenBegin];
+ }
+
+/** Retreat. */
+ public void backup(int amount) {
+
+ inBuf += amount;
+ if ((bufpos -= amount) < 0)
+ bufpos += bufsize;
+ }
+
+/** Constructor. */
+ public JavaCharStream(java.io.Reader dstream,
+ int startline, int startcolumn, int buffersize)
+ {
+ inputStream = dstream;
+ line = startline;
+ column = startcolumn - 1;
+
+ available = bufsize = buffersize;
+ buffer = new char[buffersize];
+ bufline = new int[buffersize];
+ bufcolumn = new int[buffersize];
+ nextCharBuf = new char[4096];
+ }
+
+/** Constructor. */
+ public JavaCharStream(java.io.Reader dstream,
+ int startline, int startcolumn)
+ {
+ this(dstream, startline, startcolumn, 4096);
+ }
+
+/** Constructor. */
+ public JavaCharStream(java.io.Reader dstream)
+ {
+ this(dstream, 1, 1, 4096);
+ }
+/** Reinitialise. */
+ public void ReInit(java.io.Reader dstream,
+ int startline, int startcolumn, int buffersize)
+ {
+ inputStream = dstream;
+ line = startline;
+ column = startcolumn - 1;
+
+ if (buffer == null || buffersize != buffer.length)
+ {
+ available = bufsize = buffersize;
+ buffer = new char[buffersize];
+ bufline = new int[buffersize];
+ bufcolumn = new int[buffersize];
+ nextCharBuf = new char[4096];
+ }
+ prevCharIsLF = prevCharIsCR = false;
+ tokenBegin = inBuf = maxNextCharInd = 0;
+ nextCharInd = bufpos = -1;
+ }
+
+/** Reinitialise. */
+ public void ReInit(java.io.Reader dstream,
+ int startline, int startcolumn)
+ {
+ ReInit(dstream, startline, startcolumn, 4096);
+ }
+
+/** Reinitialise. */
+ public void ReInit(java.io.Reader dstream)
+ {
+ ReInit(dstream, 1, 1, 4096);
+ }
+/** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+ {
+ this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+ }
+
+/** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream, int startline,
+ int startcolumn, int buffersize)
+ {
+ this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
+ }
+
+/** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn) throws java.io.UnsupportedEncodingException
+ {
+ this(dstream, encoding, startline, startcolumn, 4096);
+ }
+
+/** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream, int startline,
+ int startcolumn)
+ {
+ this(dstream, startline, startcolumn, 4096);
+ }
+
+/** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+ {
+ this(dstream, encoding, 1, 1, 4096);
+ }
+
+/** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream)
+ {
+ this(dstream, 1, 1, 4096);
+ }
+
+/** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+ {
+ ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+ }
+
+/** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream, int startline,
+ int startcolumn, int buffersize)
+ {
+ ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+ }
+/** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn) throws java.io.UnsupportedEncodingException
+ {
+ ReInit(dstream, encoding, startline, startcolumn, 4096);
+ }
+/** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream, int startline,
+ int startcolumn)
+ {
+ ReInit(dstream, startline, startcolumn, 4096);
+ }
+/** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+ {
+ ReInit(dstream, encoding, 1, 1, 4096);
+ }
+
+/** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream)
+ {
+ ReInit(dstream, 1, 1, 4096);
+ }
+
+ /** @return token image as String */
+ public String GetImage()
+ {
+ if (bufpos >= tokenBegin)
+ return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
+ else
+ return new String(buffer, tokenBegin, bufsize - tokenBegin) +
+ new String(buffer, 0, bufpos + 1);
+ }
+
+ /** @return suffix */
+ public char[] GetSuffix(int len)
+ {
+ char[] ret = new char[len];
+
+ if ((bufpos + 1) >= len)
+ System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
+ else
+ {
+ System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
+ len - bufpos - 1);
+ System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
+ }
+
+ return ret;
+ }
+
+ /** Set buffers back to null when finished. */
+ public void Done()
+ {
+ nextCharBuf = null;
+ buffer = null;
+ bufline = null;
+ bufcolumn = null;
+ }
+
+ /**
+ * Method to adjust line and column numbers for the start of a token.
+ */
+ public void adjustBeginLineColumn(int newLine, int newCol)
+ {
+ int start = tokenBegin;
+ int len;
+
+ if (bufpos >= tokenBegin)
+ {
+ len = bufpos - tokenBegin + inBuf + 1;
+ }
+ else
+ {
+ len = bufsize - tokenBegin + bufpos + 1 + inBuf;
+ }
+
+ int i = 0, j = 0, k = 0;
+ int nextColDiff = 0, columnDiff = 0;
+
+ while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize])
+ {
+ bufline[j] = newLine;
+ nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
+ bufcolumn[j] = newCol + columnDiff;
+ columnDiff = nextColDiff;
+ i++;
+ }
+
+ if (i < len)
+ {
+ bufline[j] = newLine++;
+ bufcolumn[j] = newCol + columnDiff;
+
+ while (i++ < len)
+ {
+ if (bufline[j = start % bufsize] != bufline[++start % bufsize])
+ bufline[j] = newLine++;
+ else
+ bufline[j] = newLine;
+ }
+ }
+
+ line = bufline[j];
+ column = bufcolumn[j];
+ }
+
+}
+/* JavaCC - OriginalChecksum=5111a95355f2f1cc405246f828703097 (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ParseException.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ParseException.java
new file mode 100644
index 000000000..31d07cd51
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/ParseException.java
@@ -0,0 +1,199 @@
+/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 5.0 */
+/* JavaCCOptions:KEEP_LINE_COL=null */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+/**
+ * This exception is thrown when parse errors are encountered.
+ * You can explicitly create objects of this exception type by
+ * calling the method generateParseException in the generated
+ * parser.
+ *
+ * You can modify this class to customize your error reporting
+ * mechanisms so long as you retain the public fields.
+ */
+public class ParseException extends Exception {
+
+ /**
+ * The version identifier for this Serializable class.
+ * Increment only if the <i>serialized</i> form of the
+ * class changes.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * This constructor is used by the method "generateParseException"
+ * in the generated parser. Calling this constructor generates
+ * a new object of this type with the fields "currentToken",
+ * "expectedTokenSequences", and "tokenImage" set.
+ */
+ public ParseException(Token currentTokenVal,
+ int[][] expectedTokenSequencesVal,
+ String[] tokenImageVal
+ )
+ {
+ super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal));
+ currentToken = currentTokenVal;
+ expectedTokenSequences = expectedTokenSequencesVal;
+ tokenImage = tokenImageVal;
+ }
+
+ /**
+ * The following constructors are for use by you for whatever
+ * purpose you can think of. Constructing the exception in this
+ * manner makes the exception behave in the normal way - i.e., as
+ * documented in the class "Throwable". The fields "errorToken",
+ * "expectedTokenSequences", and "tokenImage" do not contain
+ * relevant information. The JavaCC generated code does not use
+ * these constructors.
+ */
+
+ public ParseException() {
+ super();
+ }
+
+ /** Constructor with message. */
+ public ParseException(String message) {
+ super(message);
+ }
+
+
+ /**
+ * This is the last token that has been consumed successfully. If
+ * this object has been created due to a parse error, the token
+ * followng this token will (therefore) be the first error token.
+ */
+ public Token currentToken;
+
+ /**
+ * Each entry in this array is an array of integers. Each array
+ * of integers represents a sequence of tokens (by their ordinal
+ * values) that is expected at this point of the parse.
+ */
+ public int[][] expectedTokenSequences;
+
+ /**
+ * This is a reference to the "tokenImage" array of the generated
+ * parser within which the parse error occurred. This array is
+ * defined in the generated ...Constants interface.
+ */
+ public String[] tokenImage;
+
+ /**
+ * It uses "currentToken" and "expectedTokenSequences" to generate a parse
+ * error message and returns it. If this object has been created
+ * due to a parse error, and you do not catch it (it gets thrown
+ * from the parser) the correct error message
+ * gets displayed.
+ */
+ private static String initialise(Token currentToken,
+ int[][] expectedTokenSequences,
+ String[] tokenImage) {
+ String eol = System.getProperty("line.separator", "\n");
+ StringBuffer expected = new StringBuffer();
+ int maxSize = 0;
+ for (int i = 0; i < expectedTokenSequences.length; i++) {
+ if (maxSize < expectedTokenSequences[i].length) {
+ maxSize = expectedTokenSequences[i].length;
+ }
+ for (int j = 0; j < expectedTokenSequences[i].length; j++) {
+ expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');
+ }
+ if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
+ expected.append("...");
+ }
+ expected.append(eol).append(" ");
+ }
+ String retval = "Encountered \"";
+ Token tok = currentToken.next;
+ for (int i = 0; i < maxSize; i++) {
+ if (i != 0) retval += " ";
+ if (tok.kind == 0) {
+ retval += tokenImage[0];
+ break;
+ }
+ retval += " " + tokenImage[tok.kind];
+ retval += " \"";
+ retval += add_escapes(tok.image);
+ retval += " \"";
+ tok = tok.next;
+ }
+ retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;
+ retval += "." + eol;
+ if (expectedTokenSequences.length == 1) {
+ retval += "Was expecting:" + eol + " ";
+ } else {
+ retval += "Was expecting one of:" + eol + " ";
+ }
+ retval += expected.toString();
+ return retval;
+ }
+
+ /**
+ * The end of line string for this machine.
+ */
+ protected String eol = System.getProperty("line.separator", "\n");
+
+ /**
+ * Used to convert raw characters to their escaped version
+ * when these raw version cannot be used as part of an ASCII
+ * string literal.
+ */
+ static String add_escapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i))
+ {
+ case 0 :
+ continue;
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ continue;
+ }
+ }
+ return retval.toString();
+ }
+
+}
+/* JavaCC - OriginalChecksum=62ba72b2159703420d5ce7232a0226fb (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/Token.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/Token.java
new file mode 100644
index 000000000..8aa85f4dd
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/Token.java
@@ -0,0 +1,143 @@
+/* Generated By:JavaCC: Do not edit this line. Token.java Version 5.0 */
+/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+/**
+ * Describes the input token stream.
+ */
+
+public class Token implements java.io.Serializable {
+
+ /**
+ * The version identifier for this Serializable class.
+ * Increment only if the <i>serialized</i> form of the
+ * class changes.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * An integer that describes the kind of this token. This numbering
+ * system is determined by JavaCCParser, and a table of these numbers is
+ * stored in the file ...Constants.java.
+ */
+ public int kind;
+
+ /** The line number of the first character of this Token. */
+ public int beginLine;
+ /** The column number of the first character of this Token. */
+ public int beginColumn;
+ /** The line number of the last character of this Token. */
+ public int endLine;
+ /** The column number of the last character of this Token. */
+ public int endColumn;
+
+ /**
+ * The string image of the token.
+ */
+ public String image;
+
+ /**
+ * A reference to the next regular (non-special) token from the input
+ * stream. If this is the last token from the input stream, or if the
+ * token manager has not read tokens beyond this one, this field is
+ * set to null. This is true only if this token is also a regular
+ * token. Otherwise, see below for a description of the contents of
+ * this field.
+ */
+ public Token next;
+
+ /**
+ * This field is used to access special tokens that occur prior to this
+ * token, but after the immediately preceding regular (non-special) token.
+ * If there are no such special tokens, this field is set to null.
+ * When there are more than one such special token, this field refers
+ * to the last of these special tokens, which in turn refers to the next
+ * previous special token through its specialToken field, and so on
+ * until the first special token (whose specialToken field is null).
+ * The next fields of special tokens refer to other special tokens that
+ * immediately follow it (without an intervening regular token). If there
+ * is no such token, this field is null.
+ */
+ public Token specialToken;
+
+ /**
+ * An optional attribute value of the Token.
+ * Tokens which are not used as syntactic sugar will often contain
+ * meaningful values that will be used later on by the compiler or
+ * interpreter. This attribute value is often different from the image.
+ * Any subclass of Token that actually wants to return a non-null value can
+ * override this method as appropriate.
+ */
+ public Object getValue() {
+ return null;
+ }
+
+ /**
+ * No-argument constructor
+ */
+ public Token() {}
+
+ /**
+ * Constructs a new token for the specified Image.
+ */
+ public Token(int kind)
+ {
+ this(kind, null);
+ }
+
+ /**
+ * Constructs a new token for the specified Image and Kind.
+ */
+ public Token(int kind, String image)
+ {
+ this.kind = kind;
+ this.image = image;
+ }
+
+ /**
+ * Returns the image.
+ */
+ public String toString()
+ {
+ return image;
+ }
+
+ /**
+ * Returns a new Token object, by default. However, if you want, you
+ * can create and return subclass objects based on the value of ofKind.
+ * Simply add the cases to the switch for all those special cases.
+ * For example, if you have a subclass of Token called IDToken that
+ * you want to create if ofKind is ID, simply add something like :
+ *
+ * case MyParserConstants.ID : return new IDToken(ofKind, image);
+ *
+ * to the following switch statement. Then you can cast matchedToken
+ * variable to the appropriate type and use sit in your lexical actions.
+ */
+ public static Token newToken(int ofKind, String image)
+ {
+ switch(ofKind)
+ {
+ default : return new Token(ofKind, image);
+ }
+ }
+
+ public static Token newToken(int ofKind)
+ {
+ return newToken(ofKind, null);
+ }
+
+}
+/* JavaCC - OriginalChecksum=a2058282d76ebf324ed236272a3341cb (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/TokenMgrError.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/TokenMgrError.java
new file mode 100644
index 000000000..09197e805
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/generated/com/github/javaparser/TokenMgrError.java
@@ -0,0 +1,159 @@
+/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 5.0 */
+/* JavaCCOptions: */
+/*
+ *
+ * This file is part of Java 1.8 parser and Abstract Syntax Tree.
+ *
+ * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.8 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.github.javaparser;
+
+/** Token Manager Error. */
+public class TokenMgrError extends Error
+{
+
+ /**
+ * The version identifier for this Serializable class.
+ * Increment only if the <i>serialized</i> form of the
+ * class changes.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /*
+ * Ordinals for various reasons why an Error of this type can be thrown.
+ */
+
+ /**
+ * Lexical error occurred.
+ */
+ static final int LEXICAL_ERROR = 0;
+
+ /**
+ * An attempt was made to create a second instance of a static token manager.
+ */
+ static final int STATIC_LEXER_ERROR = 1;
+
+ /**
+ * Tried to change to an invalid lexical state.
+ */
+ static final int INVALID_LEXICAL_STATE = 2;
+
+ /**
+ * Detected (and bailed out of) an infinite loop in the token manager.
+ */
+ static final int LOOP_DETECTED = 3;
+
+ /**
+ * Indicates the reason why the exception is thrown. It will have
+ * one of the above 4 values.
+ */
+ int errorCode;
+
+ /**
+ * Replaces unprintable characters by their escaped (or unicode escaped)
+ * equivalents in the given string
+ */
+ protected static final String addEscapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i))
+ {
+ case 0 :
+ continue;
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ continue;
+ }
+ }
+ return retval.toString();
+ }
+
+ /**
+ * Returns a detailed message for the Error when it is thrown by the
+ * token manager to indicate a lexical error.
+ * Parameters :
+ * EOFSeen : indicates if EOF caused the lexical error
+ * curLexState : lexical state in which this error occurred
+ * errorLine : line number when the error occurred
+ * errorColumn : column number when the error occurred
+ * errorAfter : prefix that was seen before this error occurred
+ * curchar : the offending character
+ * Note: You can customize the lexical error message by modifying this method.
+ */
+ protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {
+ return("Lexical error at line " +
+ errorLine + ", column " +
+ errorColumn + ". Encountered: " +
+ (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") +
+ "after : \"" + addEscapes(errorAfter) + "\"");
+ }
+
+ /**
+ * You can also modify the body of this method to customize your error messages.
+ * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not
+ * of end-users concern, so you can return something like :
+ *
+ * "Internal Error : Please file a bug report .... "
+ *
+ * from this method for such cases in the release version of your parser.
+ */
+ public String getMessage() {
+ return super.getMessage();
+ }
+
+ /*
+ * Constructors of various flavors follow.
+ */
+
+ /** No arg constructor. */
+ public TokenMgrError() {
+ }
+
+ /** Constructor with message and reason. */
+ public TokenMgrError(String message, int reason) {
+ super(message);
+ errorCode = reason;
+ }
+
+ /** Full Constructor. */
+ public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {
+ this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
+ }
+}
+/* JavaCC - OriginalChecksum=f06c7e964b5c13a732337c2f3fb4f836 (do not edit this line) */
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ASTHelper.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ASTHelper.java
new file mode 100644
index 000000000..7e706cd64
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ASTHelper.java
@@ -0,0 +1,297 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.expr.QualifiedNameExpr;
+import com.github.javaparser.ast.expr.VariableDeclarationExpr;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.Statement;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.type.PrimitiveType;
+import com.github.javaparser.ast.type.ReferenceType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.type.VoidType;
+import com.github.javaparser.ast.type.PrimitiveType.Primitive;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * This class helps to construct new nodes.
+ *
+ * @author Júlio Vilmar Gesser
+ */
+public final class ASTHelper {
+
+ public static final PrimitiveType BYTE_TYPE = new PrimitiveType(Primitive.Byte);
+
+ public static final PrimitiveType SHORT_TYPE = new PrimitiveType(Primitive.Short);
+
+ public static final PrimitiveType INT_TYPE = new PrimitiveType(Primitive.Int);
+
+ public static final PrimitiveType LONG_TYPE = new PrimitiveType(Primitive.Long);
+
+ public static final PrimitiveType FLOAT_TYPE = new PrimitiveType(Primitive.Float);
+
+ public static final PrimitiveType DOUBLE_TYPE = new PrimitiveType(Primitive.Double);
+
+ public static final PrimitiveType BOOLEAN_TYPE = new PrimitiveType(Primitive.Boolean);
+
+ public static final PrimitiveType CHAR_TYPE = new PrimitiveType(Primitive.Char);
+
+ public static final VoidType VOID_TYPE = new VoidType();
+
+ private ASTHelper() {
+ // nop
+ }
+
+ /**
+ * Creates a new {@link NameExpr} from a qualified name.<br>
+ * The qualified name can contains "." (dot) characters.
+ *
+ * @param qualifiedName
+ * qualified name
+ * @return instanceof {@link NameExpr}
+ */
+ public static NameExpr createNameExpr(String qualifiedName) {
+ String[] split = qualifiedName.split("\\.");
+ NameExpr ret = new NameExpr(split[0]);
+ for (int i = 1; i < split.length; i++) {
+ ret = new QualifiedNameExpr(ret, split[i]);
+ }
+ return ret;
+ }
+
+ /**
+ * Creates a new {@link Parameter}.
+ *
+ * @param type
+ * type of the parameter
+ * @param name
+ * name of the parameter
+ * @return instance of {@link Parameter}
+ */
+ public static Parameter createParameter(Type type, String name) {
+ return new Parameter(type, new VariableDeclaratorId(name));
+ }
+
+ /**
+ * Creates a {@link FieldDeclaration}.
+ *
+ * @param modifiers
+ * modifiers
+ * @param type
+ * type
+ * @param variable
+ * variable declarator
+ * @return instance of {@link FieldDeclaration}
+ */
+ public static FieldDeclaration createFieldDeclaration(int modifiers, Type type, VariableDeclarator variable) {
+ List<VariableDeclarator> variables = new ArrayList<VariableDeclarator>();
+ variables.add(variable);
+ FieldDeclaration ret = new FieldDeclaration(modifiers, type, variables);
+ return ret;
+ }
+
+ /**
+ * Creates a {@link FieldDeclaration}.
+ *
+ * @param modifiers
+ * modifiers
+ * @param type
+ * type
+ * @param name
+ * field name
+ * @return instance of {@link FieldDeclaration}
+ */
+ public static FieldDeclaration createFieldDeclaration(int modifiers, Type type, String name) {
+ VariableDeclaratorId id = new VariableDeclaratorId(name);
+ VariableDeclarator variable = new VariableDeclarator(id);
+ return createFieldDeclaration(modifiers, type, variable);
+ }
+
+ /**
+ * Creates a {@link VariableDeclarationExpr}.
+ *
+ * @param type
+ * type
+ * @param name
+ * name
+ * @return instance of {@link VariableDeclarationExpr}
+ */
+ public static VariableDeclarationExpr createVariableDeclarationExpr(Type type, String name) {
+ List<VariableDeclarator> vars = new ArrayList<VariableDeclarator>();
+ vars.add(new VariableDeclarator(new VariableDeclaratorId(name)));
+ return new VariableDeclarationExpr(type, vars);
+ }
+
+ /**
+ * Adds the given parameter to the method. The list of parameters will be
+ * initialized if it is <code>null</code>.
+ *
+ * @param method
+ * method
+ * @param parameter
+ * parameter
+ */
+ public static void addParameter(MethodDeclaration method, Parameter parameter) {
+ List<Parameter> parameters = method.getParameters();
+ if (parameters == null) {
+ parameters = new ArrayList<Parameter>();
+ method.setParameters(parameters);
+ }
+ parameters.add(parameter);
+ }
+
+ /**
+ * Adds the given argument to the method call. The list of arguments will be
+ * initialized if it is <code>null</code>.
+ *
+ * @param call
+ * method call
+ * @param arg
+ * argument value
+ */
+ public static void addArgument(MethodCallExpr call, Expression arg) {
+ List<Expression> args = call.getArgs();
+ if (args == null) {
+ args = new ArrayList<Expression>();
+ call.setArgs(args);
+ }
+ args.add(arg);
+ }
+
+ /**
+ * Adds the given type declaration to the compilation unit. The list of
+ * types will be initialized if it is <code>null</code>.
+ *
+ * @param cu
+ * compilation unit
+ * @param type
+ * type declaration
+ */
+ public static void addTypeDeclaration(CompilationUnit cu, TypeDeclaration type) {
+ List<TypeDeclaration> types = cu.getTypes();
+ if (types == null) {
+ types = new ArrayList<TypeDeclaration>();
+ cu.setTypes(types);
+ }
+ types.add(type);
+
+ }
+
+ /**
+ * Creates a new {@link ReferenceType} for a class or interface.
+ *
+ * @param name
+ * name of the class or interface
+ * @param arrayCount
+ * number of arrays or <code>0</code> if is not a array.
+ * @return instanceof {@link ReferenceType}
+ */
+ public static ReferenceType createReferenceType(String name, int arrayCount) {
+ return new ReferenceType(new ClassOrInterfaceType(name), arrayCount);
+ }
+
+ /**
+ * Creates a new {@link ReferenceType} for the given primitive type.
+ *
+ * @param type
+ * primitive type
+ * @param arrayCount
+ * number of arrays or <code>0</code> if is not a array.
+ * @return instanceof {@link ReferenceType}
+ */
+ public static ReferenceType createReferenceType(PrimitiveType type, int arrayCount) {
+ return new ReferenceType(type, arrayCount);
+ }
+
+ /**
+ * Adds the given statement to the specified block. The list of statements
+ * will be initialized if it is <code>null</code>.
+ *
+ * @param block to have expression added to
+ * @param stmt to be added
+ */
+ public static void addStmt(BlockStmt block, Statement stmt) {
+ List<Statement> stmts = block.getStmts();
+ if (stmts == null) {
+ stmts = new ArrayList<Statement>();
+ block.setStmts(stmts);
+ }
+ stmts.add(stmt);
+ }
+
+ /**
+ * Adds the given expression to the specified block. The list of statements
+ * will be initialized if it is <code>null</code>.
+ *
+ * @param block to have expression added to
+ * @param expr to be added
+ */
+ public static void addStmt(BlockStmt block, Expression expr) {
+ addStmt(block, new ExpressionStmt(expr));
+ }
+
+ /**
+ * Adds the given declaration to the specified type. The list of members
+ * will be initialized if it is <code>null</code>.
+ *
+ * @param type
+ * type declaration
+ * @param decl
+ * member declaration
+ */
+ public static void addMember(TypeDeclaration type, BodyDeclaration decl) {
+ List<BodyDeclaration> members = type.getMembers();
+ if (members == null) {
+ members = new ArrayList<BodyDeclaration>();
+ type.setMembers(members);
+ }
+ members.add(decl);
+ }
+
+ public static <N extends Node> List<N> getNodesByType(Node container, Class<N> clazz) {
+ List<N> nodes = new ArrayList<N>();
+ for (Node child : container.getChildrenNodes()) {
+ if (clazz.isInstance(child)) {
+ nodes.add(clazz.cast(child));
+ }
+ nodes.addAll(getNodesByType(child, clazz));
+ }
+ return nodes;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/JavaParser.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/JavaParser.java
new file mode 100644
index 000000000..431255051
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/JavaParser.java
@@ -0,0 +1,452 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser;
+
+import static com.github.javaparser.PositionUtils.areInOrder;
+import static com.github.javaparser.PositionUtils.sortByBeginPosition;
+
+import com.github.javaparser.ASTParser;
+import com.github.javaparser.ParseException;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.CommentsCollection;
+import com.github.javaparser.ast.comments.CommentsParser;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.Statement;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+// FIXME this file does not seem to be generated by javacc. Is the doc wrong, or the javacc config?
+/**
+ * <p>
+ * This class was generated automatically by javacc, do not edit.
+ * </p>
+ * <p>
+ * Parse Java 1.5 source code and creates Abstract Syntax Tree classes.
+ * </p>
+ *
+ * @author Júlio Vilmar Gesser
+ */
+public final class JavaParser {
+ private JavaParser() {
+ // hide the constructor
+ }
+
+ private static boolean _doNotAssignCommentsPreceedingEmptyLines = true;
+
+ private static boolean _doNotConsiderAnnotationsAsNodeStartForCodeAttribution = false;
+
+ public static boolean getDoNotConsiderAnnotationsAsNodeStartForCodeAttribution()
+ {
+ return _doNotConsiderAnnotationsAsNodeStartForCodeAttribution;
+ }
+
+ public static void setDoNotConsiderAnnotationsAsNodeStartForCodeAttribution(boolean doNotConsiderAnnotationsAsNodeStartForCodeAttribution) {
+ _doNotConsiderAnnotationsAsNodeStartForCodeAttribution = doNotConsiderAnnotationsAsNodeStartForCodeAttribution;
+ }
+
+ public static boolean getDoNotAssignCommentsPreceedingEmptyLines()
+ {
+ return _doNotAssignCommentsPreceedingEmptyLines;
+ }
+
+ public static void setDoNotAssignCommentsPreceedingEmptyLines(boolean doNotAssignCommentsPreceedingEmptyLines)
+ {
+ _doNotAssignCommentsPreceedingEmptyLines = doNotAssignCommentsPreceedingEmptyLines;
+ }
+
+ public static CompilationUnit parse(final InputStream in,
+ final String encoding) {
+ return parse(in,encoding,true);
+ }
+
+ /**
+ * Parses the Java code contained in the {@link InputStream} and returns a
+ * {@link CompilationUnit} that represents it.
+ *
+ * @param in
+ * {@link InputStream} containing Java source code
+ * @param encoding
+ * encoding of the source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static CompilationUnit parse(final InputStream in,
+ final String encoding, boolean considerComments) {
+ try {
+ String code = SourcesHelper.streamToString(in, encoding);
+ InputStream in1 = SourcesHelper.stringToStream(code, encoding);
+ CompilationUnit cu = new ASTParser(in1, encoding).CompilationUnit();
+ if (considerComments){
+ insertComments(cu,code);
+ }
+ return cu;
+ } catch (IOException ioe){
+ throw new ParseException(ioe.getMessage());
+ }
+ }
+
+ /**
+ * Parses the Java code contained in the {@link InputStream} and returns a
+ * {@link CompilationUnit} that represents it.
+ *
+ * @param in
+ * {@link InputStream} containing Java source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static CompilationUnit parse(final InputStream in)
+ {
+ return parse(in, null,true);
+ }
+
+ public static CompilationUnit parse(final File file, final String encoding)
+ throws ParseException, IOException {
+ return parse(file,encoding,true);
+ }
+
+ /**
+ * Parses the Java code contained in a {@link File} and returns a
+ * {@link CompilationUnit} that represents it.
+ *
+ * @param file
+ * {@link File} containing Java source code
+ * @param encoding
+ * encoding of the source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseException
+ * if the source code has parser errors
+ * @throws IOException
+ */
+ public static CompilationUnit parse(final File file, final String encoding, boolean considerComments)
+ throws ParseException, IOException {
+ final FileInputStream in = new FileInputStream(file);
+ try {
+ return parse(in, encoding, considerComments);
+ } finally {
+ in.close();
+ }
+ }
+
+ /**
+ * Parses the Java code contained in a {@link File} and returns a
+ * {@link CompilationUnit} that represents it.
+ *
+ * @param file
+ * {@link File} containing Java source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseException
+ * if the source code has parser errors
+ * @throws IOException
+ */
+ public static CompilationUnit parse(final File file) throws ParseException,
+ IOException {
+ return parse(file, null,true);
+ }
+
+ public static CompilationUnit parse(final Reader reader, boolean considerComments)
+ {
+ try {
+ String code = SourcesHelper.readerToString(reader);
+ Reader reader1 = SourcesHelper.stringToReader(code);
+ CompilationUnit cu = new ASTParser(reader1).CompilationUnit();
+ if (considerComments){
+ insertComments(cu,code);
+ }
+ return cu;
+ } catch (IOException ioe){
+ throw new ParseException(ioe.getMessage());
+ }
+ }
+
+ /**
+ * Parses the Java block contained in a {@link String} and returns a
+ * {@link BlockStmt} that represents it.
+ *
+ * @param blockStatement
+ * {@link String} containing Java block code
+ * @return BlockStmt representing the Java block
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static BlockStmt parseBlock(final String blockStatement)
+ {
+ StringReader sr = new StringReader(blockStatement);
+ BlockStmt result = new ASTParser(sr).Block();
+ sr.close();
+ return result;
+ }
+
+ /**
+ * Parses the Java statement contained in a {@link String} and returns a
+ * {@link Statement} that represents it.
+ *
+ * @param statement
+ * {@link String} containing Java statement code
+ * @return Statement representing the Java statement
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static Statement parseStatement(final String statement) {
+ StringReader sr = new StringReader(statement);
+ Statement stmt = new ASTParser(sr).Statement();
+ sr.close();
+ return stmt;
+ }
+
+ /**
+ * Parses the Java import contained in a {@link String} and returns a
+ * {@link ImportDeclaration} that represents it.
+ *
+ * @param importDeclaration
+ * {@link String} containing Java import code
+ * @return ImportDeclaration representing the Java import declaration
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static ImportDeclaration parseImport(final String importDeclaration) {
+ StringReader sr = new StringReader(importDeclaration);
+ ImportDeclaration id = new ASTParser(sr).ImportDeclaration();
+ sr.close();
+ return id;
+ }
+
+ /**
+ * Parses the Java expression contained in a {@link String} and returns a
+ * {@link Expression} that represents it.
+ *
+ * @param expression
+ * {@link String} containing Java expression
+ * @return Expression representing the Java expression
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static Expression parseExpression(final String expression) {
+ StringReader sr = new StringReader(expression);
+ Expression e = new ASTParser(sr).Expression();
+ sr.close();
+ return e;
+ }
+
+ /**
+ * Parses the Java annotation contained in a {@link String} and returns a
+ * {@link AnnotationExpr} that represents it.
+ *
+ * @param annotation
+ * {@link String} containing Java annotation
+ * @return AnnotationExpr representing the Java annotation
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static AnnotationExpr parseAnnotation(final String annotation) {
+ StringReader sr = new StringReader(annotation);
+ AnnotationExpr ae = new ASTParser(sr).Annotation();
+ sr.close();
+ return ae;
+ }
+
+ /**
+ * Parses the Java body declaration(e.g fields or methods) contained in a
+ * {@link String} and returns a {@link BodyDeclaration} that represents it.
+ *
+ * @param body
+ * {@link String} containing Java body declaration
+ * @return BodyDeclaration representing the Java annotation
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static BodyDeclaration parseBodyDeclaration(final String body) {
+ StringReader sr = new StringReader(body);
+ BodyDeclaration bd = new ASTParser(sr).AnnotationBodyDeclaration();
+ sr.close();
+ return bd;
+ }
+
+ /**
+ * Comments are attributed to the thing the comment and are removed from
+ * allComments.
+ */
+ private static void insertCommentsInCu(CompilationUnit cu, CommentsCollection commentsCollection){
+ if (commentsCollection.size()==0) return;
+
+ // I should sort all the direct children and the comments, if a comment is the first thing then it
+ // a comment to the CompilationUnit
+ // FIXME if there is no package it could be also a comment to the following class...
+ // so I could use some heuristics in these cases to distinguish the two cases
+
+ List<Comment> comments = commentsCollection.getAll();
+ PositionUtils.sortByBeginPosition(comments);
+ List<Node> children = cu.getChildrenNodes();
+ PositionUtils.sortByBeginPosition(children);
+
+ if (cu.getPackage()!=null && (children.size()==0 || PositionUtils.areInOrder(comments.get(0), children.get(0)))){
+ cu.setComment(comments.get(0));
+ comments.remove(0);
+ }
+
+ insertCommentsInNode(cu,comments);
+ }
+
+ private static boolean attributeLineCommentToNodeOrChild(Node node, LineComment lineComment)
+ {
+ // The node start and end at the same line as the comment,
+ // let's give to it the comment
+ if (node.getBeginLine()==lineComment.getBeginLine() && !node.hasComment())
+ {
+ node.setComment(lineComment);
+ return true;
+ } else {
+ // try with all the children, sorted by reverse position (so the
+ // first one is the nearest to the comment
+ List<Node> children = new LinkedList<Node>();
+ children.addAll(node.getChildrenNodes());
+ PositionUtils.sortByBeginPosition(children);
+ Collections.reverse(children);
+
+ for (Node child : children)
+ {
+ if (attributeLineCommentToNodeOrChild(child, lineComment))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }
+
+ /**
+ * This method try to attributes the nodes received to child of the node.
+ * It returns the node that were not attributed.
+ */
+ private static void insertCommentsInNode(Node node, List<Comment> commentsToAttribute){
+ if (commentsToAttribute.size()==0) return;
+
+ // the comments can:
+ // 1) Inside one of the child, then it is the child that have to associate them
+ // 2) If they are not inside a child they could be preceeding nothing, a comment or a child
+ // if they preceed a child they are assigned to it, otherweise they remain "orphans"
+
+ List<Node> children = node.getChildrenNodes();
+ PositionUtils.sortByBeginPosition(children);
+
+ for (Node child : children){
+ List<Comment> commentsInsideChild = new LinkedList<Comment>();
+ for (Comment c : commentsToAttribute){
+ if (PositionUtils.nodeContains(child, c, _doNotConsiderAnnotationsAsNodeStartForCodeAttribution)){
+ commentsInsideChild.add(c);
+ }
+ }
+ commentsToAttribute.removeAll(commentsInsideChild);
+ insertCommentsInNode(child,commentsInsideChild);
+ }
+
+ // I can attribute in line comments to elements preceeding them, if there
+ // is something contained in their line
+ List<Comment> attributedComments = new LinkedList<Comment>();
+ for (Comment comment : commentsToAttribute)
+ {
+ if (comment.isLineComment())
+ {
+ for (Node child : children)
+ {
+ if (child.getEndLine()==comment.getBeginLine())
+ {
+ if (attributeLineCommentToNodeOrChild(child, comment.asLineComment()))
+ {
+ attributedComments.add(comment);
+ }
+ }
+ }
+ }
+ }
+
+ // at this point I create an ordered list of all remaining comments and children
+ Comment previousComment = null;
+ attributedComments = new LinkedList<Comment>();
+ List<Node> childrenAndComments = new LinkedList<Node>();
+ childrenAndComments.addAll(children);
+ childrenAndComments.addAll(commentsToAttribute);
+ PositionUtils.sortByBeginPosition(childrenAndComments, _doNotConsiderAnnotationsAsNodeStartForCodeAttribution);
+
+ for (Node thing : childrenAndComments){
+ if (thing instanceof Comment){
+ previousComment = (Comment)thing;
+ if (!previousComment.isOrphan())
+ {
+ previousComment = null;
+ }
+ } else {
+ if (previousComment != null && !thing.hasComment()){
+ if (!_doNotAssignCommentsPreceedingEmptyLines || !thereAreLinesBetween(previousComment, thing)) {
+ thing.setComment(previousComment);
+ attributedComments.add(previousComment);
+ previousComment = null;
+ }
+ }
+ }
+ }
+
+ commentsToAttribute.removeAll(attributedComments);
+
+ // all the remaining are orphan nodes
+ for (Comment c : commentsToAttribute){
+ if (c.isOrphan()) {
+ node.addOrphanComment(c);
+ }
+ }
+ }
+
+ private static boolean thereAreLinesBetween(Node a, Node b)
+ {
+ if (!PositionUtils.areInOrder(a, b))
+ {
+ return thereAreLinesBetween(b, a);
+ }
+ int endOfA = a.getEndLine();
+ return b.getBeginLine()>(a.getEndLine()+1);
+ }
+
+ private static void insertComments(CompilationUnit cu, String code) throws IOException {
+ CommentsParser commentsParser = new CommentsParser();
+ CommentsCollection allComments = commentsParser.parse(code);
+
+ insertCommentsInCu(cu,allComments);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/Position.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/Position.java
new file mode 100644
index 000000000..522411c27
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/Position.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser;
+
+import com.github.javaparser.ast.Node;
+
+public class Position {
+ private int line;
+ private int column;
+
+ public static final Position ABSOLUTE_START = new Position(Node.ABSOLUTE_BEGIN_LINE,-1);
+ public static final Position ABSOLUTE_END = new Position(Node.ABSOLUTE_END_LINE,-1);
+
+ public static Position beginOf(Node node){
+ return new Position(node.getBeginLine(),node.getBeginColumn());
+ }
+
+ public static Position endOf(Node node){
+ return new Position(node.getEndLine(),node.getEndColumn());
+ }
+
+ public Position(int line, int column){
+ this.line = line;
+ this.column = column;
+ }
+
+ public int getLine(){
+ return this.line;
+ }
+
+ public int getColumn(){
+ return this.column;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/PositionUtils.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/PositionUtils.java
new file mode 100644
index 000000000..41df81710
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/PositionUtils.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.AnnotableNode;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+
+import java.lang.Override;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedList;
+import java.util.List;
+
+import static java.lang.Integer.signum;
+
+public final class PositionUtils {
+
+ private PositionUtils() {
+ // prevent instantiation
+ }
+
+ public static <T extends Node> void sortByBeginPosition(List<T> nodes){
+ sortByBeginPosition(nodes, false);
+ }
+
+ public static <T extends Node> void sortByBeginPosition(List<T> nodes, final boolean ignoringAnnotations){
+ Collections.sort(nodes, new Comparator<Node>() {
+ @Override
+ public int compare(Node o1, Node o2) {
+ return PositionUtils.compare(o1, o2, ignoringAnnotations);
+ }
+ });
+ }
+
+ public static boolean areInOrder(Node a, Node b){
+ return areInOrder(a, b, false);
+ }
+
+ public static boolean areInOrder(Node a, Node b, boolean ignoringAnnotations){
+ return compare(a, b, ignoringAnnotations) <= 0;
+ }
+
+ private static int compare(Node a, Node b, boolean ignoringAnnotations) {
+ if (ignoringAnnotations) {
+ int signLine = signum(beginLineWithoutConsideringAnnotation(a) - beginLineWithoutConsideringAnnotation(b));
+ if (signLine == 0) {
+ return signum(beginColumnWithoutConsideringAnnotation(a) - beginColumnWithoutConsideringAnnotation(b));
+ } else {
+ return signLine;
+ }
+ }
+
+ int signLine = signum( a.getBeginLine() - b.getBeginLine() );
+ if (signLine == 0) {
+ return signum(a.getBeginColumn() - b.getBeginColumn());
+ } else {
+ return signLine;
+ }
+ }
+
+ public static AnnotationExpr getLastAnnotation(Node node) {
+ if (node instanceof AnnotableNode){
+ List<AnnotationExpr> annotations = new LinkedList<AnnotationExpr>();
+ annotations.addAll(((AnnotableNode) node).getAnnotations());
+ if (annotations.size()==0){
+ return null;
+ }
+ sortByBeginPosition(annotations);
+ return annotations.get(annotations.size()-1);
+ } else {
+ return null;
+ }
+ }
+
+ private static int beginLineWithoutConsideringAnnotation(Node node) {
+ return beginNodeWithoutConsideringAnnotations(node).getBeginLine();
+ }
+
+
+ private static int beginColumnWithoutConsideringAnnotation(Node node) {
+ return beginNodeWithoutConsideringAnnotations(node).getBeginColumn();
+ }
+
+ private static Node beginNodeWithoutConsideringAnnotations(Node node) {
+ if (node instanceof MethodDeclaration) {
+ MethodDeclaration casted = (MethodDeclaration) node;
+ return casted.getType();
+ } else if (node instanceof FieldDeclaration) {
+ FieldDeclaration casted = (FieldDeclaration) node;
+ return casted.getType();
+ } else if (node instanceof ClassOrInterfaceDeclaration) {
+ ClassOrInterfaceDeclaration casted = (ClassOrInterfaceDeclaration) node;
+ return casted.getNameExpr();
+ } else {
+ return node;
+ }
+ }
+
+ public static boolean nodeContains(Node container, Node contained, boolean ignoringAnnotations){
+ if (!ignoringAnnotations || PositionUtils.getLastAnnotation(container)==null){
+ return container.contains(contained);
+ }
+ if (!container.contains(contained)){
+ return false;
+ }
+ // if the node is contained, but it comes immediately after the annotations,
+ // let's not consider it contained
+ if (container instanceof AnnotableNode){
+ int bl = beginLineWithoutConsideringAnnotation(container);
+ int bc = beginColumnWithoutConsideringAnnotation(container);
+ if (bl>contained.getBeginLine()) return false;
+ if (bl==contained.getBeginLine() && bc>contained.getBeginColumn()) return false;
+ if (container.getEndLine()<contained.getEndLine()) return false;
+ if (container.getEndLine()==contained.getEndLine() && container.getEndColumn()<contained.getEndColumn()) return false;
+ return true;
+ }
+ return true;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/SourcesHelper.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/SourcesHelper.java
new file mode 100644
index 000000000..87f83f0da
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/SourcesHelper.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser;
+
+import java.io.*;
+
+public class SourcesHelper {
+
+ static String streamToString(InputStream in, String encoding){
+ if (encoding == null) {
+ return streamToString(in);
+ } else {
+ java.util.Scanner s = new java.util.Scanner(in, encoding).useDelimiter("\\A");
+ return s.hasNext() ? s.next() : "";
+ }
+ }
+
+ static String streamToString(InputStream in){
+ java.util.Scanner s = new java.util.Scanner(in).useDelimiter("\\A");
+ return s.hasNext() ? s.next() : "";
+ }
+
+ static InputStream stringToStream(String s, String encoding) throws UnsupportedEncodingException {
+ byte[] rawData = encoding != null ? s.getBytes(encoding) : s.getBytes();
+ return new ByteArrayInputStream(rawData);
+ }
+
+ static String readerToString(Reader reader) throws IOException {
+ char[] arr = new char[8*1024]; // 8K at a time
+ StringBuilder buf = new StringBuilder();
+ int numChars;
+
+ while ((numChars = reader.read(arr, 0, arr.length)) > 0) {
+ buf.append(arr, 0, numChars);
+ }
+
+ return buf.toString();
+ }
+
+ static Reader stringToReader(String s){
+ return new StringReader(s);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/AccessSpecifier.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/AccessSpecifier.java
new file mode 100644
index 000000000..5eafdac64
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/AccessSpecifier.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+/**
+ * Access specifier. Represents one of the possible levels of
+ * access permitted by the language.
+ *
+ * @author Federico Tomassetti
+ * @since July 2014
+ */
+public enum AccessSpecifier {
+
+ PUBLIC("public"),
+ PRIVATE("private"),
+ PROTECTED("protected"),
+ DEFAULT("");
+
+ private String codeRepresenation;
+
+ private AccessSpecifier(String codeRepresentation) {
+ this.codeRepresenation = codeRepresentation;
+ }
+
+ public String getCodeRepresenation(){
+ return this.codeRepresenation;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/CompilationUnit.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/CompilationUnit.java
new file mode 100644
index 000000000..f3db30274
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/CompilationUnit.java
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * <p>
+ * This class represents the entire compilation unit. Each java file denotes a
+ * compilation unit.
+ * </p>
+ * The CompilationUnit is constructed following the syntax:<br>
+ * <pre>
+ * {@code
+ * CompilationUnit ::= ( }{@link PackageDeclaration}{@code )?
+ * ( }{@link ImportDeclaration}{@code )*
+ * ( }{@link TypeDeclaration}{@code )*
+ * }
+ * </pre>
+ * @author Julio Vilmar Gesser
+ */
+public final class CompilationUnit extends Node {
+
+ private PackageDeclaration pakage;
+
+ private List<ImportDeclaration> imports;
+
+ private List<TypeDeclaration> types;
+
+ public CompilationUnit() {
+ }
+
+ public CompilationUnit(PackageDeclaration pakage, List<ImportDeclaration> imports, List<TypeDeclaration> types) {
+ setPackage(pakage);
+ setImports(imports);
+ setTypes(types);
+ }
+
+ public CompilationUnit(int beginLine, int beginColumn, int endLine, int endColumn, PackageDeclaration pakage, List<ImportDeclaration> imports, List<TypeDeclaration> types) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setPackage(pakage);
+ setImports(imports);
+ setTypes(types);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return a list containing all comments declared in this compilation unit.
+ * Including javadocs, line comments and block comments of all types,
+ * inner-classes and other members.<br>
+ * If there is no comment, <code>null</code> is returned.
+ *
+ * @return list with all comments of this compilation unit or
+ * <code>null</code>
+ * @see JavadocComment
+ * @see com.github.javaparser.ast.comments.LineComment
+ * @see com.github.javaparser.ast.comments.BlockComment
+ */
+ public List<Comment> getComments() {
+ return this.getAllContainedComments();
+ }
+
+ /**
+ * Retrieves the list of imports declared in this compilation unit or
+ * <code>null</code> if there is no import.
+ *
+ * @return the list of imports or <code>null</code> if there is no import
+ */
+ public List<ImportDeclaration> getImports() {
+ return imports;
+ }
+
+ /**
+ * Retrieves the package declaration of this compilation unit.<br>
+ * If this compilation unit has no package declaration (default package),
+ * <code>null</code> is returned.
+ *
+ * @return the package declaration or <code>null</code>
+ */
+ public PackageDeclaration getPackage() {
+ return pakage;
+ }
+
+ /**
+ * Return the list of types declared in this compilation unit.<br>
+ * If there is no types declared, <code>null</code> is returned.
+ *
+ * @return the list of types or <code>null</code> null if there is no type
+ * @see AnnotationDeclaration
+ * @see ClassOrInterfaceDeclaration
+ * @see EmptyTypeDeclaration
+ * @see EnumDeclaration
+ */
+ public List<TypeDeclaration> getTypes() {
+ return types;
+ }
+
+ /**
+ * Sets the list of comments of this compilation unit.
+ *
+ * @param comments
+ * the list of comments
+ */
+ public void setComments(List<Comment> comments) {
+ throw new RuntimeException("Not implemented!");
+ }
+
+ /**
+ * Sets the list of imports of this compilation unit. The list is initially
+ * <code>null</code>.
+ *
+ * @param imports
+ * the list of imports
+ */
+ public void setImports(List<ImportDeclaration> imports) {
+ this.imports = imports;
+ setAsParentNodeOf(this.imports);
+ }
+
+ /**
+ * Sets or clear the package declarations of this compilation unit.
+ *
+ * @param pakage
+ * the pakage declaration to set or <code>null</code> to default
+ * package
+ */
+ public void setPackage(PackageDeclaration pakage) {
+ this.pakage = pakage;
+ setAsParentNodeOf(this.pakage);
+ }
+
+ /**
+ * Sets the list of types declared in this compilation unit.
+ *
+ * @param types
+ * the lis of types
+ */
+ public void setTypes(List<TypeDeclaration> types) {
+ this.types = types;
+ setAsParentNodeOf(this.types);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/DocumentableNode.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/DocumentableNode.java
new file mode 100644
index 000000000..0038831b8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/DocumentableNode.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+import com.github.javaparser.ast.comments.JavadocComment;
+
+/**
+ * Node which can be documented through a Javadoc comment.
+ */
+public interface DocumentableNode {
+
+ public JavadocComment getJavaDoc();
+ public void setJavaDoc(JavadocComment javadocComment);
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/ImportDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/ImportDeclaration.java
new file mode 100644
index 000000000..da249e20b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/ImportDeclaration.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * <p>
+ * This class represents a import declaration. Imports are optional for the
+ * {@link CompilationUnit}.
+ * </p>
+ * The ImportDeclaration is constructed following the syntax:<br>
+ * <pre>
+ * {@code
+ * ImportDeclaration ::= "import" ( "static" )? }{@link NameExpr}{@code ( "." "*" )? ";"
+ * }
+ * </pre>
+ * @author Julio Vilmar Gesser
+ */
+public final class ImportDeclaration extends Node {
+
+ private NameExpr name;
+
+ private boolean static_;
+
+ private boolean asterisk;
+
+ public ImportDeclaration() {
+ }
+
+ public ImportDeclaration(NameExpr name, boolean isStatic, boolean isAsterisk) {
+ setAsterisk(isAsterisk);
+ setName(name);
+ setStatic(isStatic);
+ }
+
+ public ImportDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, NameExpr name, boolean isStatic, boolean isAsterisk) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setAsterisk(isAsterisk);
+ setName(name);
+ setStatic(isStatic);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Retrieves the name of the import.
+ *
+ * @return the name of the import
+ */
+ public NameExpr getName() {
+ return name;
+ }
+
+ /**
+ * Return if the import ends with "*".
+ *
+ * @return <code>true</code> if the import ends with "*", <code>false</code>
+ * otherwise
+ */
+ public boolean isAsterisk() {
+ return asterisk;
+ }
+
+ /**
+ * Return if the import is static.
+ *
+ * @return <code>true</code> if the import is static, <code>false</code>
+ * otherwise
+ */
+ public boolean isStatic() {
+ return static_;
+ }
+
+ /**
+ * Sets if this import is asterisk.
+ *
+ * @param asterisk
+ * <code>true</code> if this import is asterisk
+ */
+ public void setAsterisk(boolean asterisk) {
+ this.asterisk = asterisk;
+ }
+
+ /**
+ * Sets the name this import.
+ *
+ * @param name
+ * the name to set
+ */
+ public void setName(NameExpr name) {
+ this.name = name;
+ setAsParentNodeOf(this.name);
+ }
+
+ /**
+ * Sets if this import is static.
+ *
+ * @param static_
+ * <code>true</code> if this import is static
+ */
+ public void setStatic(boolean static_) {
+ this.static_ = static_;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/NamedNode.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/NamedNode.java
new file mode 100644
index 000000000..7885d71d2
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/NamedNode.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+/**
+ * A node having a name.
+ *
+ * The main reason for this interface is to permit users to manipulate homogeneously all nodes with a getName method.
+ *
+ * @since 2.0.1
+ */
+public interface NamedNode {
+ String getName();
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/Node.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/Node.java
new file mode 100644
index 000000000..f5f9cb238
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/Node.java
@@ -0,0 +1,376 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.visitor.*;
+
+/**
+ * Abstract class for all nodes of the AST.
+ *
+ * Each Node can have one associated comment which describe it and
+ * a number of "orphan comments" which it contains but are not specifically
+ * associated to any element.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Node implements Cloneable {
+
+ private int beginLine;
+
+ private int beginColumn;
+
+ private int endLine;
+
+ private int endColumn;
+
+ private Node parentNode;
+
+ private List<Node> childrenNodes = new LinkedList<Node>();
+ private List<Comment> orphanComments = new LinkedList<Comment>();
+
+ /**
+ * This attribute can store additional information from semantic analysis.
+ */
+ private Object data;
+
+ private Comment comment;
+
+ public Node() {
+ }
+
+ public Node(final int beginLine, final int beginColumn, final int endLine, final int endColumn) {
+ this.beginLine = beginLine;
+ this.beginColumn = beginColumn;
+ this.endLine = endLine;
+ this.endColumn = endColumn;
+ }
+
+ /**
+ * Accept method for visitor support.
+ *
+ * @param <R>
+ * the type the return value of the visitor
+ * @param <A>
+ * the type the argument passed to the visitor
+ * @param v
+ * the visitor implementation
+ * @param arg
+ * the argument passed to the visitor
+ * @return the result of the visit
+ */
+ public abstract <R, A> R accept(GenericVisitor<R, A> v, A arg);
+
+ /**
+ * Accept method for visitor support.
+ *
+ * @param <A>
+ * the type the argument passed for the visitor
+ * @param v
+ * the visitor implementation
+ * @param arg
+ * any value relevant for the visitor
+ */
+ public abstract <A> void accept(VoidVisitor<A> v, A arg);
+
+ /**
+ * Return the begin column of this node.
+ *
+ * @return the begin column of this node
+ */
+ public final int getBeginColumn() {
+ return beginColumn;
+ }
+
+ /**
+ * Return the begin line of this node.
+ *
+ * @return the begin line of this node
+ */
+ public final int getBeginLine() {
+ return beginLine;
+ }
+
+ /**
+ * This is a comment associated with this node.
+ *
+ * @return comment property
+ */
+ public final Comment getComment() {
+ return comment;
+ }
+
+ /**
+ * Use this to retrieve additional information associated to this node.
+ *
+ * @return data property
+ */
+ public final Object getData() {
+ return data;
+ }
+
+ /**
+ * Return the end column of this node.
+ *
+ * @return the end column of this node
+ */
+ public final int getEndColumn() {
+ return endColumn;
+ }
+
+ /**
+ * Return the end line of this node.
+ *
+ * @return the end line of this node
+ */
+ public final int getEndLine() {
+ return endLine;
+ }
+
+ /**
+ * Sets the begin column of this node.
+ *
+ * @param beginColumn
+ * the begin column of this node
+ */
+ public final void setBeginColumn(final int beginColumn) {
+ this.beginColumn = beginColumn;
+ }
+
+ /**
+ * Sets the begin line of this node.
+ *
+ * @param beginLine
+ * the begin line of this node
+ */
+ public final void setBeginLine(final int beginLine) {
+ this.beginLine = beginLine;
+ }
+
+ /**
+ * Use this to store additional information to this node.
+ *
+ * @param comment to be set
+ */
+ public final void setComment(final Comment comment) {
+ if (comment != null && (this instanceof Comment)) {
+ throw new RuntimeException("A comment can not be commented");
+ }
+ if (this.comment != null)
+ {
+ this.comment.setCommentedNode(null);
+ }
+ this.comment = comment;
+ if (comment != null) {
+ this.comment.setCommentedNode(this);
+ }
+ }
+
+ /**
+ * Use this to store additional information to this node.
+ *
+ * @param data to be set
+ */
+ public final void setData(final Object data) {
+ this.data = data;
+ }
+
+ /**
+ * Sets the end column of this node.
+ *
+ * @param endColumn
+ * the end column of this node
+ */
+ public final void setEndColumn(final int endColumn) {
+ this.endColumn = endColumn;
+ }
+
+ /**
+ * Sets the end line of this node.
+ *
+ * @param endLine
+ * the end line of this node
+ */
+ public final void setEndLine(final int endLine) {
+ this.endLine = endLine;
+ }
+
+ /**
+ * Return the String representation of this node.
+ *
+ * @return the String representation of this node
+ */
+ @Override
+ public final String toString() {
+ final DumpVisitor visitor = new DumpVisitor();
+ accept(visitor, null);
+ return visitor.getSource();
+ }
+
+ public final String toStringWithoutComments() {
+ final DumpVisitor visitor = new DumpVisitor(false);
+ accept(visitor, null);
+ return visitor.getSource();
+ }
+
+ @Override
+ public final int hashCode() {
+ return toString().hashCode();
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj == null || !(obj instanceof Node)) {
+ return false;
+ }
+ return EqualsVisitor.equals(this, (Node) obj);
+ }
+
+ @Override
+ public Node clone() {
+ return this.accept(new CloneVisitor(), null);
+ }
+
+ public Node getParentNode() {
+ return parentNode;
+ }
+
+ public List<Node> getChildrenNodes() {
+ return childrenNodes;
+ }
+
+ public boolean contains(Node other) {
+ if (getBeginLine() > other.getBeginLine()) return false;
+ if (getBeginLine() == other.getBeginLine() && getBeginColumn() > other.getBeginColumn()) return false;
+ if (getEndLine() < other.getEndLine()) return false;
+ if (getEndLine() == other.getEndLine() && getEndColumn() < other.getEndColumn()) return false;
+ return true;
+ }
+
+ public void addOrphanComment(Comment comment) {
+ orphanComments.add(comment);
+ comment.setParentNode(this);
+ }
+
+ /**
+ * This is a list of Comment which are inside the node and are not associated
+ * with any meaningful AST Node.
+ *
+ * For example, comments at the end of methods (immediately before the parenthesis)
+ * or at the end of CompilationUnit are orphan comments.
+ *
+ * When more than one comments preceed a statement, the one immediately preceeding it
+ * it is associated with the statements, while the others are "orphan".
+ * @return all comments that cannot be attributed to a concept
+ */
+ public List<Comment> getOrphanComments() {
+ return orphanComments;
+ }
+
+ /**
+ * This is the list of Comment which are contained in the Node either because
+ * they are properly associated to one of its children or because they are floating
+ * around inside the Node
+ * @return all Comments within the node as a list
+ */
+ public List<Comment> getAllContainedComments() {
+ List<Comment> comments = new LinkedList<Comment>();
+ comments.addAll(getOrphanComments());
+
+ for (Node child : getChildrenNodes()) {
+ if (child.getComment() != null) {
+ comments.add(child.getComment());
+ }
+ comments.addAll(child.getAllContainedComments());
+ }
+
+ return comments;
+ }
+
+ /**
+ * Assign a new parent to this node, removing it
+ * from the list of children of the previous parent, if any.
+ *
+ * @param parentNode node to be set as parent
+ */
+ public void setParentNode(Node parentNode) {
+ // remove from old parent, if any
+ if (this.parentNode != null) {
+ this.parentNode.childrenNodes.remove(this);
+ }
+ this.parentNode = parentNode;
+ // add to new parent, if any
+ if (this.parentNode != null) {
+ this.parentNode.childrenNodes.add(this);
+ }
+ }
+
+ protected void setAsParentNodeOf(List<? extends Node> childNodes) {
+ if (childNodes != null) {
+ Iterator<? extends Node> it = childNodes.iterator();
+ while (it.hasNext()) {
+ Node current = it.next();
+ current.setParentNode(this);
+ }
+ }
+ }
+
+ protected void setAsParentNodeOf(Node childNode) {
+ if (childNode != null) {
+ childNode.setParentNode(this);
+ }
+ }
+
+ public static final int ABSOLUTE_BEGIN_LINE = -1;
+ public static final int ABSOLUTE_END_LINE = -2;
+
+ public boolean isPositionedAfter(int line, int column) {
+ if (line == ABSOLUTE_BEGIN_LINE) return true;
+ if (getBeginLine() > line) {
+ return true;
+ } else if (getBeginLine() == line) {
+ return getBeginColumn() > column;
+ } else {
+ return false;
+ }
+ }
+
+ public boolean isPositionedBefore(int line, int column) {
+ if (line == ABSOLUTE_END_LINE) return true;
+ if (getEndLine() < line) {
+ return true;
+ } else if (getEndLine() == line) {
+ return getEndColumn() < column;
+ } else {
+ return false;
+ }
+ }
+
+ public boolean hasComment()
+ {
+ return comment != null;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/PackageDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/PackageDeclaration.java
new file mode 100644
index 000000000..d0aaf5b1e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/PackageDeclaration.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * <p>
+ * This class represents the package declaration. The package declaration is
+ * optional for the {@link CompilationUnit}.
+ * </p>
+ * The PackageDeclaration is constructed following the syntax:<br>
+ * <pre>
+ * {@code
+ * PackageDeclaration ::= ( }{@link AnnotationExpr}{@code )* "package" }{@link NameExpr}{@code ) ";"
+ * }
+ * </pre>
+ * @author Julio Vilmar Gesser
+ */
+public final class PackageDeclaration extends Node {
+
+ private List<AnnotationExpr> annotations;
+
+ private NameExpr name;
+
+ public PackageDeclaration() {
+ }
+
+ public PackageDeclaration(NameExpr name) {
+ setName(name);
+ }
+
+ public PackageDeclaration(List<AnnotationExpr> annotations, NameExpr name) {
+ setAnnotations(annotations);
+ setName(name);
+ }
+
+ public PackageDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, List<AnnotationExpr> annotations, NameExpr name) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setAnnotations(annotations);
+ setName(name);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Retrieves the list of annotations declared before the package
+ * declaration. Return <code>null</code> if there are no annotations.
+ *
+ * @return list of annotations or <code>null</code>
+ */
+ public List<AnnotationExpr> getAnnotations() {
+ return annotations;
+ }
+
+ /**
+ * Return the name of the package.
+ *
+ * @return the name of the package
+ */
+ public NameExpr getName() {
+ return name;
+ }
+
+ /**
+ * @param annotations
+ * the annotations to set
+ */
+ public void setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ setAsParentNodeOf(this.annotations);
+ }
+
+ /**
+ * Sets the name of this package declaration.
+ *
+ * @param name
+ * the name to set
+ */
+ public void setName(NameExpr name) {
+ this.name = name;
+ setAsParentNodeOf(this.name);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/TreeVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/TreeVisitor.java
new file mode 100644
index 000000000..f3b2672d0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/TreeVisitor.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+public abstract class TreeVisitor {
+
+ public void visitDepthFirst(Node node){
+ process(node);
+ for (Node child : node.getChildrenNodes()){
+ visitDepthFirst(child);
+ }
+ }
+
+ public abstract void process(Node node);
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/TypeParameter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/TypeParameter.java
new file mode 100644
index 000000000..c43d3793d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/TypeParameter.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast;
+
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * <p>
+ * This class represents the declaration of a generics argument.
+ * </p>
+ * The TypeParameter is constructed following the syntax:<br>
+ * <pre>
+ * {@code
+ * TypeParameter ::= <IDENTIFIER> ( "extends" }{@link ClassOrInterfaceType}{@code ( "&" }{@link ClassOrInterfaceType}{@code )* )?
+ * }
+ * </pre>
+ * @author Julio Vilmar Gesser
+ */
+public final class TypeParameter extends Node implements NamedNode {
+
+ private String name;
+
+ private List<AnnotationExpr> annotations;
+
+ private List<ClassOrInterfaceType> typeBound;
+
+ public TypeParameter() {
+ }
+
+ public TypeParameter(final String name, final List<ClassOrInterfaceType> typeBound) {
+ setName(name);
+ setTypeBound(typeBound);
+ }
+
+ public TypeParameter(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final String name, final List<ClassOrInterfaceType> typeBound) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setName(name);
+ setTypeBound(typeBound);
+ }
+
+ public TypeParameter(int beginLine, int beginColumn, int endLine,
+ int endColumn, String name, List<ClassOrInterfaceType> typeBound, List<AnnotationExpr> annotations) {
+ this(beginLine, beginColumn, endLine, endColumn, name, typeBound);
+ setName(name);
+ setTypeBound(typeBound);
+ this.annotations = annotations;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return the name of the paramenter.
+ *
+ * @return the name of the paramenter
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Return the list of {@link ClassOrInterfaceType} that this parameter
+ * extends. Return <code>null</code> null if there are no type.
+ *
+ * @return list of types that this paramente extends or <code>null</code>
+ */
+ public List<ClassOrInterfaceType> getTypeBound() {
+ return typeBound;
+ }
+
+ /**
+ * Sets the name of this type parameter.
+ *
+ * @param name
+ * the name to set
+ */
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ /**
+ * Sets the list o types.
+ *
+ * @param typeBound
+ * the typeBound to set
+ */
+ public void setTypeBound(final List<ClassOrInterfaceType> typeBound) {
+ this.typeBound = typeBound;
+ setAsParentNodeOf(typeBound);
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ return annotations;
+ }
+
+ public void setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotableNode.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotableNode.java
new file mode 100644
index 000000000..47c8c4fe8
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotableNode.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.expr.AnnotationExpr;
+
+import java.util.List;
+
+/**
+ * An element which can be the target of annotations.
+ *
+ * @author Federico Tomassetti
+ * @since July 2014
+ */
+public interface AnnotableNode {
+ public List<AnnotationExpr> getAnnotations();
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotationDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotationDeclaration.java
new file mode 100644
index 000000000..51f25617a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotationDeclaration.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AnnotationDeclaration extends TypeDeclaration implements DocumentableNode {
+
+ public AnnotationDeclaration() {
+ }
+
+ public AnnotationDeclaration(int modifiers, String name) {
+ super(modifiers, name);
+ }
+
+ public AnnotationDeclaration(int modifiers, List<AnnotationExpr> annotations, String name, List<BodyDeclaration> members) {
+ super(annotations, modifiers, name, members);
+ }
+
+ public AnnotationDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, int modifiers, List<AnnotationExpr> annotations, String name, List<BodyDeclaration> members) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, modifiers, name, members);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ this.javadocComment = javadocComment;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return javadocComment;
+ }
+
+ private JavadocComment javadocComment;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java
new file mode 100644
index 000000000..a81e6cc71
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.NamedNode;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AnnotationMemberDeclaration extends BodyDeclaration implements DocumentableNode, NamedNode {
+
+ private int modifiers;
+
+ private Type type;
+
+ private String name;
+
+ private Expression defaultValue;
+
+ public AnnotationMemberDeclaration() {
+ }
+
+ public AnnotationMemberDeclaration(int modifiers, Type type, String name, Expression defaultValue) {
+ setModifiers(modifiers);
+ setType(type);
+ setName(name);
+ setDefaultValue(defaultValue);
+ }
+
+ public AnnotationMemberDeclaration(int modifiers, List<AnnotationExpr> annotations, Type type, String name, Expression defaultValue) {
+ super(annotations);
+ setModifiers(modifiers);
+ setType(type);
+ setName(name);
+ setDefaultValue(defaultValue);
+ }
+
+ public AnnotationMemberDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, int modifiers, List<AnnotationExpr> annotations, Type type, String name, Expression defaultValue) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations);
+ setModifiers(modifiers);
+ setType(type);
+ setName(name);
+ setDefaultValue(defaultValue);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getDefaultValue() {
+ return defaultValue;
+ }
+
+ /**
+ * Return the modifiers of this member declaration.
+ *
+ * @see ModifierSet
+ * @return modifiers
+ */
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setDefaultValue(Expression defaultValue) {
+ this.defaultValue = defaultValue;
+ setAsParentNodeOf(defaultValue);
+ }
+
+ public void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(type);
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ this.javadocComment = javadocComment;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return javadocComment;
+ }
+
+ private JavadocComment javadocComment;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/BaseParameter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/BaseParameter.java
new file mode 100644
index 000000000..e14deb177
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/BaseParameter.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+
+import java.util.List;
+
+public abstract class BaseParameter extends Node {
+ private int modifiers;
+
+ private List<AnnotationExpr> annotations;
+
+ private VariableDeclaratorId id;
+
+ public BaseParameter() {
+ }
+
+ public BaseParameter(VariableDeclaratorId id) {
+ setId(id);
+ }
+
+ public BaseParameter(int modifiers, VariableDeclaratorId id) {
+ setModifiers(modifiers);
+ setId(id);
+ }
+
+ public BaseParameter(int modifiers, List<AnnotationExpr> annotations, VariableDeclaratorId id) {
+ setModifiers(modifiers);
+ setAnnotations(annotations);
+ setId(id);
+ }
+
+ public BaseParameter(int beginLine, int beginColumn, int endLine, int endColumn, int modifiers, List<AnnotationExpr> annotations, VariableDeclaratorId id) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setModifiers(modifiers);
+ setAnnotations(annotations);
+ setId(id);
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ return annotations;
+ }
+
+ public VariableDeclaratorId getId() {
+ return id;
+ }
+
+ /**
+ * Return the modifiers of this parameter declaration.
+ *
+ * @see ModifierSet
+ * @return modifiers
+ */
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public void setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ setAsParentNodeOf(this.annotations);
+ }
+
+ public void setId(VariableDeclaratorId id) {
+ this.id = id;
+ setAsParentNodeOf(this.id);
+ }
+
+ public void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/BodyDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/BodyDeclaration.java
new file mode 100644
index 000000000..bbf138b77
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/BodyDeclaration.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class BodyDeclaration extends Node implements AnnotableNode {
+
+ private List<AnnotationExpr> annotations;
+
+ public BodyDeclaration() {
+ }
+
+ public BodyDeclaration(List<AnnotationExpr> annotations) {
+ setAnnotations(annotations);
+ }
+
+ public BodyDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, List<AnnotationExpr> annotations) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setAnnotations(annotations);
+ }
+
+ public final List<AnnotationExpr> getAnnotations() {
+ if (annotations==null){
+ annotations = new ArrayList<AnnotationExpr>();
+ }
+ return annotations;
+ }
+
+ public final void setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ setAsParentNodeOf(this.annotations);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java
new file mode 100644
index 000000000..e098f6edb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ClassOrInterfaceDeclaration extends TypeDeclaration implements DocumentableNode {
+
+ private boolean interface_;
+
+ private List<TypeParameter> typeParameters;
+
+ // Can contain more than one item if this is an interface
+ private List<ClassOrInterfaceType> extendsList;
+
+ private List<ClassOrInterfaceType> implementsList;
+
+ public ClassOrInterfaceDeclaration() {
+ }
+
+ public ClassOrInterfaceDeclaration(final int modifiers, final boolean isInterface, final String name) {
+ super(modifiers, name);
+ setInterface(isInterface);
+ }
+
+ public ClassOrInterfaceDeclaration(final int modifiers,
+ final List<AnnotationExpr> annotations, final boolean isInterface, final String name,
+ final List<TypeParameter> typeParameters, final List<ClassOrInterfaceType> extendsList,
+ final List<ClassOrInterfaceType> implementsList, final List<BodyDeclaration> members) {
+ super(annotations, modifiers, name, members);
+ setInterface(isInterface);
+ setTypeParameters(typeParameters);
+ setExtends(extendsList);
+ setImplements(implementsList);
+ }
+
+ public ClassOrInterfaceDeclaration(final int beginLine, final int beginColumn, final int endLine,
+ final int endColumn, final int modifiers,
+ final List<AnnotationExpr> annotations, final boolean isInterface, final String name,
+ final List<TypeParameter> typeParameters, final List<ClassOrInterfaceType> extendsList,
+ final List<ClassOrInterfaceType> implementsList, final List<BodyDeclaration> members) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, modifiers, name, members);
+ setInterface(isInterface);
+ setTypeParameters(typeParameters);
+ setExtends(extendsList);
+ setImplements(implementsList);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<ClassOrInterfaceType> getExtends() {
+ return extendsList;
+ }
+
+ public List<ClassOrInterfaceType> getImplements() {
+ return implementsList;
+ }
+
+ public List<TypeParameter> getTypeParameters() {
+ return typeParameters;
+ }
+
+ public boolean isInterface() {
+ return interface_;
+ }
+
+ public void setExtends(final List<ClassOrInterfaceType> extendsList) {
+ this.extendsList = extendsList;
+ setAsParentNodeOf(this.extendsList);
+ }
+
+ public void setImplements(final List<ClassOrInterfaceType> implementsList) {
+ this.implementsList = implementsList;
+ setAsParentNodeOf(this.implementsList);
+ }
+
+ public void setInterface(final boolean interface_) {
+ this.interface_ = interface_;
+ }
+
+ public void setTypeParameters(final List<TypeParameter> typeParameters) {
+ this.typeParameters = typeParameters;
+ setAsParentNodeOf(this.typeParameters);
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ this.javadocComment = javadocComment;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return javadocComment;
+ }
+
+ private JavadocComment javadocComment;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ConstructorDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ConstructorDeclaration.java
new file mode 100644
index 000000000..892810c59
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ConstructorDeclaration.java
@@ -0,0 +1,237 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import java.util.List;
+import java.util.ArrayList;
+
+import com.github.javaparser.ast.AccessSpecifier;
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.NamedNode;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ConstructorDeclaration extends BodyDeclaration implements DocumentableNode, WithDeclaration,
+ NamedNode {
+
+ private int modifiers;
+
+ private List<TypeParameter> typeParameters;
+
+ private NameExpr name;
+
+ private List<Parameter> parameters;
+
+ private List<NameExpr> throws_;
+
+ private BlockStmt block;
+
+ public ConstructorDeclaration() {
+ }
+
+ public ConstructorDeclaration(int modifiers, String name) {
+ setModifiers(modifiers);
+ setName(name);
+ }
+
+ public ConstructorDeclaration(int modifiers, List<AnnotationExpr> annotations, List<TypeParameter> typeParameters,
+ String name, List<Parameter> parameters, List<NameExpr> throws_, BlockStmt block) {
+ super(annotations);
+ setModifiers(modifiers);
+ setTypeParameters(typeParameters);
+ setName(name);
+ setParameters(parameters);
+ setThrows(throws_);
+ setBlock(block);
+ }
+
+ public ConstructorDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, int modifiers,
+ List<AnnotationExpr> annotations, List<TypeParameter> typeParameters, String name,
+ List<Parameter> parameters, List<NameExpr> throws_, BlockStmt block) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations);
+ setModifiers(modifiers);
+ setTypeParameters(typeParameters);
+ setName(name);
+ setParameters(parameters);
+ setThrows(throws_);
+ setBlock(block);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public BlockStmt getBlock() {
+ return block;
+ }
+
+ /**
+ * Return the modifiers of this member declaration.
+ *
+ * @see ModifierSet
+ * @return modifiers
+ */
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public String getName() {
+ return name == null ? null : name.getName();
+ }
+
+ public NameExpr getNameExpr() {
+ return name;
+ }
+
+ public List<Parameter> getParameters() {
+ if (parameters == null) {
+ parameters = new ArrayList<Parameter>();
+ }
+ return parameters;
+ }
+
+ public List<NameExpr> getThrows() {
+ if (throws_ == null) {
+ throws_ = new ArrayList<NameExpr>();
+ }
+ return throws_;
+ }
+
+ public List<TypeParameter> getTypeParameters() {
+ return typeParameters;
+ }
+
+ public void setBlock(BlockStmt block) {
+ this.block = block;
+ setAsParentNodeOf(this.block);
+ }
+
+ public void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setName(String name) {
+ this.name = new NameExpr(name);
+ }
+
+ public void setNameExpr(NameExpr name) {
+ this.name = name;
+ }
+
+ public void setParameters(List<Parameter> parameters) {
+ this.parameters = parameters;
+ setAsParentNodeOf(this.parameters);
+ }
+
+ public void setThrows(List<NameExpr> throws_) {
+ this.throws_ = throws_;
+ setAsParentNodeOf(this.throws_);
+ }
+
+ public void setTypeParameters(List<TypeParameter> typeParameters) {
+ this.typeParameters = typeParameters;
+ setAsParentNodeOf(this.typeParameters);
+ }
+
+ /**
+ * The declaration returned has this schema:
+ *
+ * [accessSpecifier] className ([paramType [paramName]])
+ * [throws exceptionsList]
+ */
+ @Override
+ public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows,
+ boolean includingParameterName) {
+ StringBuffer sb = new StringBuffer();
+ if (includingModifiers) {
+ AccessSpecifier accessSpecifier = ModifierSet.getAccessSpecifier(getModifiers());
+ sb.append(accessSpecifier.getCodeRepresenation());
+ sb.append(accessSpecifier == AccessSpecifier.DEFAULT ? "" : " ");
+ }
+ sb.append(getName());
+ sb.append("(");
+ boolean firstParam = true;
+ for (Parameter param : getParameters())
+ {
+ if (firstParam) {
+ firstParam = false;
+ } else {
+ sb.append(", ");
+ }
+ if (includingParameterName) {
+ sb.append(param.toStringWithoutComments());
+ } else {
+ sb.append(param.getType().toStringWithoutComments());
+ }
+ }
+ sb.append(")");
+ if (includingThrows) {
+ boolean firstThrow = true;
+ for (NameExpr thr : getThrows()) {
+ if (firstThrow) {
+ firstThrow = false;
+ sb.append(" throws ");
+ } else {
+ sb.append(", ");
+ }
+ sb.append(thr.toStringWithoutComments());
+ }
+ }
+ return sb.toString();
+ }
+
+ @Override
+ public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows) {
+ return getDeclarationAsString(includingModifiers, includingThrows, true);
+ }
+
+ @Override
+ public String getDeclarationAsString() {
+ return getDeclarationAsString(true, true, true);
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ this.javadocComment = javadocComment;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return javadocComment;
+ }
+
+ private JavadocComment javadocComment;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EmptyMemberDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EmptyMemberDeclaration.java
new file mode 100644
index 000000000..1c19d097f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EmptyMemberDeclaration.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EmptyMemberDeclaration extends BodyDeclaration implements DocumentableNode {
+
+ public EmptyMemberDeclaration() {
+ super(null);
+ }
+
+ public EmptyMemberDeclaration(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn, null);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ this.javadocComment = javadocComment;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return javadocComment;
+ }
+
+ private JavadocComment javadocComment;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EmptyTypeDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EmptyTypeDeclaration.java
new file mode 100644
index 000000000..59e868600
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EmptyTypeDeclaration.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EmptyTypeDeclaration extends TypeDeclaration implements DocumentableNode {
+
+ public EmptyTypeDeclaration() {
+ super(null, 0, null, null);
+ }
+
+ public EmptyTypeDeclaration(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn, null, 0, null, null);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EnumConstantDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EnumConstantDeclaration.java
new file mode 100644
index 000000000..d7c425cda
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EnumConstantDeclaration.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.NamedNode;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EnumConstantDeclaration extends BodyDeclaration implements DocumentableNode, NamedNode {
+
+ private String name;
+
+ private List<Expression> args;
+
+ private List<BodyDeclaration> classBody;
+
+ public EnumConstantDeclaration() {
+ }
+
+ public EnumConstantDeclaration(String name) {
+ setName(name);
+ }
+
+ public EnumConstantDeclaration(List<AnnotationExpr> annotations, String name, List<Expression> args, List<BodyDeclaration> classBody) {
+ super(annotations);
+ setName(name);
+ setArgs(args);
+ setClassBody(classBody);
+ }
+
+ public EnumConstantDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, List<AnnotationExpr> annotations, String name, List<Expression> args, List<BodyDeclaration> classBody) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations);
+ setName(name);
+ setArgs(args);
+ setClassBody(classBody);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getArgs() {
+ return args;
+ }
+
+ public List<BodyDeclaration> getClassBody() {
+ return classBody;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setArgs(List<Expression> args) {
+ this.args = args;
+ setAsParentNodeOf(this.args);
+ }
+
+ public void setClassBody(List<BodyDeclaration> classBody) {
+ this.classBody = classBody;
+ setAsParentNodeOf(this.classBody);
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ this.javadocComment = javadocComment;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return javadocComment;
+ }
+
+ private JavadocComment javadocComment;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EnumDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EnumDeclaration.java
new file mode 100644
index 000000000..34b8ee4e5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/EnumDeclaration.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EnumDeclaration extends TypeDeclaration implements DocumentableNode {
+
+ private List<ClassOrInterfaceType> implementsList;
+
+ private List<EnumConstantDeclaration> entries;
+
+ public EnumDeclaration() {
+ }
+
+ public EnumDeclaration(int modifiers, String name) {
+ super(modifiers, name);
+ }
+
+ public EnumDeclaration(int modifiers, List<AnnotationExpr> annotations, String name, List<ClassOrInterfaceType> implementsList, List<EnumConstantDeclaration> entries, List<BodyDeclaration> members) {
+ super(annotations, modifiers, name, members);
+ setImplements(implementsList);
+ setEntries(entries);
+ }
+
+ public EnumDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, int modifiers, List<AnnotationExpr> annotations, String name, List<ClassOrInterfaceType> implementsList, List<EnumConstantDeclaration> entries, List<BodyDeclaration> members) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, modifiers, name, members);
+ setImplements(implementsList);
+ setEntries(entries);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<EnumConstantDeclaration> getEntries() {
+ return entries;
+ }
+
+ public List<ClassOrInterfaceType> getImplements() {
+ return implementsList;
+ }
+
+ public void setEntries(List<EnumConstantDeclaration> entries) {
+ this.entries = entries;
+ setAsParentNodeOf(this.entries);
+ }
+
+ public void setImplements(List<ClassOrInterfaceType> implementsList) {
+ this.implementsList = implementsList;
+ setAsParentNodeOf(this.implementsList);
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ this.javadocComment = javadocComment;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return javadocComment;
+ }
+
+ private JavadocComment javadocComment;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/FieldDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/FieldDeclaration.java
new file mode 100644
index 000000000..2f48ed8f5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/FieldDeclaration.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class FieldDeclaration extends BodyDeclaration implements DocumentableNode {
+
+ private int modifiers;
+
+ private Type type;
+
+ private List<VariableDeclarator> variables;
+
+ public FieldDeclaration() {
+ }
+
+ public FieldDeclaration(int modifiers, Type type, VariableDeclarator variable) {
+ setModifiers(modifiers);
+ setType(type);
+ List<VariableDeclarator> aux = new ArrayList<VariableDeclarator>();
+ aux.add(variable);
+ setVariables(aux);
+ }
+
+ public FieldDeclaration(int modifiers, Type type, List<VariableDeclarator> variables) {
+ setModifiers(modifiers);
+ setType(type);
+ setVariables(variables);
+ }
+
+ public FieldDeclaration(int modifiers, List<AnnotationExpr> annotations, Type type, List<VariableDeclarator> variables) {
+ super(annotations);
+ setModifiers(modifiers);
+ setType(type);
+ setVariables(variables);
+ }
+
+ public FieldDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, int modifiers, List<AnnotationExpr> annotations, Type type, List<VariableDeclarator> variables) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations);
+ setModifiers(modifiers);
+ setType(type);
+ setVariables(variables);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return the modifiers of this member declaration.
+ *
+ * @see ModifierSet
+ * @return modifiers
+ */
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public List<VariableDeclarator> getVariables() {
+ return variables;
+ }
+
+ public void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+
+ public void setVariables(List<VariableDeclarator> variables) {
+ this.variables = variables;
+ setAsParentNodeOf(this.variables);
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ this.javadocComment = javadocComment;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return javadocComment;
+ }
+
+ private JavadocComment javadocComment;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/InitializerDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/InitializerDeclaration.java
new file mode 100644
index 000000000..ea1df9a98
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/InitializerDeclaration.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class InitializerDeclaration extends BodyDeclaration implements DocumentableNode {
+
+ private boolean isStatic;
+
+ private BlockStmt block;
+
+ public InitializerDeclaration() {
+ }
+
+ public InitializerDeclaration(boolean isStatic, BlockStmt block) {
+ super(null);
+ setStatic(isStatic);
+ setBlock(block);
+ }
+
+ public InitializerDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, boolean isStatic, BlockStmt block) {
+ super(beginLine, beginColumn, endLine, endColumn, null);
+ setStatic(isStatic);
+ setBlock(block);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public BlockStmt getBlock() {
+ return block;
+ }
+
+ public boolean isStatic() {
+ return isStatic;
+ }
+
+ public void setBlock(BlockStmt block) {
+ this.block = block;
+ setAsParentNodeOf(this.block);
+ }
+
+ public void setStatic(boolean isStatic) {
+ this.isStatic = isStatic;
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ this.javadocComment = javadocComment;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return javadocComment;
+ }
+
+ private JavadocComment javadocComment;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/MethodDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/MethodDeclaration.java
new file mode 100644
index 000000000..7f9ca0b7d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/MethodDeclaration.java
@@ -0,0 +1,305 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.AccessSpecifier;
+import com.github.javaparser.ast.DocumentableNode;
+import com.github.javaparser.ast.NamedNode;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MethodDeclaration extends BodyDeclaration implements DocumentableNode, WithDeclaration, NamedNode {
+
+ private int modifiers;
+
+ private List<TypeParameter> typeParameters;
+
+ private Type type;
+
+ private NameExpr name;
+
+ private List<Parameter> parameters;
+
+ private int arrayCount;
+
+ private List<NameExpr> throws_;
+
+ private BlockStmt body;
+
+ private boolean isDefault = false;
+
+ public MethodDeclaration() {
+ }
+
+ public MethodDeclaration(final int modifiers, final Type type, final String name) {
+ setModifiers(modifiers);
+ setType(type);
+ setName(name);
+ }
+
+ public MethodDeclaration(final int modifiers, final Type type, final String name, final List<Parameter> parameters) {
+ setModifiers(modifiers);
+ setType(type);
+ setName(name);
+ setParameters(parameters);
+ }
+
+ public MethodDeclaration(final int modifiers, final List<AnnotationExpr> annotations,
+ final List<TypeParameter> typeParameters, final Type type, final String name,
+ final List<Parameter> parameters, final int arrayCount, final List<NameExpr> throws_, final BlockStmt block) {
+ super(annotations);
+ setModifiers(modifiers);
+ setTypeParameters(typeParameters);
+ setType(type);
+ setName(name);
+ setParameters(parameters);
+ setArrayCount(arrayCount);
+ setThrows(throws_);
+ setBody(block);
+ }
+
+ public MethodDeclaration(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final int modifiers, final List<AnnotationExpr> annotations,
+ final List<TypeParameter> typeParameters, final Type type, final String name,
+ final List<Parameter> parameters, final int arrayCount, final List<NameExpr> throws_, final BlockStmt block) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations);
+ setModifiers(modifiers);
+ setTypeParameters(typeParameters);
+ setType(type);
+ setName(name);
+ setParameters(parameters);
+ setArrayCount(arrayCount);
+ setThrows(throws_);
+ setBody(block);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public int getArrayCount() {
+ return arrayCount;
+ }
+
+ // FIXME this is called "Block" in the constructor. Pick one.
+ public BlockStmt getBody() {
+ return body;
+ }
+
+ /**
+ * Return the modifiers of this member declaration.
+ *
+ * @see ModifierSet
+ * @return modifiers
+ */
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public String getName() {
+ return name.getName();
+ }
+
+ public NameExpr getNameExpr() {
+ return name;
+ }
+
+ public List<Parameter> getParameters() {
+ if (parameters == null) {
+ parameters = new ArrayList<Parameter>();
+ }
+ return parameters;
+ }
+
+ public List<NameExpr> getThrows() {
+ if (throws_ == null) {
+ throws_ = new ArrayList<NameExpr>();
+ }
+ return throws_;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public List<TypeParameter> getTypeParameters() {
+ return typeParameters;
+ }
+
+ public void setArrayCount(final int arrayCount) {
+ this.arrayCount = arrayCount;
+ }
+
+ public void setBody(final BlockStmt body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ }
+
+ public void setModifiers(final int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setName(final String name) {
+ this.name = new NameExpr(name);
+ }
+
+ public void setNameExpr(final NameExpr name) {
+ this.name = name;
+ }
+
+ public void setParameters(final List<Parameter> parameters) {
+ this.parameters = parameters;
+ setAsParentNodeOf(this.parameters);
+ }
+
+ public void setThrows(final List<NameExpr> throws_) {
+ this.throws_ = throws_;
+ setAsParentNodeOf(this.throws_);
+ }
+
+ public void setType(final Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+
+ public void setTypeParameters(final List<TypeParameter> typeParameters) {
+ this.typeParameters = typeParameters;
+ setAsParentNodeOf(typeParameters);
+ }
+
+
+ public boolean isDefault() {
+ return isDefault;
+ }
+
+ public void setDefault(boolean isDefault) {
+ this.isDefault = isDefault;
+ }
+
+
+ @Override
+ public String getDeclarationAsString() {
+ return getDeclarationAsString(true, true, true);
+ }
+
+ @Override
+ public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows) {
+ return getDeclarationAsString(includingModifiers, includingThrows, true);
+ }
+
+ /**
+ * The declaration returned has this schema:
+ *
+ * [accessSpecifier] [static] [abstract] [final] [native]
+ * [synchronized] returnType methodName ([paramType [paramName]])
+ * [throws exceptionsList]
+ * @return method declaration as String
+ */
+ @Override
+ public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows, boolean includingParameterName) {
+ StringBuffer sb = new StringBuffer();
+ if (includingModifiers) {
+ AccessSpecifier accessSpecifier = ModifierSet.getAccessSpecifier(getModifiers());
+ sb.append(accessSpecifier.getCodeRepresenation());
+ sb.append(accessSpecifier == AccessSpecifier.DEFAULT ? "" : " ");
+ if (ModifierSet.isStatic(getModifiers())){
+ sb.append("static ");
+ }
+ if (ModifierSet.isAbstract(getModifiers())){
+ sb.append("abstract ");
+ }
+ if (ModifierSet.isFinal(getModifiers())){
+ sb.append("final ");
+ }
+ if (ModifierSet.isNative(getModifiers())){
+ sb.append("native ");
+ }
+ if (ModifierSet.isSynchronized(getModifiers())){
+ sb.append("synchronized ");
+ }
+ }
+ // TODO verify it does not print comments connected to the type
+ sb.append(getType().toStringWithoutComments());
+ sb.append(" ");
+ sb.append(getName());
+ sb.append("(");
+ boolean firstParam = true;
+ for (Parameter param : getParameters())
+ {
+ if (firstParam) {
+ firstParam = false;
+ } else {
+ sb.append(", ");
+ }
+ if (includingParameterName) {
+ sb.append(param.toStringWithoutComments());
+ } else {
+ sb.append(param.getType().toStringWithoutComments());
+ if (param.isVarArgs()) {
+ sb.append("...");
+ }
+ }
+ }
+ sb.append(")");
+ if (includingThrows) {
+ boolean firstThrow = true;
+ for (NameExpr thr : getThrows()) {
+ if (firstThrow) {
+ firstThrow = false;
+ sb.append(" throws ");
+ } else {
+ sb.append(", ");
+ }
+ sb.append(thr.toStringWithoutComments());
+ }
+ }
+ return sb.toString();
+ }
+
+ @Override
+ public void setJavaDoc(JavadocComment javadocComment) {
+ this.javadocComment = javadocComment;
+ }
+
+ @Override
+ public JavadocComment getJavaDoc() {
+ return javadocComment;
+ }
+
+ private JavadocComment javadocComment;
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ModifierSet.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ModifierSet.java
new file mode 100644
index 000000000..6981ced30
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/ModifierSet.java
@@ -0,0 +1,146 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.AccessSpecifier;
+
+import java.lang.reflect.Modifier;
+
+/**
+ * Class to hold modifiers.<br>
+ * The modifier constants declared here holds equivalent values to
+ * {@link Modifier} constants.
+ */
+public final class ModifierSet {
+
+ /* Definitions of the bits in the modifiers field. */
+
+ public static final int PUBLIC = Modifier.PUBLIC;
+
+ public static final int PRIVATE = Modifier.PRIVATE;
+
+ public static final int PROTECTED = Modifier.PROTECTED;
+
+ public static final int STATIC = Modifier.STATIC;
+
+ public static final int FINAL = Modifier.FINAL;
+
+ public static final int SYNCHRONIZED = Modifier.SYNCHRONIZED;
+
+ public static final int VOLATILE = Modifier.VOLATILE;
+
+ public static final int TRANSIENT = Modifier.TRANSIENT;
+
+ public static final int NATIVE = Modifier.NATIVE;
+
+ public static final int ABSTRACT = Modifier.ABSTRACT;
+
+ public static final int STRICTFP = Modifier.STRICT;
+
+ public static AccessSpecifier getAccessSpecifier(int modifiers) {
+ if (isPublic(modifiers)){
+ return AccessSpecifier.PUBLIC;
+ } else if (isProtected(modifiers)){
+ return AccessSpecifier.PROTECTED;
+ } else if (isPrivate(modifiers)){
+ return AccessSpecifier.PRIVATE;
+ } else {
+ return AccessSpecifier.DEFAULT;
+ }
+ }
+
+ public static int addModifier(int modifiers, int mod) {
+ return modifiers | mod;
+ }
+
+ public static boolean hasModifier(int modifiers, int modifier) {
+ return (modifiers & modifier) != 0;
+ }
+
+ public static boolean isAbstract(int modifiers) {
+ return (modifiers & ABSTRACT) != 0;
+ }
+
+ public static boolean isFinal(int modifiers) {
+ return (modifiers & FINAL) != 0;
+ }
+
+ public static boolean isNative(int modifiers) {
+ return (modifiers & NATIVE) != 0;
+ }
+
+ public static boolean isPrivate(int modifiers) {
+ return (modifiers & PRIVATE) != 0;
+ }
+
+ public static boolean isProtected(int modifiers) {
+ return (modifiers & PROTECTED) != 0;
+ }
+
+ /**
+ * Is the element accessible from within the package?
+ * It is the level of access which is applied if no modifiers are chosen,
+ * it is sometimes called "default".
+ * @param modifiers indicator
+ * @return true if modifier denotes package level access
+ */
+ public static boolean hasPackageLevelAccess(int modifiers) {
+ return !isPublic(modifiers) && !isProtected(modifiers) && !isPrivate(modifiers);
+ }
+
+ public static boolean isPublic(int modifiers) {
+ return (modifiers & PUBLIC) != 0;
+ }
+
+ public static boolean isStatic(int modifiers) {
+ return (modifiers & STATIC) != 0;
+ }
+
+ public static boolean isStrictfp(int modifiers) {
+ return (modifiers & STRICTFP) != 0;
+ }
+
+ public static boolean isSynchronized(int modifiers) {
+ return (modifiers & SYNCHRONIZED) != 0;
+ }
+
+ public static boolean isTransient(int modifiers) {
+ return (modifiers & TRANSIENT) != 0;
+ }
+
+ public static boolean isVolatile(int modifiers) {
+ return (modifiers & VOLATILE) != 0;
+ }
+
+ /**
+ * Removes the given modifier.
+ * @param modifiers existing modifiers
+ * @param mod modifier to be removed
+ * @return result for removing modifier
+ */
+ public static int removeModifier(int modifiers, int mod) {
+ return modifiers & ~mod;
+ }
+
+ private ModifierSet() {
+ }
+} \ No newline at end of file
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/MultiTypeParameter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/MultiTypeParameter.java
new file mode 100644
index 000000000..6dad24c71
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/MultiTypeParameter.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+public class MultiTypeParameter extends BaseParameter {
+ private List<Type> types;
+
+ public MultiTypeParameter() {}
+
+ public MultiTypeParameter(int modifiers, List<AnnotationExpr> annotations, List<Type> types, VariableDeclaratorId id) {
+ super(modifiers, annotations, id);
+ this.types = types;
+ }
+
+ public MultiTypeParameter(int beginLine, int beginColumn, int endLine, int endColumn, int modifiers, List<AnnotationExpr> annotations, List<Type> types, VariableDeclaratorId id) {
+ super(beginLine, beginColumn, endLine, endColumn, modifiers, annotations, id);
+ this.types = types;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Type> getTypes() {
+ return types;
+ }
+
+ public void setTypes(List<Type> types) {
+ this.types = types;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/Parameter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/Parameter.java
new file mode 100644
index 000000000..6113d702a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/Parameter.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class Parameter extends BaseParameter {
+ private Type type;
+
+ private boolean isVarArgs;
+
+ public Parameter() {
+ }
+
+ public Parameter(Type type, VariableDeclaratorId id) {
+ super(id);
+ setType(type);
+ }
+
+ public Parameter(int modifiers, Type type, VariableDeclaratorId id) {
+ super(modifiers, id);
+ setType(type);
+ }
+
+ public Parameter(int beginLine, int beginColumn, int endLine, int endColumn, int modifiers, List<AnnotationExpr> annotations, Type type, boolean isVarArgs, VariableDeclaratorId id) {
+ super(beginLine, beginColumn, endLine, endColumn, modifiers, annotations, id);
+ setType(type);
+ setVarArgs(isVarArgs);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public boolean isVarArgs() {
+ return isVarArgs;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+
+ public void setVarArgs(boolean isVarArgs) {
+ this.isVarArgs = isVarArgs;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/TypeDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/TypeDeclaration.java
new file mode 100644
index 000000000..bd7c09327
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/TypeDeclaration.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.NamedNode;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class TypeDeclaration extends BodyDeclaration implements NamedNode {
+
+ private NameExpr name;
+
+ private int modifiers;
+
+ private List<BodyDeclaration> members;
+
+ public TypeDeclaration() {
+ }
+
+ public TypeDeclaration(int modifiers, String name) {
+ setName(name);
+ setModifiers(modifiers);
+ }
+
+ public TypeDeclaration(List<AnnotationExpr> annotations,
+ int modifiers, String name,
+ List<BodyDeclaration> members) {
+ super(annotations);
+ setName(name);
+ setModifiers(modifiers);
+ setMembers(members);
+ }
+
+ public TypeDeclaration(int beginLine, int beginColumn, int endLine,
+ int endColumn, List<AnnotationExpr> annotations,
+ int modifiers, String name,
+ List<BodyDeclaration> members) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations);
+ setName(name);
+ setModifiers(modifiers);
+ setMembers(members);
+ }
+
+ public final List<BodyDeclaration> getMembers() {
+ return members;
+ }
+
+ /**
+ * Return the modifiers of this type declaration.
+ *
+ * @see ModifierSet
+ * @return modifiers
+ */
+ public final int getModifiers() {
+ return modifiers;
+ }
+
+ public final String getName() {
+ return name.getName();
+ }
+
+ public void setMembers(List<BodyDeclaration> members) {
+ this.members = members;
+ setAsParentNodeOf(this.members);
+ }
+
+ public final void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public final void setName(String name) {
+ this.name = new NameExpr(name);
+ }
+
+ public final void setNameExpr(NameExpr nameExpr) {
+ this.name = nameExpr;
+ }
+
+ public final NameExpr getNameExpr() {
+ return name;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/VariableDeclarator.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/VariableDeclarator.java
new file mode 100644
index 000000000..50097b863
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/VariableDeclarator.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VariableDeclarator extends Node {
+
+ private VariableDeclaratorId id;
+
+ private Expression init;
+
+ public VariableDeclarator() {
+ }
+
+ public VariableDeclarator(VariableDeclaratorId id) {
+ setId(id);
+ }
+
+ public VariableDeclarator(VariableDeclaratorId id, Expression init) {
+ setId(id);
+ setInit(init);
+ }
+
+ public VariableDeclarator(int beginLine, int beginColumn, int endLine, int endColumn, VariableDeclaratorId id, Expression init) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setId(id);
+ setInit(init);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public VariableDeclaratorId getId() {
+ return id;
+ }
+
+ public Expression getInit() {
+ return init;
+ }
+
+ public void setId(VariableDeclaratorId id) {
+ this.id = id;
+ setAsParentNodeOf(this.id);
+ }
+
+ public void setInit(Expression init) {
+ this.init = init;
+ setAsParentNodeOf(this.init);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/VariableDeclaratorId.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/VariableDeclaratorId.java
new file mode 100644
index 000000000..c56bd8e7f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/VariableDeclaratorId.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+import com.github.javaparser.ast.NamedNode;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VariableDeclaratorId extends Node implements NamedNode {
+
+ private String name;
+
+ private int arrayCount;
+
+ public VariableDeclaratorId() {
+ }
+
+ public VariableDeclaratorId(String name) {
+ setName(name);
+ }
+
+ public VariableDeclaratorId(int beginLine, int beginColumn, int endLine, int endColumn, String name, int arrayCount) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setName(name);
+ setArrayCount(arrayCount);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public int getArrayCount() {
+ return arrayCount;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setArrayCount(int arrayCount) {
+ this.arrayCount = arrayCount;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/WithDeclaration.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/WithDeclaration.java
new file mode 100644
index 000000000..8f1725ce6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/body/WithDeclaration.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.body;
+
+/**
+ * Element with a declaration representable as a String.
+ *
+ * @author Federico Tomassetti
+ * @since July 2014
+ */
+public interface WithDeclaration {
+
+ /**
+ * As {@link WithDeclaration#getDeclarationAsString(boolean, boolean, boolean)} including
+ * the modifiers, the throws clause and the parameters with both type and name.
+ * @return String representation of declaration
+ */
+ String getDeclarationAsString();
+
+ /**
+ * As {@link WithDeclaration#getDeclarationAsString(boolean, boolean, boolean)} including
+ * the parameters with both type and name.
+ * @param includingModifiers flag to include the modifiers (if present) in the string produced
+ * @param includingThrows flag to include the throws clause (if present) in the string produced
+ * @return String representation of declaration based on parameter flags
+ */
+ String getDeclarationAsString(boolean includingModifiers, boolean includingThrows);
+
+ /**
+ * A simple representation of the element declaration.
+ * It should fit one string.
+ * @param includingModifiers flag to include the modifiers (if present) in the string produced
+ * @param includingThrows flag to include the throws clause (if present) in the string produced
+ * @param includingParameterName flag to include the parameter name (while the parameter type is always included) in the string produced
+ * @return String representation of declaration based on parameter flags
+ */
+ String getDeclarationAsString(boolean includingModifiers, boolean includingThrows, boolean includingParameterName);
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/BlockComment.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/BlockComment.java
new file mode 100644
index 000000000..299493b87
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/BlockComment.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * <p>
+ * AST node that represent block comments.
+ * </p>
+ * Block comments can has multi lines and are delimited by "/&#42;" and
+ * "&#42;/".
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class BlockComment extends Comment {
+
+ public BlockComment() {
+ }
+
+ public BlockComment(String content) {
+ super(content);
+ }
+
+ public BlockComment(int beginLine, int beginColumn, int endLine, int endColumn, String content) {
+ super(beginLine, beginColumn, endLine, endColumn, content);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/Comment.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/Comment.java
new file mode 100644
index 000000000..135972b92
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/Comment.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import com.github.javaparser.ast.Node;
+
+/**
+ * Abstract class for all AST nodes that represent comments.
+ *
+ * @see BlockComment
+ * @see LineComment
+ * @see JavadocComment
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Comment extends Node {
+
+ private String content;
+ private Node commentedNode;
+
+ public Comment() {
+ }
+
+ public Comment(String content) {
+ this.content = content;
+ }
+
+ public Comment(int beginLine, int beginColumn, int endLine, int endColumn, String content) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.content = content;
+ }
+
+ /**
+ * Return the text of the comment.
+ *
+ * @return text of the comment
+ */
+ public final String getContent() {
+ return content;
+ }
+
+ /**
+ * Sets the text of the comment.
+ *
+ * @param content
+ * the text of the comment to set
+ */
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public boolean isLineComment()
+ {
+ return false;
+ }
+
+ public LineComment asLineComment()
+ {
+ if (isLineComment())
+ {
+ return (LineComment) this;
+ } else {
+ throw new UnsupportedOperationException("Not a line comment");
+ }
+ }
+
+ public Node getCommentedNode()
+ {
+ return this.commentedNode;
+ }
+
+ public void setCommentedNode(Node commentedNode)
+ {
+ if (commentedNode==null)
+ {
+ this.commentedNode = commentedNode;
+ return;
+ }
+ if (commentedNode==this)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (commentedNode instanceof Comment)
+ {
+ throw new IllegalArgumentException();
+ }
+ this.commentedNode = commentedNode;
+ }
+
+ public boolean isOrphan()
+ {
+ return this.commentedNode == null;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsCollection.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsCollection.java
new file mode 100644
index 000000000..ac94c61d5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsCollection.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Set of comments produced by CommentsParser.
+ */
+public class CommentsCollection {
+ private List<LineComment> lineComments = new LinkedList<LineComment>();
+ private List<BlockComment> blockComments = new LinkedList<BlockComment>();
+ private List<JavadocComment> javadocComments = new LinkedList<JavadocComment>();
+
+ public List<LineComment> getLineComments(){
+ return lineComments;
+ }
+
+ public List<BlockComment> getBlockComments(){
+ return blockComments;
+ }
+
+ public List<JavadocComment> getJavadocComments(){
+ return javadocComments;
+ }
+
+ public void addComment(LineComment lineComment){
+ this.lineComments.add(lineComment);
+ }
+
+ public void addComment(BlockComment blockComment){
+ this.blockComments.add(blockComment);
+ }
+
+ public void addComment(JavadocComment javadocComment){
+ this.javadocComments.add(javadocComment);
+ }
+
+ public boolean contains(Comment comment){
+ for (Comment c : getAll()){
+ // we tollerate a difference of one element in the end column:
+ // it depends how \r and \n are calculated...
+ if ( c.getBeginLine()==comment.getBeginLine() &&
+ c.getBeginColumn()==comment.getBeginColumn() &&
+ c.getEndLine()==comment.getEndLine() &&
+ Math.abs(c.getEndColumn()-comment.getEndColumn())<2 ){
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public List<Comment> getAll(){
+ List<Comment> comments = new LinkedList<Comment>();
+ comments.addAll(lineComments);
+ comments.addAll(blockComments);
+ comments.addAll(javadocComments);
+ return comments;
+ }
+
+ public int size(){
+ return lineComments.size()+blockComments.size()+javadocComments.size();
+ }
+
+ public CommentsCollection minus(CommentsCollection other){
+ CommentsCollection result = new CommentsCollection();
+ for (LineComment comment : lineComments){
+ if (!other.contains(comment)){
+ result.lineComments.add(comment);
+ }
+ }
+ for (BlockComment comment : blockComments){
+ if (!other.contains(comment)){
+ result.blockComments.add(comment);
+ }
+ }
+ for (JavadocComment comment : javadocComments){
+ if (!other.contains(comment)){
+ result.javadocComments.add(comment);
+ }
+ }
+ return result;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsParser.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsParser.java
new file mode 100644
index 000000000..3d3a59d45
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsParser.java
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import java.io.*;
+import java.nio.charset.Charset;
+import java.util.*;
+
+/**
+ * This parser cares exclusively about comments.
+ */
+public class CommentsParser {
+
+ private enum State {
+ CODE,
+ IN_LINE_COMMENT,
+ IN_BLOCK_COMMENT,
+ IN_STRING,
+ IN_CHAR;
+ }
+
+ private static final int COLUMNS_PER_TAB = 4;
+
+ public CommentsCollection parse(final String source) throws IOException, UnsupportedEncodingException {
+ InputStream in = new ByteArrayInputStream(source.getBytes(Charset.defaultCharset()));
+ return parse(in, Charset.defaultCharset().name());
+ }
+
+ public CommentsCollection parse(final InputStream in, final String charsetName) throws IOException, UnsupportedEncodingException {
+ boolean lastWasASlashR = false;
+ BufferedReader br = new BufferedReader(new InputStreamReader(in, charsetName));
+ CommentsCollection comments = new CommentsCollection();
+ int r;
+
+ Deque prevTwoChars = new LinkedList<Character>(Arrays.asList('z','z'));
+
+ State state = State.CODE;
+ LineComment currentLineComment = null;
+ BlockComment currentBlockComment = null;
+ StringBuffer currentContent = null;
+
+ int currLine = 1;
+ int currCol = 1;
+
+ while ((r=br.read()) != -1){
+ char c = (char)r;
+ if (c=='\r'){
+ lastWasASlashR = true;
+ } else if (c=='\n'&&lastWasASlashR){
+ lastWasASlashR=false;
+ continue;
+ } else {
+ lastWasASlashR=false;
+ }
+ switch (state) {
+ case CODE:
+ if (prevTwoChars.peekLast().equals('/') && c == '/') {
+ currentLineComment = new LineComment();
+ currentLineComment.setBeginLine(currLine);
+ currentLineComment.setBeginColumn(currCol - 1);
+ state = State.IN_LINE_COMMENT;
+ currentContent = new StringBuffer();
+ } else if (prevTwoChars.peekLast().equals('/') && c == '*') {
+ currentBlockComment = new BlockComment();
+ currentBlockComment.setBeginLine(currLine);
+ currentBlockComment.setBeginColumn(currCol - 1);
+ state = State.IN_BLOCK_COMMENT;
+ currentContent = new StringBuffer();
+ } else if (c == '"') {
+ state = State.IN_STRING;
+ } else if (c == '\'') {
+ state = State.IN_CHAR;
+ } else {
+ // nothing to do
+ }
+ break;
+ case IN_LINE_COMMENT:
+ if (c=='\n' || c=='\r'){
+ currentLineComment.setContent(currentContent.toString());
+ currentLineComment.setEndLine(currLine);
+ currentLineComment.setEndColumn(currCol);
+ comments.addComment(currentLineComment);
+ state = State.CODE;
+ } else {
+ currentContent.append(c);
+ }
+ break;
+ case IN_BLOCK_COMMENT:
+ if (prevTwoChars.peekLast().equals('*') && c=='/' && !prevTwoChars.peekFirst().equals('/')){
+
+ // delete last character
+ String content = currentContent.deleteCharAt(currentContent.toString().length()-1).toString();
+
+ if (content.startsWith("*")){
+ JavadocComment javadocComment = new JavadocComment();
+ javadocComment.setContent(content.substring(1));
+ javadocComment.setBeginLine(currentBlockComment.getBeginLine());
+ javadocComment.setBeginColumn(currentBlockComment.getBeginColumn());
+ javadocComment.setEndLine(currLine);
+ javadocComment.setEndColumn(currCol+1);
+ comments.addComment(javadocComment);
+ } else {
+ currentBlockComment.setContent(content);
+ currentBlockComment.setEndLine(currLine);
+ currentBlockComment.setEndColumn(currCol+1);
+ comments.addComment(currentBlockComment);
+ }
+ state = State.CODE;
+ } else {
+ currentContent.append(c=='\r'?'\n':c);
+ }
+ break;
+ case IN_STRING:
+ if (!prevTwoChars.peekLast().equals('\\') && c == '"') {
+ state = State.CODE;
+ }
+ break;
+ case IN_CHAR:
+ if (!prevTwoChars.peekLast().equals('\\') && c == '\'') {
+ state = State.CODE;
+ }
+ break;
+ default:
+ throw new RuntimeException("Unexpected");
+ }
+ switch (c){
+ case '\n':
+ case '\r':
+ currLine+=1;
+ currCol = 1;
+ break;
+ case '\t':
+ currCol+=COLUMNS_PER_TAB;
+ break;
+ default:
+ currCol+=1;
+ }
+ prevTwoChars.remove();
+ prevTwoChars.add(c);
+ }
+
+ if (state==State.IN_LINE_COMMENT){
+ currentLineComment.setContent(currentContent.toString());
+ currentLineComment.setEndLine(currLine);
+ currentLineComment.setEndColumn(currCol);
+ comments.addComment(currentLineComment);
+ }
+
+ return comments;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/JavadocComment.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/JavadocComment.java
new file mode 100644
index 000000000..a070321ff
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/JavadocComment.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class JavadocComment extends Comment {
+
+ public JavadocComment() {
+ }
+
+ public JavadocComment(String content) {
+ super(content);
+ }
+
+ public JavadocComment(int beginLine, int beginColumn, int endLine, int endColumn, String content) {
+ super(beginLine, beginColumn, endLine, endColumn, content);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/LineComment.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/LineComment.java
new file mode 100644
index 000000000..b3df1df0e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/LineComment.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.comments;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * <p>
+ * AST node that represent line comments.
+ * </p>
+ * Line comments are started with "//" and finish at the end of the line ("\n").
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class LineComment extends Comment {
+
+ public LineComment() {
+ }
+
+ public LineComment(String content) {
+ super(content);
+ }
+
+ public LineComment(int beginLine, int beginColumn, int endLine, int endColumn, String content) {
+ super(beginLine, beginColumn, endLine, endColumn, content);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public boolean isLineComment()
+ {
+ return true;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/AnnotationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/AnnotationExpr.java
new file mode 100644
index 000000000..8c65e926f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/AnnotationExpr.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class AnnotationExpr extends Expression {
+
+ protected NameExpr name;
+
+ public AnnotationExpr() {}
+
+ public AnnotationExpr(int beginLine, int beginColumn, int endLine,
+ int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+ public NameExpr getName() {
+ return name;
+ }
+
+ public void setName(NameExpr name) {
+ this.name = name;
+ setAsParentNodeOf(name);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayAccessExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayAccessExpr.java
new file mode 100644
index 000000000..7026d15eb
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayAccessExpr.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ArrayAccessExpr extends Expression {
+
+ private Expression name;
+
+ private Expression index;
+
+ public ArrayAccessExpr() {
+ }
+
+ public ArrayAccessExpr(Expression name, Expression index) {
+ setName(name);
+ setIndex(index);
+ }
+
+ public ArrayAccessExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression name, Expression index) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setName(name);
+ setIndex(index);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getIndex() {
+ return index;
+ }
+
+ public Expression getName() {
+ return name;
+ }
+
+ public void setIndex(Expression index) {
+ this.index = index;
+ setAsParentNodeOf(this.index);
+ }
+
+ public void setName(Expression name) {
+ this.name = name;
+ setAsParentNodeOf(this.name);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayCreationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayCreationExpr.java
new file mode 100644
index 000000000..1ca425b51
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayCreationExpr.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ArrayCreationExpr extends Expression {
+
+ private Type type;
+
+ private int arrayCount;
+
+ private ArrayInitializerExpr initializer;
+
+ private List<Expression> dimensions;
+
+ private List<List<AnnotationExpr>> arraysAnnotations;
+
+ public ArrayCreationExpr() {
+ }
+
+ public ArrayCreationExpr(Type type, int arrayCount, ArrayInitializerExpr initializer) {
+ setType(type);
+ setArrayCount(arrayCount);
+ setInitializer(initializer);
+ setDimensions(null);
+ }
+
+ public ArrayCreationExpr(int beginLine, int beginColumn, int endLine, int endColumn, Type type, int arrayCount, ArrayInitializerExpr initializer) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setType(type);
+ setArrayCount(arrayCount);
+ setInitializer(initializer);
+ setDimensions(null);
+ }
+
+ public ArrayCreationExpr(Type type, List<Expression> dimensions, int arrayCount) {
+ setType(type);
+ setArrayCount(arrayCount);
+ setDimensions(dimensions);
+ setInitializer(null);
+ }
+
+ public ArrayCreationExpr(int beginLine, int beginColumn, int endLine, int endColumn, Type type, List<Expression> dimensions, int arrayCount) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setType(type);
+ setArrayCount(arrayCount);
+ setDimensions(dimensions);
+ setInitializer(null);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public int getArrayCount() {
+ return arrayCount;
+ }
+
+ public List<Expression> getDimensions() {
+ return dimensions;
+ }
+
+ public ArrayInitializerExpr getInitializer() {
+ return initializer;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setArrayCount(int arrayCount) {
+ this.arrayCount = arrayCount;
+ }
+
+ public void setDimensions(List<Expression> dimensions) {
+ this.dimensions = dimensions;
+ setAsParentNodeOf(this.dimensions);
+ }
+
+ public void setInitializer(ArrayInitializerExpr initializer) {
+ this.initializer = initializer;
+ setAsParentNodeOf(this.initializer);
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+
+ public List<List<AnnotationExpr>> getArraysAnnotations() {
+ return arraysAnnotations;
+ }
+
+ public void setArraysAnnotations(
+ List<List<AnnotationExpr>> arraysAnnotations) {
+ this.arraysAnnotations = arraysAnnotations;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayInitializerExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayInitializerExpr.java
new file mode 100644
index 000000000..f7fa424cf
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ArrayInitializerExpr.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ArrayInitializerExpr extends Expression {
+
+ private List<Expression> values;
+
+ public ArrayInitializerExpr() {
+ }
+
+ public ArrayInitializerExpr(List<Expression> values) {
+ setValues(values);
+ }
+
+ public ArrayInitializerExpr(int beginLine, int beginColumn, int endLine, int endColumn, List<Expression> values) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setValues(values);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getValues() {
+ return values;
+ }
+
+ public void setValues(List<Expression> values) {
+ this.values = values;
+ setAsParentNodeOf(this.values);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/AssignExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/AssignExpr.java
new file mode 100644
index 000000000..b3d508fe9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/AssignExpr.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AssignExpr extends Expression {
+
+ public static enum Operator {
+ assign, // =
+ plus, // +=
+ minus, // -=
+ star, // *=
+ slash, // /=
+ and, // &=
+ or, // |=
+ xor, // ^=
+ rem, // %=
+ lShift, // <<=
+ rSignedShift, // >>=
+ rUnsignedShift, // >>>=
+ }
+
+ private Expression target;
+
+ private Expression value;
+
+ private Operator op;
+
+ public AssignExpr() {
+ }
+
+ public AssignExpr(Expression target, Expression value, Operator op) {
+ setTarget(target);
+ setValue(value);
+ setOperator(op);
+ }
+
+ public AssignExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression target, Expression value, Operator op) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setTarget(target);
+ setValue(value);
+ setOperator(op);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Operator getOperator() {
+ return op;
+ }
+
+ public Expression getTarget() {
+ return target;
+ }
+
+ public Expression getValue() {
+ return value;
+ }
+
+ public void setOperator(Operator op) {
+ this.op = op;
+ }
+
+ public void setTarget(Expression target) {
+ this.target = target;
+ setAsParentNodeOf(this.target);
+ }
+
+ public void setValue(Expression value) {
+ this.value = value;
+ setAsParentNodeOf(this.value);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/BinaryExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/BinaryExpr.java
new file mode 100644
index 000000000..4ace4bec4
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/BinaryExpr.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BinaryExpr extends Expression {
+
+ public static enum Operator {
+ or, // ||
+ and, // &&
+ binOr, // |
+ binAnd, // &
+ xor, // ^
+ equals, // ==
+ notEquals, // !=
+ less, // <
+ greater, // >
+ lessEquals, // <=
+ greaterEquals, // >=
+ lShift, // <<
+ rSignedShift, // >>
+ rUnsignedShift, // >>>
+ plus, // +
+ minus, // -
+ times, // *
+ divide, // /
+ remainder, // %
+ }
+
+ private Expression left;
+
+ private Expression right;
+
+ private Operator op;
+
+ public BinaryExpr() {
+ }
+
+ public BinaryExpr(Expression left, Expression right, Operator op) {
+ setLeft(left);
+ setRight(right);
+ setOperator(op);
+ }
+
+ public BinaryExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression left, Expression right, Operator op) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setLeft(left);
+ setRight(right);
+ setOperator(op);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getLeft() {
+ return left;
+ }
+
+ public Operator getOperator() {
+ return op;
+ }
+
+ public Expression getRight() {
+ return right;
+ }
+
+ public void setLeft(Expression left) {
+ this.left = left;
+ setAsParentNodeOf(this.left);
+ }
+
+ public void setOperator(Operator op) {
+ this.op = op;
+ }
+
+ public void setRight(Expression right) {
+ this.right = right;
+ setAsParentNodeOf(this.right);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/BooleanLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/BooleanLiteralExpr.java
new file mode 100644
index 000000000..e92244a62
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/BooleanLiteralExpr.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BooleanLiteralExpr extends LiteralExpr {
+
+ private boolean value;
+
+ public BooleanLiteralExpr() {
+ }
+
+ public BooleanLiteralExpr(boolean value) {
+ setValue(value);
+ }
+
+ public BooleanLiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn, boolean value) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setValue(value);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public boolean getValue() {
+ return value;
+ }
+
+ public void setValue(boolean value) {
+ this.value = value;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/CastExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/CastExpr.java
new file mode 100644
index 000000000..843386968
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/CastExpr.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class CastExpr extends Expression {
+
+ private Type type;
+
+ private Expression expr;
+
+ public CastExpr() {
+ }
+
+ public CastExpr(Type type, Expression expr) {
+ setType(type);
+ setExpr(expr);
+ }
+
+ public CastExpr(int beginLine, int beginColumn, int endLine, int endColumn, Type type, Expression expr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setType(type);
+ setExpr(expr);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setExpr(Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/CharLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/CharLiteralExpr.java
new file mode 100644
index 000000000..061805d47
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/CharLiteralExpr.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class CharLiteralExpr extends StringLiteralExpr {
+
+ public CharLiteralExpr() {
+ }
+
+ public CharLiteralExpr(String value) {
+ super(value);
+ }
+
+ public CharLiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn, String value) {
+ super(beginLine, beginColumn, endLine, endColumn, value);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ClassExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ClassExpr.java
new file mode 100644
index 000000000..bd33c6730
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ClassExpr.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ClassExpr extends Expression {
+
+ private Type type;
+
+ public ClassExpr() {
+ }
+
+ public ClassExpr(Type type) {
+ setType(type);
+ }
+
+ public ClassExpr(int beginLine, int beginColumn, int endLine, int endColumn, Type type) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setType(type);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ConditionalExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ConditionalExpr.java
new file mode 100644
index 000000000..31db61cca
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ConditionalExpr.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ConditionalExpr extends Expression {
+
+ private Expression condition;
+
+ private Expression thenExpr;
+
+ private Expression elseExpr;
+
+ public ConditionalExpr() {
+ }
+
+ public ConditionalExpr(Expression condition, Expression thenExpr, Expression elseExpr) {
+ setCondition(condition);
+ setThenExpr(thenExpr);
+ setElseExpr(elseExpr);
+ }
+
+ public ConditionalExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression condition, Expression thenExpr, Expression elseExpr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setCondition(condition);
+ setThenExpr(thenExpr);
+ setElseExpr(elseExpr);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ public Expression getElseExpr() {
+ return elseExpr;
+ }
+
+ public Expression getThenExpr() {
+ return thenExpr;
+ }
+
+ public void setCondition(Expression condition) {
+ this.condition = condition;
+ setAsParentNodeOf(this.condition);
+ }
+
+ public void setElseExpr(Expression elseExpr) {
+ this.elseExpr = elseExpr;
+ setAsParentNodeOf(this.elseExpr);
+ }
+
+ public void setThenExpr(Expression thenExpr) {
+ this.thenExpr = thenExpr;
+ setAsParentNodeOf(this.thenExpr);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/DoubleLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/DoubleLiteralExpr.java
new file mode 100644
index 000000000..ce6962d7b
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/DoubleLiteralExpr.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class DoubleLiteralExpr extends StringLiteralExpr {
+
+ public DoubleLiteralExpr() {
+ }
+
+ public DoubleLiteralExpr(final String value) {
+ super(value);
+ }
+
+ public DoubleLiteralExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final String value) {
+ super(beginLine, beginColumn, endLine, endColumn, value);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/EnclosedExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/EnclosedExpr.java
new file mode 100644
index 000000000..72f9de2a1
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/EnclosedExpr.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EnclosedExpr extends Expression {
+
+ private Expression inner;
+
+ public EnclosedExpr() {
+ }
+
+ public EnclosedExpr(final Expression inner) {
+ setInner(inner);
+ }
+
+ public EnclosedExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression inner) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setInner(inner);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getInner() {
+ return inner;
+ }
+
+ public void setInner(final Expression inner) {
+ this.inner = inner;
+ setAsParentNodeOf(this.inner);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/Expression.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/Expression.java
new file mode 100644
index 000000000..8b36d6b1d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/Expression.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.Node;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Expression extends Node {
+
+ public Expression() {
+ }
+
+ public Expression(final int beginLine, final int beginColumn, final int endLine, final int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/FieldAccessExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/FieldAccessExpr.java
new file mode 100644
index 000000000..b57bf7fe0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/FieldAccessExpr.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class FieldAccessExpr extends Expression {
+
+ private Expression scope;
+
+ private List<Type> typeArgs;
+
+ private NameExpr field;
+
+ public FieldAccessExpr() {
+ }
+
+ public FieldAccessExpr(final Expression scope, final String field) {
+ setScope(scope);
+ setField(field);
+ }
+
+ public FieldAccessExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression scope, final List<Type> typeArgs, final String field) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setScope(scope);
+ setTypeArgs(typeArgs);
+ setField(field);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getField() {
+ return field.getName();
+ }
+
+ public NameExpr getFieldExpr() {
+ return field;
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ public List<Type> getTypeArgs() {
+ return typeArgs;
+ }
+
+ public void setField(final String field) {
+ this.field = new NameExpr(field);
+ }
+
+ public void setFieldExpr(NameExpr field) {
+ this.field = field;
+ }
+
+ public void setScope(final Expression scope) {
+ this.scope = scope;
+ setAsParentNodeOf(this.scope);
+ }
+
+ public void setTypeArgs(final List<Type> typeArgs) {
+ this.typeArgs = typeArgs;
+ setAsParentNodeOf(this.typeArgs);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/InstanceOfExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/InstanceOfExpr.java
new file mode 100644
index 000000000..9a9786512
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/InstanceOfExpr.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class InstanceOfExpr extends Expression {
+
+ private Expression expr;
+
+ private Type type;
+
+ public InstanceOfExpr() {
+ }
+
+ public InstanceOfExpr(final Expression expr, final Type type) {
+ setExpr(expr);
+ setType(type);
+ }
+
+ public InstanceOfExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression expr, final Type type) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setExpr(expr);
+ setType(type);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ }
+
+ public void setType(final Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/IntegerLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/IntegerLiteralExpr.java
new file mode 100644
index 000000000..b326c5770
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/IntegerLiteralExpr.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class IntegerLiteralExpr extends StringLiteralExpr {
+
+ private static final String UNSIGNED_MIN_VALUE = "2147483648";
+
+ protected static final String MIN_VALUE = "-" + UNSIGNED_MIN_VALUE;
+
+ public IntegerLiteralExpr() {
+ }
+
+ public IntegerLiteralExpr(final String value) {
+ super(value);
+ }
+
+ public IntegerLiteralExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final String value) {
+ super(beginLine, beginColumn, endLine, endColumn, value);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public final boolean isMinValue() {
+ return value != null && //
+ value.length() == 10 && //
+ value.equals(UNSIGNED_MIN_VALUE);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/IntegerLiteralMinValueExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/IntegerLiteralMinValueExpr.java
new file mode 100644
index 000000000..238b56431
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/IntegerLiteralMinValueExpr.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class IntegerLiteralMinValueExpr extends IntegerLiteralExpr {
+
+ public IntegerLiteralMinValueExpr() {
+ super(MIN_VALUE);
+ }
+
+ public IntegerLiteralMinValueExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn, MIN_VALUE);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LambdaExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LambdaExpr.java
new file mode 100644
index 000000000..4e4e93444
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LambdaExpr.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.stmt.Statement;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * Lambda expressions.
+ * @author Raquel Pau
+ *
+ */
+public class LambdaExpr extends Expression {
+
+ private List<Parameter> parameters;
+
+ private boolean parametersEnclosed;
+
+ private Statement body;
+
+ public LambdaExpr() {
+ }
+
+ public LambdaExpr(int beginLine, int beginColumn, int endLine,
+ int endColumn, List<Parameter> parameters, Statement body,
+ boolean parametersEnclosed) {
+
+ super(beginLine, beginColumn, endLine, endColumn);
+ setParameters(parameters);
+ setBody(body);
+ setParametersEnclosed(parametersEnclosed);
+ }
+
+ public List<Parameter> getParameters() {
+ return parameters;
+ }
+
+ public void setParameters(List<Parameter> parameters) {
+ this.parameters = parameters;
+ setAsParentNodeOf(this.parameters);
+ }
+
+ public Statement getBody() {
+ return body;
+ }
+
+ public void setBody(Statement body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public boolean isParametersEnclosed() {
+ return parametersEnclosed;
+ }
+
+ public void setParametersEnclosed(boolean parametersEnclosed) {
+ this.parametersEnclosed = parametersEnclosed;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LiteralExpr.java
new file mode 100644
index 000000000..7827f7866
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LiteralExpr.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class LiteralExpr extends Expression {
+
+ public LiteralExpr() {
+ }
+
+ public LiteralExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LongLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LongLiteralExpr.java
new file mode 100644
index 000000000..15ea255ba
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LongLiteralExpr.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class LongLiteralExpr extends StringLiteralExpr {
+
+ private static final String UNSIGNED_MIN_VALUE = "9223372036854775808";
+
+ protected static final String MIN_VALUE = "-" + UNSIGNED_MIN_VALUE + "L";
+
+ public LongLiteralExpr() {
+ }
+
+ public LongLiteralExpr(final String value) {
+ super(value);
+ }
+
+ public LongLiteralExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final String value) {
+ super(beginLine, beginColumn, endLine, endColumn, value);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public final boolean isMinValue() {
+ return value != null && //
+ value.length() == 20 && //
+ value.startsWith(UNSIGNED_MIN_VALUE) && //
+ (value.charAt(19) == 'L' || value.charAt(19) == 'l');
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LongLiteralMinValueExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LongLiteralMinValueExpr.java
new file mode 100644
index 000000000..f351f7a59
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/LongLiteralMinValueExpr.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class LongLiteralMinValueExpr extends LongLiteralExpr {
+
+ public LongLiteralMinValueExpr() {
+ super(MIN_VALUE);
+ }
+
+ public LongLiteralMinValueExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn, MIN_VALUE);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java
new file mode 100644
index 000000000..c1a354530
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MarkerAnnotationExpr extends AnnotationExpr {
+
+ public MarkerAnnotationExpr() {
+ }
+
+ public MarkerAnnotationExpr(final NameExpr name) {
+ setName(name);
+ }
+
+ public MarkerAnnotationExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final NameExpr name) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setName(name);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MemberValuePair.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MemberValuePair.java
new file mode 100644
index 000000000..e0fa80c66
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MemberValuePair.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.NamedNode;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MemberValuePair extends Node implements NamedNode {
+
+ private String name;
+
+ private Expression value;
+
+ public MemberValuePair() {
+ }
+
+ public MemberValuePair(final String name, final Expression value) {
+ setName(name);
+ setValue(value);
+ }
+
+ public MemberValuePair(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final String name, final Expression value) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setName(name);
+ setValue(value);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public Expression getValue() {
+ return value;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ public void setValue(final Expression value) {
+ this.value = value;
+ setAsParentNodeOf(this.value);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MethodCallExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MethodCallExpr.java
new file mode 100644
index 000000000..9d5d10f06
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MethodCallExpr.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MethodCallExpr extends Expression {
+
+ private Expression scope;
+
+ private List<Type> typeArgs;
+
+ private NameExpr name;
+
+ private List<Expression> args;
+
+ public MethodCallExpr() {
+ }
+
+ public MethodCallExpr(final Expression scope, final String name) {
+ setScope(scope);
+ setName(name);
+ }
+
+ public MethodCallExpr(final Expression scope, final String name, final List<Expression> args) {
+ setScope(scope);
+ setName(name);
+ setArgs(args);
+ }
+
+ public MethodCallExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression scope, final List<Type> typeArgs, final String name, final List<Expression> args) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setScope(scope);
+ setTypeArgs(typeArgs);
+ setName(name);
+ setArgs(args);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getArgs() {
+ return args;
+ }
+
+ public String getName() {
+ return name.getName();
+ }
+
+ public NameExpr getNameExpr() {
+ return name;
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ public List<Type> getTypeArgs() {
+ return typeArgs;
+ }
+
+ public void setArgs(final List<Expression> args) {
+ this.args = args;
+ setAsParentNodeOf(this.args);
+ }
+
+ public void setName(final String name) {
+ this.name = new NameExpr(name);
+ }
+
+ public void setNameExpr(NameExpr name) {
+ this.name = name;
+ }
+
+ public void setScope(final Expression scope) {
+ this.scope = scope;
+ setAsParentNodeOf(this.scope);
+ }
+
+ public void setTypeArgs(final List<Type> typeArgs) {
+ this.typeArgs = typeArgs;
+ setAsParentNodeOf(this.typeArgs);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MethodReferenceExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MethodReferenceExpr.java
new file mode 100644
index 000000000..918ad3f2a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/MethodReferenceExpr.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * Method reference expressions introduced in Java 8 specifically designed to simplify lambda Expressions.
+ * These are some examples:
+ *
+ * System.out::println;
+ *
+ * (test ? stream.map(String::trim) : stream)::toArray;
+ * @author Raquel Pau
+ *
+ */
+public class MethodReferenceExpr extends Expression {
+
+ private Expression scope;
+
+ private List<TypeParameter> typeParameters;
+
+ private String identifier;
+
+ public MethodReferenceExpr() {
+ }
+
+ public MethodReferenceExpr(int beginLine, int beginColumn, int endLine,
+ int endColumn, Expression scope,
+ List<TypeParameter> typeParameters, String identifier) {
+
+ super(beginLine, beginColumn, endLine, endColumn);
+ setIdentifier(identifier);
+ setScope(scope);
+ setTypeParameters(typeParameters);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ public void setScope(Expression scope) {
+ this.scope = scope;
+ setAsParentNodeOf(this.scope);
+ }
+
+ public List<TypeParameter> getTypeParameters() {
+ return typeParameters;
+ }
+
+ public void setTypeParameters(List<TypeParameter> typeParameters) {
+ this.typeParameters = typeParameters;
+ setAsParentNodeOf(this.typeParameters);
+ }
+
+ public String getIdentifier() {
+ return identifier;
+ }
+
+ public void setIdentifier(String identifier) {
+ this.identifier = identifier;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NameExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NameExpr.java
new file mode 100644
index 000000000..5cdbbbb6c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NameExpr.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.NamedNode;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class NameExpr extends Expression implements NamedNode {
+
+ private String name;
+
+ public NameExpr() {
+ }
+
+ public NameExpr(final String name) {
+ this.name = name;
+ }
+
+ public NameExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final String name) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.name = name;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public final String getName() {
+ return name;
+ }
+
+ public final void setName(final String name) {
+ this.name = name;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NormalAnnotationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NormalAnnotationExpr.java
new file mode 100644
index 000000000..2b2adfd72
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NormalAnnotationExpr.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class NormalAnnotationExpr extends AnnotationExpr {
+
+ private List<MemberValuePair> pairs;
+
+ public NormalAnnotationExpr() {
+ }
+
+ public NormalAnnotationExpr(final NameExpr name, final List<MemberValuePair> pairs) {
+ setName(name);
+ setPairs(pairs);
+ }
+
+ public NormalAnnotationExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final NameExpr name, final List<MemberValuePair> pairs) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setName(name);
+ setPairs(pairs);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<MemberValuePair> getPairs() {
+ return pairs;
+ }
+
+ public void setPairs(final List<MemberValuePair> pairs) {
+ this.pairs = pairs;
+ setAsParentNodeOf(this.pairs);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NullLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NullLiteralExpr.java
new file mode 100644
index 000000000..c7bc177d5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/NullLiteralExpr.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class NullLiteralExpr extends LiteralExpr {
+
+ public NullLiteralExpr() {
+ }
+
+ public NullLiteralExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ObjectCreationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ObjectCreationExpr.java
new file mode 100644
index 000000000..228dabc2c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ObjectCreationExpr.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ObjectCreationExpr extends Expression {
+
+ private Expression scope;
+
+ private ClassOrInterfaceType type;
+
+ private List<Type> typeArgs;
+
+ private List<Expression> args;
+
+ private List<BodyDeclaration> anonymousClassBody;
+
+ public ObjectCreationExpr() {
+ }
+
+ public ObjectCreationExpr(final Expression scope, final ClassOrInterfaceType type, final List<Expression> args) {
+ setScope(scope);
+ setType(type);
+ setArgs(args);
+ }
+
+ public ObjectCreationExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression scope, final ClassOrInterfaceType type, final List<Type> typeArgs,
+ final List<Expression> args, final List<BodyDeclaration> anonymousBody) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setScope(scope);
+ setType(type);
+ setTypeArgs(typeArgs);
+ setArgs(args);
+ setAnonymousClassBody(anonymousBody);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<BodyDeclaration> getAnonymousClassBody() {
+ return anonymousClassBody;
+ }
+
+ public List<Expression> getArgs() {
+ return args;
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ public ClassOrInterfaceType getType() {
+ return type;
+ }
+
+ public List<Type> getTypeArgs() {
+ return typeArgs;
+ }
+
+ public void setAnonymousClassBody(final List<BodyDeclaration> anonymousClassBody) {
+ this.anonymousClassBody = anonymousClassBody;
+ setAsParentNodeOf(this.anonymousClassBody);
+ }
+
+ public void setArgs(final List<Expression> args) {
+ this.args = args;
+ setAsParentNodeOf(this.args);
+ }
+
+ public void setScope(final Expression scope) {
+ this.scope = scope;
+ setAsParentNodeOf(this.scope);
+ }
+
+ public void setType(final ClassOrInterfaceType type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+
+ public void setTypeArgs(final List<Type> typeArgs) {
+ this.typeArgs = typeArgs;
+ setAsParentNodeOf(this.typeArgs);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/QualifiedNameExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/QualifiedNameExpr.java
new file mode 100644
index 000000000..00a65aa7f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/QualifiedNameExpr.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class QualifiedNameExpr extends NameExpr {
+
+ private NameExpr qualifier;
+
+ public QualifiedNameExpr() {
+ }
+
+ public QualifiedNameExpr(final NameExpr scope, final String name) {
+ super(name);
+ setQualifier(scope);
+ }
+
+ public QualifiedNameExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final NameExpr scope, final String name) {
+ super(beginLine, beginColumn, endLine, endColumn, name);
+ setQualifier(scope);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public NameExpr getQualifier() {
+ return qualifier;
+ }
+
+ public void setQualifier(final NameExpr qualifier) {
+ this.qualifier = qualifier;
+ setAsParentNodeOf(this.qualifier);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java
new file mode 100644
index 000000000..bd8adb116
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SingleMemberAnnotationExpr extends AnnotationExpr {
+
+ private Expression memberValue;
+
+ public SingleMemberAnnotationExpr() {
+ }
+
+ public SingleMemberAnnotationExpr(final NameExpr name, final Expression memberValue) {
+ setName(name);
+ setMemberValue(memberValue);
+ }
+
+ public SingleMemberAnnotationExpr(final int beginLine, final int beginColumn, final int endLine,
+ final int endColumn, final NameExpr name, final Expression memberValue) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setName(name);
+ setMemberValue(memberValue);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getMemberValue() {
+ return memberValue;
+ }
+
+ public void setMemberValue(final Expression memberValue) {
+ this.memberValue = memberValue;
+ setAsParentNodeOf(this.memberValue);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/StringLiteralExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/StringLiteralExpr.java
new file mode 100644
index 000000000..6876fa23e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/StringLiteralExpr.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class StringLiteralExpr extends LiteralExpr {
+
+ protected String value;
+
+ public StringLiteralExpr() {
+ }
+
+ public StringLiteralExpr(final String value) {
+ this.value = value;
+ }
+
+ public StringLiteralExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final String value) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.value = value;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public final String getValue() {
+ return value;
+ }
+
+ public final void setValue(final String value) {
+ this.value = value;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/SuperExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/SuperExpr.java
new file mode 100644
index 000000000..791d28bc9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/SuperExpr.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SuperExpr extends Expression {
+
+ private Expression classExpr;
+
+ public SuperExpr() {
+ }
+
+ public SuperExpr(final Expression classExpr) {
+ setClassExpr(classExpr);
+ }
+
+ public SuperExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression classExpr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setClassExpr(classExpr);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getClassExpr() {
+ return classExpr;
+ }
+
+ public void setClassExpr(final Expression classExpr) {
+ this.classExpr = classExpr;
+ setAsParentNodeOf(this.classExpr);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ThisExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ThisExpr.java
new file mode 100644
index 000000000..c269376c9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/ThisExpr.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ThisExpr extends Expression {
+
+ private Expression classExpr;
+
+ public ThisExpr() {
+ }
+
+ public ThisExpr(final Expression classExpr) {
+ setClassExpr(classExpr);
+ }
+
+ public ThisExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression classExpr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setClassExpr(classExpr);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getClassExpr() {
+ return classExpr;
+ }
+
+ public void setClassExpr(final Expression classExpr) {
+ this.classExpr = classExpr;
+ setAsParentNodeOf(this.classExpr);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/TypeExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/TypeExpr.java
new file mode 100644
index 000000000..636d2c4a0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/TypeExpr.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * This class is just instantiated as scopes for MethodReferenceExpr nodes to encapsulate Types.
+ * @author Raquel Pau
+ *
+ */
+public class TypeExpr extends Expression{
+
+ private Type type;
+
+ public TypeExpr(){}
+
+ public TypeExpr(int beginLine, int beginColumn, int endLine, int endColumn, Type type) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setType(type);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+
+
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/UnaryExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/UnaryExpr.java
new file mode 100644
index 000000000..19d936018
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/UnaryExpr.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class UnaryExpr extends Expression {
+
+ public static enum Operator {
+ positive, // +
+ negative, // -
+ preIncrement, // ++
+ preDecrement, // --
+ not, // !
+ inverse, // ~
+ posIncrement, // ++
+ posDecrement, // --
+ }
+
+ private Expression expr;
+
+ private Operator op;
+
+ public UnaryExpr() {
+ }
+
+ public UnaryExpr(final Expression expr, final Operator op) {
+ setExpr(expr);
+ setOperator(op);
+ }
+
+ public UnaryExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression expr, final Operator op) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setExpr(expr);
+ setOperator(op);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public Operator getOperator() {
+ return op;
+ }
+
+ public void setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ }
+
+ public void setOperator(final Operator op) {
+ this.op = op;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/VariableDeclarationExpr.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/VariableDeclarationExpr.java
new file mode 100644
index 000000000..2dcaa2299
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/expr/VariableDeclarationExpr.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.expr;
+
+import com.github.javaparser.ast.body.ModifierSet;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VariableDeclarationExpr extends Expression {
+
+ private int modifiers;
+
+ private List<AnnotationExpr> annotations;
+
+ private Type type;
+
+ private List<VariableDeclarator> vars;
+
+ public VariableDeclarationExpr() {
+ }
+
+ public VariableDeclarationExpr(final Type type, final List<VariableDeclarator> vars) {
+ setType(type);
+ setVars(vars);
+ }
+
+ public VariableDeclarationExpr(final int modifiers, final Type type, final List<VariableDeclarator> vars) {
+ setModifiers(modifiers);
+ setType(type);
+ setVars(vars);
+ }
+
+ public VariableDeclarationExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final int modifiers, final List<AnnotationExpr> annotations, final Type type,
+ final List<VariableDeclarator> vars) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setModifiers(modifiers);
+ setAnnotations(annotations);
+ setType(type);
+ setVars(vars);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ return annotations;
+ }
+
+ /**
+ * Return the modifiers of this variable declaration.
+ *
+ * @see ModifierSet
+ * @return modifiers
+ */
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public List<VariableDeclarator> getVars() {
+ return vars;
+ }
+
+ public void setAnnotations(final List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ setAsParentNodeOf(this.annotations);
+ }
+
+ public void setModifiers(final int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setType(final Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+
+ public void setVars(final List<VariableDeclarator> vars) {
+ this.vars = vars;
+ setAsParentNodeOf(this.vars);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/internal/Utils.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/internal/Utils.java
new file mode 100644
index 000000000..0bb7abbba
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/internal/Utils.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.internal;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @author Federico Tomassetti
+ * @since 2.0.1
+ */
+public class Utils {
+
+ public static <T> List<T> ensureNotNull(List<T> list) {
+ return list == null ? Collections.<T>emptyList() : list;
+ }
+
+ public static <E> boolean isNullOrEmpty(Collection<E> collection) {
+ return collection == null || collection.isEmpty();
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/AssertStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/AssertStmt.java
new file mode 100644
index 000000000..60f61bca5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/AssertStmt.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AssertStmt extends Statement {
+
+ private Expression check;
+
+ private Expression msg;
+
+ public AssertStmt() {
+ }
+
+ public AssertStmt(final Expression check) {
+ setCheck(check);
+ }
+
+ public AssertStmt(final Expression check, final Expression msg) {
+ setCheck(check);
+ setMessage(msg);
+ }
+
+ public AssertStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression check, final Expression msg) {
+ super(beginLine, beginColumn, endLine, endColumn);
+
+ setCheck(check);
+ setMessage(msg);
+
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getCheck() {
+ return check;
+ }
+
+ public Expression getMessage() {
+ return msg;
+ }
+
+ public void setCheck(final Expression check) {
+ this.check = check;
+ setAsParentNodeOf(this.check);
+ }
+
+ public void setMessage(final Expression msg) {
+ this.msg = msg;
+ setAsParentNodeOf(this.msg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/BlockStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/BlockStmt.java
new file mode 100644
index 000000000..d8b16738e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/BlockStmt.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BlockStmt extends Statement {
+
+ private List<Statement> stmts;
+
+ public BlockStmt() {
+ }
+
+ public BlockStmt(final List<Statement> stmts) {
+ setStmts(stmts);
+ }
+
+ public BlockStmt(final int beginLine, final int beginColumn,
+ final int endLine, final int endColumn, final List<Statement> stmts) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setStmts(stmts);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Statement> getStmts() {
+ return stmts;
+ }
+
+ public void setStmts(final List<Statement> stmts) {
+ this.stmts = stmts;
+ setAsParentNodeOf(this.stmts);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/BreakStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/BreakStmt.java
new file mode 100644
index 000000000..1a80f3e67
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/BreakStmt.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BreakStmt extends Statement {
+
+ private String id;
+
+ public BreakStmt() {
+ }
+
+ public BreakStmt(final String id) {
+ this.id = id;
+ }
+
+ public BreakStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn, final String id) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.id = id;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(final String id) {
+ this.id = id;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/CatchClause.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/CatchClause.java
new file mode 100644
index 000000000..3f43e7977
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/CatchClause.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.body.MultiTypeParameter;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class CatchClause extends Node {
+
+ private MultiTypeParameter except;
+
+ private BlockStmt catchBlock;
+
+ public CatchClause() {
+ }
+
+ public CatchClause(final MultiTypeParameter except, final BlockStmt catchBlock) {
+ setExcept(except);
+ setCatchBlock(catchBlock);
+ }
+
+ public CatchClause(int exceptModifier, List<AnnotationExpr> exceptAnnotations, List<Type> exceptTypes, VariableDeclaratorId exceptId, BlockStmt catchBlock) {
+ this(new MultiTypeParameter(exceptModifier, exceptAnnotations, exceptTypes, exceptId), catchBlock);
+ }
+
+ public CatchClause(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final int exceptModifier, final List<AnnotationExpr> exceptAnnotations, final List<Type> exceptTypes,
+ final VariableDeclaratorId exceptId, final BlockStmt catchBlock) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setExcept(new MultiTypeParameter(beginLine, beginColumn, endLine, endColumn, exceptModifier, exceptAnnotations, exceptTypes, exceptId));
+ setCatchBlock(catchBlock);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public BlockStmt getCatchBlock() {
+ return catchBlock;
+ }
+
+ public MultiTypeParameter getExcept() {
+ return except;
+ }
+
+ public void setCatchBlock(final BlockStmt catchBlock) {
+ this.catchBlock = catchBlock;
+ setAsParentNodeOf(this.catchBlock);
+ }
+
+ public void setExcept(final MultiTypeParameter except) {
+ this.except = except;
+ setAsParentNodeOf(this.except);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ContinueStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ContinueStmt.java
new file mode 100644
index 000000000..81760d0a0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ContinueStmt.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ContinueStmt extends Statement {
+
+ private String id;
+
+ public ContinueStmt() {
+ }
+
+ public ContinueStmt(final String id) {
+ this.id = id;
+ }
+
+ public ContinueStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final String id) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.id = id;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(final String id) {
+ this.id = id;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/DoStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/DoStmt.java
new file mode 100644
index 000000000..0a6a77040
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/DoStmt.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class DoStmt extends Statement {
+
+ private Statement body;
+
+ private Expression condition;
+
+ public DoStmt() {
+ }
+
+ public DoStmt(final Statement body, final Expression condition) {
+ setBody(body);
+ setCondition(condition);
+ }
+
+ public DoStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Statement body, final Expression condition) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setBody(body);
+ setCondition(condition);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ public void setBody(final Statement body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ }
+
+ public void setCondition(final Expression condition) {
+ this.condition = condition;
+ setAsParentNodeOf(this.condition);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/EmptyStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/EmptyStmt.java
new file mode 100644
index 000000000..fb16c4d98
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/EmptyStmt.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EmptyStmt extends Statement {
+
+ public EmptyStmt() {
+ }
+
+ public EmptyStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java
new file mode 100644
index 000000000..d0a9efe8c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ExplicitConstructorInvocationStmt extends Statement {
+
+ private List<Type> typeArgs;
+
+ private boolean isThis;
+
+ private Expression expr;
+
+ private List<Expression> args;
+
+ public ExplicitConstructorInvocationStmt() {
+ }
+
+ public ExplicitConstructorInvocationStmt(final boolean isThis,
+ final Expression expr, final List<Expression> args) {
+ setThis(isThis);
+ setExpr(expr);
+ setArgs(args);
+ }
+
+ public ExplicitConstructorInvocationStmt(final int beginLine,
+ final int beginColumn, final int endLine, final int endColumn,
+ final List<Type> typeArgs, final boolean isThis,
+ final Expression expr, final List<Expression> args) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setTypeArgs(typeArgs);
+ setThis(isThis);
+ setExpr(expr);
+ setArgs(args);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getArgs() {
+ return args;
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public List<Type> getTypeArgs() {
+ return typeArgs;
+ }
+
+ public boolean isThis() {
+ return isThis;
+ }
+
+ public void setArgs(final List<Expression> args) {
+ this.args = args;
+ setAsParentNodeOf(this.args);
+ }
+
+ public void setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ }
+
+ public void setThis(final boolean isThis) {
+ this.isThis = isThis;
+ }
+
+ public void setTypeArgs(final List<Type> typeArgs) {
+ this.typeArgs = typeArgs;
+ setAsParentNodeOf(this.typeArgs);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ExpressionStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ExpressionStmt.java
new file mode 100644
index 000000000..3c441e2a3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ExpressionStmt.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ExpressionStmt extends Statement {
+
+ private Expression expr;
+
+ public ExpressionStmt() {
+ }
+
+ public ExpressionStmt(final Expression expr) {
+ setExpression(expr);
+ }
+
+ public ExpressionStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression expr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setExpression(expr);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpression() {
+ return expr;
+ }
+
+ public void setExpression(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ForStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ForStmt.java
new file mode 100644
index 000000000..8e349bf2c
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ForStmt.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ForStmt extends Statement {
+
+ private List<Expression> init;
+
+ private Expression compare;
+
+ private List<Expression> update;
+
+ private Statement body;
+
+ public ForStmt() {
+ }
+
+ public ForStmt(final List<Expression> init, final Expression compare,
+ final List<Expression> update, final Statement body) {
+ setCompare(compare);
+ setInit(init);
+ setUpdate(update);
+ setBody(body);
+ }
+
+ public ForStmt(final int beginLine, final int beginColumn,
+ final int endLine, final int endColumn,
+ final List<Expression> init, final Expression compare,
+ final List<Expression> update, final Statement body) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setCompare(compare);
+ setInit(init);
+ setUpdate(update);
+ setBody(body);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getCompare() {
+ return compare;
+ }
+
+ public List<Expression> getInit() {
+ return init;
+ }
+
+ public List<Expression> getUpdate() {
+ return update;
+ }
+
+ public void setBody(final Statement body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ }
+
+ public void setCompare(final Expression compare) {
+ this.compare = compare;
+ setAsParentNodeOf(this.compare);
+ }
+
+ public void setInit(final List<Expression> init) {
+ this.init = init;
+ setAsParentNodeOf(this.init);
+ }
+
+ public void setUpdate(final List<Expression> update) {
+ this.update = update;
+ setAsParentNodeOf(this.update);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ForeachStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ForeachStmt.java
new file mode 100644
index 000000000..245622fc5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ForeachStmt.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.VariableDeclarationExpr;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ForeachStmt extends Statement {
+
+ private VariableDeclarationExpr var;
+
+ private Expression iterable;
+
+ private Statement body;
+
+ public ForeachStmt() {
+ }
+
+ public ForeachStmt(final VariableDeclarationExpr var,
+ final Expression iterable, final Statement body) {
+ setVariable(var);
+ setIterable(iterable);
+ setBody(body);
+ }
+
+ public ForeachStmt(final int beginLine, final int beginColumn,
+ final int endLine, final int endColumn,
+ final VariableDeclarationExpr var, final Expression iterable,
+ final Statement body) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setVariable(var);
+ setIterable(iterable);
+ setBody(body);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getIterable() {
+ return iterable;
+ }
+
+ public VariableDeclarationExpr getVariable() {
+ return var;
+ }
+
+ public void setBody(final Statement body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ }
+
+ public void setIterable(final Expression iterable) {
+ this.iterable = iterable;
+ setAsParentNodeOf(this.iterable);
+ }
+
+ public void setVariable(final VariableDeclarationExpr var) {
+ this.var = var;
+ setAsParentNodeOf(this.var);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/IfStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/IfStmt.java
new file mode 100644
index 000000000..ccddd903e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/IfStmt.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class IfStmt extends Statement {
+
+ private Expression condition;
+
+ private Statement thenStmt;
+
+ private Statement elseStmt;
+
+ public IfStmt() {
+ }
+
+ public IfStmt(final Expression condition, final Statement thenStmt, final Statement elseStmt) {
+ setCondition(condition);
+ setThenStmt(thenStmt);
+ setElseStmt(elseStmt);
+ }
+
+ public IfStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression condition, final Statement thenStmt, final Statement elseStmt) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setCondition(condition);
+ setThenStmt(thenStmt);
+ setElseStmt(elseStmt);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ public Statement getElseStmt() {
+ return elseStmt;
+ }
+
+ public Statement getThenStmt() {
+ return thenStmt;
+ }
+
+ public void setCondition(final Expression condition) {
+ this.condition = condition;
+ setAsParentNodeOf(this.condition);
+ }
+
+ public void setElseStmt(final Statement elseStmt) {
+ this.elseStmt = elseStmt;
+ setAsParentNodeOf(this.elseStmt);
+ }
+
+ public void setThenStmt(final Statement thenStmt) {
+ this.thenStmt = thenStmt;
+ setAsParentNodeOf(this.thenStmt);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/LabeledStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/LabeledStmt.java
new file mode 100644
index 000000000..85d8e7b99
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/LabeledStmt.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class LabeledStmt extends Statement {
+
+ private String label;
+
+ private Statement stmt;
+
+ public LabeledStmt() {
+ }
+
+ public LabeledStmt(final String label, final Statement stmt) {
+ setLabel(label);
+ setStmt(stmt);
+ }
+
+ public LabeledStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final String label, final Statement stmt) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setLabel(label);
+ setStmt(stmt);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public Statement getStmt() {
+ return stmt;
+ }
+
+ public void setLabel(final String label) {
+ this.label = label;
+ }
+
+ public void setStmt(final Statement stmt) {
+ this.stmt = stmt;
+ setAsParentNodeOf(this.stmt);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ReturnStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ReturnStmt.java
new file mode 100644
index 000000000..3ac6fa65e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ReturnStmt.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ReturnStmt extends Statement {
+
+ private Expression expr;
+
+ public ReturnStmt() {
+ }
+
+ public ReturnStmt(final Expression expr) {
+ setExpr(expr);
+ }
+
+ public ReturnStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression expr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setExpr(expr);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public void setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/Statement.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/Statement.java
new file mode 100644
index 000000000..30c462d05
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/Statement.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.Node;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Statement extends Node {
+
+ public Statement() {
+ }
+
+ public Statement(final int beginLine, final int beginColumn, final int endLine, final int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SwitchEntryStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SwitchEntryStmt.java
new file mode 100644
index 000000000..8f5a85ad5
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SwitchEntryStmt.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SwitchEntryStmt extends Statement {
+
+ private Expression label;
+
+ private List<Statement> stmts;
+
+ public SwitchEntryStmt() {
+ }
+
+ public SwitchEntryStmt(final Expression label, final List<Statement> stmts) {
+ setLabel(label);
+ setStmts(stmts);
+ }
+
+ public SwitchEntryStmt(final int beginLine, final int beginColumn,
+ final int endLine, final int endColumn, final Expression label,
+ final List<Statement> stmts) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setLabel(label);
+ setStmts(stmts);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getLabel() {
+ return label;
+ }
+
+ public List<Statement> getStmts() {
+ return stmts;
+ }
+
+ public void setLabel(final Expression label) {
+ this.label = label;
+ setAsParentNodeOf(this.label);
+ }
+
+ public void setStmts(final List<Statement> stmts) {
+ this.stmts = stmts;
+ setAsParentNodeOf(this.stmts);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SwitchStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SwitchStmt.java
new file mode 100644
index 000000000..49fe903da
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SwitchStmt.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SwitchStmt extends Statement {
+
+ private Expression selector;
+
+ private List<SwitchEntryStmt> entries;
+
+ public SwitchStmt() {
+ }
+
+ public SwitchStmt(final Expression selector,
+ final List<SwitchEntryStmt> entries) {
+ setSelector(selector);
+ setEntries(entries);
+ }
+
+ public SwitchStmt(final int beginLine, final int beginColumn,
+ final int endLine, final int endColumn, final Expression selector,
+ final List<SwitchEntryStmt> entries) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setSelector(selector);
+ setEntries(entries);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<SwitchEntryStmt> getEntries() {
+ return entries;
+ }
+
+ public Expression getSelector() {
+ return selector;
+ }
+
+ public void setEntries(final List<SwitchEntryStmt> entries) {
+ this.entries = entries;
+ setAsParentNodeOf(this.entries);
+ }
+
+ public void setSelector(final Expression selector) {
+ this.selector = selector;
+ setAsParentNodeOf(this.selector);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SynchronizedStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SynchronizedStmt.java
new file mode 100644
index 000000000..e91fc0b19
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/SynchronizedStmt.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SynchronizedStmt extends Statement {
+
+ private Expression expr;
+
+ private BlockStmt block;
+
+ public SynchronizedStmt() {
+ }
+
+ public SynchronizedStmt(final Expression expr, final BlockStmt block) {
+ setExpr(expr);
+ setBlock(block);
+ }
+
+ public SynchronizedStmt(final int beginLine, final int beginColumn,
+ final int endLine, final int endColumn, final Expression expr,
+ final BlockStmt block) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setExpr(expr);
+ setBlock(block);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public BlockStmt getBlock() {
+ return block;
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public void setBlock(final BlockStmt block) {
+ this.block = block;
+ setAsParentNodeOf(this.block);
+ }
+
+ public void setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ThrowStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ThrowStmt.java
new file mode 100644
index 000000000..48283b16d
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/ThrowStmt.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ThrowStmt extends Statement {
+
+ private Expression expr;
+
+ public ThrowStmt() {
+ }
+
+ public ThrowStmt(final Expression expr) {
+ setExpr(expr);
+ }
+
+ public ThrowStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression expr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setExpr(expr);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public void setExpr(final Expression expr) {
+ this.expr = expr;
+ setAsParentNodeOf(this.expr);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/TryStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/TryStmt.java
new file mode 100644
index 000000000..44009c4c9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/TryStmt.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+import com.github.javaparser.ast.expr.VariableDeclarationExpr;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class TryStmt extends Statement {
+
+ private List<VariableDeclarationExpr> resources;
+
+ private BlockStmt tryBlock;
+
+ private List<CatchClause> catchs;
+
+ private BlockStmt finallyBlock;
+
+ public TryStmt() {
+ }
+
+ public TryStmt(final BlockStmt tryBlock, final List<CatchClause> catchs,
+ final BlockStmt finallyBlock) {
+ setTryBlock(tryBlock);
+ setCatchs(catchs);
+ setFinallyBlock(finallyBlock);
+ }
+
+ public TryStmt(final int beginLine, final int beginColumn,
+ final int endLine, final int endColumn, List<VariableDeclarationExpr> resources,
+ final BlockStmt tryBlock, final List<CatchClause> catchs, final BlockStmt finallyBlock) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setResources(resources);
+ setTryBlock(tryBlock);
+ setCatchs(catchs);
+ setFinallyBlock(finallyBlock);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<CatchClause> getCatchs() {
+ return catchs;
+ }
+
+ public BlockStmt getFinallyBlock() {
+ return finallyBlock;
+ }
+
+ public BlockStmt getTryBlock() {
+ return tryBlock;
+ }
+
+ public List<VariableDeclarationExpr> getResources() {
+ return resources;
+ }
+
+ public void setCatchs(final List<CatchClause> catchs) {
+ this.catchs = catchs;
+ setAsParentNodeOf(this.catchs);
+ }
+
+ public void setFinallyBlock(final BlockStmt finallyBlock) {
+ this.finallyBlock = finallyBlock;
+ setAsParentNodeOf(this.finallyBlock);
+ }
+
+ public void setTryBlock(final BlockStmt tryBlock) {
+ this.tryBlock = tryBlock;
+ setAsParentNodeOf(this.tryBlock);
+ }
+
+ public void setResources(List<VariableDeclarationExpr> resources) {
+ this.resources = resources;
+ setAsParentNodeOf(this.resources);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/TypeDeclarationStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/TypeDeclarationStmt.java
new file mode 100644
index 000000000..79b507a1f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/TypeDeclarationStmt.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class TypeDeclarationStmt extends Statement {
+
+ private TypeDeclaration typeDecl;
+
+ public TypeDeclarationStmt() {
+ }
+
+ public TypeDeclarationStmt(final TypeDeclaration typeDecl) {
+ setTypeDeclaration(typeDecl);
+ }
+
+ public TypeDeclarationStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final TypeDeclaration typeDecl) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setTypeDeclaration(typeDecl);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public TypeDeclaration getTypeDeclaration() {
+ return typeDecl;
+ }
+
+ public void setTypeDeclaration(final TypeDeclaration typeDecl) {
+ this.typeDecl = typeDecl;
+ setAsParentNodeOf(this.typeDecl);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/WhileStmt.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/WhileStmt.java
new file mode 100644
index 000000000..51b2a1a23
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/stmt/WhileStmt.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.stmt;
+
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class WhileStmt extends Statement {
+
+ private Expression condition;
+
+ private Statement body;
+
+ public WhileStmt() {
+ }
+
+ public WhileStmt(final Expression condition, final Statement body) {
+ setCondition(condition);
+ setBody(body);
+ }
+
+ public WhileStmt(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Expression condition, final Statement body) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setCondition(condition);
+ setBody(body);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ public void setBody(final Statement body) {
+ this.body = body;
+ setAsParentNodeOf(this.body);
+ }
+
+ public void setCondition(final Expression condition) {
+ this.condition = condition;
+ setAsParentNodeOf(this.condition);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/ClassOrInterfaceType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/ClassOrInterfaceType.java
new file mode 100644
index 000000000..a7efbf4e3
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/ClassOrInterfaceType.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ClassOrInterfaceType extends Type {
+
+ private ClassOrInterfaceType scope;
+
+ private String name;
+
+ private List<Type> typeArgs;
+
+ public ClassOrInterfaceType() {
+ }
+
+ public ClassOrInterfaceType(final String name) {
+ setName(name);
+ }
+
+ public ClassOrInterfaceType(final ClassOrInterfaceType scope, final String name) {
+ setScope(scope);
+ setName(name);
+ }
+
+ public ClassOrInterfaceType(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final ClassOrInterfaceType scope, final String name, final List<Type> typeArgs) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setScope(scope);
+ setName(name);
+ setTypeArgs(typeArgs);
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public ClassOrInterfaceType getScope() {
+ return scope;
+ }
+
+ public List<Type> getTypeArgs() {
+ return typeArgs;
+ }
+
+ public boolean isBoxedType() {
+ return PrimitiveType.unboxMap.containsKey(name);
+ }
+
+ public PrimitiveType toUnboxedType() throws UnsupportedOperationException {
+ if (!isBoxedType()) throw new UnsupportedOperationException(name + " isn't a boxed type.");
+ return new PrimitiveType(PrimitiveType.unboxMap.get(name));
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ public void setScope(final ClassOrInterfaceType scope) {
+ this.scope = scope;
+ setAsParentNodeOf(this.scope);
+ }
+
+ public void setTypeArgs(final List<Type> typeArgs) {
+ this.typeArgs = typeArgs;
+ setAsParentNodeOf(this.typeArgs);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/PrimitiveType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/PrimitiveType.java
new file mode 100644
index 000000000..561a89657
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/PrimitiveType.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import java.util.HashMap;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class PrimitiveType extends Type {
+
+ public enum Primitive {
+ Boolean ("Boolean"),
+ Char ("Character"),
+ Byte ("Byte"),
+ Short ("Short"),
+ Int ("Integer"),
+ Long ("Long"),
+ Float ("Float"),
+ Double ("Double");
+
+ final String nameOfBoxedType;
+
+ public ClassOrInterfaceType toBoxedType() {
+ return new ClassOrInterfaceType(nameOfBoxedType);
+ }
+
+ private Primitive(String nameOfBoxedType) {
+ this.nameOfBoxedType = nameOfBoxedType;
+ }
+ }
+
+ static final HashMap<String, Primitive> unboxMap = new HashMap<String, Primitive>();
+ static {
+ for(Primitive unboxedType : Primitive.values()) {
+ unboxMap.put(unboxedType.nameOfBoxedType, unboxedType);
+ }
+ }
+
+ private Primitive type;
+
+ public PrimitiveType() {
+ }
+
+ public PrimitiveType(final Primitive type) {
+ this.type = type;
+ }
+
+ public PrimitiveType(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Primitive type) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.type = type;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public Primitive getType() {
+ return type;
+ }
+
+ public ClassOrInterfaceType toBoxedType() {
+ return type.toBoxedType();
+ }
+
+ public void setType(final Primitive type) {
+ this.type = type;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/ReferenceType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/ReferenceType.java
new file mode 100644
index 000000000..608848fc0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/ReferenceType.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ReferenceType extends Type {
+
+ private Type type;
+
+ private int arrayCount;
+
+ private List<List<AnnotationExpr>> arraysAnnotations;
+
+ public ReferenceType() {
+ }
+
+ public ReferenceType(final Type type) {
+ setType(type);
+ }
+
+ public ReferenceType(final Type type, final int arrayCount) {
+ setType(type);
+ setArrayCount(arrayCount);
+ }
+
+ public ReferenceType(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final Type type, final int arrayCount) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setType(type);
+ setArrayCount(arrayCount);
+ }
+
+ public ReferenceType(int beginLine, int beginColumn, int endLine,
+ int endColumn, Type type, int arrayCount,
+ List<AnnotationExpr> annotations,
+ List<List<AnnotationExpr>> arraysAnnotations) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations);
+ setType(type);
+ setArrayCount(arrayCount);
+ this.arraysAnnotations = arraysAnnotations;
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public int getArrayCount() {
+ return arrayCount;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setArrayCount(final int arrayCount) {
+ this.arrayCount = arrayCount;
+ }
+
+ public void setType(final Type type) {
+ this.type = type;
+ setAsParentNodeOf(this.type);
+ }
+
+ /**
+ * <p>Arrays annotations are annotations on the arrays modifiers of the type.
+ * Consider this example:</p>
+ *
+ * <p><pre>
+ * {@code
+ * int @Ann1 [] @Ann2 [] array;
+ * }</pre></p>
+ *
+ * <p>in this this method will return a list with the annotation expressions <pre>@Ann1</pre>
+ * and <pre>@Ann2</pre></p>
+ *
+ * <p>Note that the first list element of arraysAnnotations will refer to the first array modifier encountered.
+ * Considering the example the first element will be a list containing just @Ann1 while the second element will
+ * be a list containing just @Ann2.
+ * </p>
+ *
+ * <p>This property is guaranteed to hold: <pre>{@code getArraysAnnotations().size() == getArrayCount()}</pre>
+ * If a certain array modifier has no annotation the corresponding entry of arraysAnnotations will be null</p>
+ */
+ public List<List<AnnotationExpr>> getArraysAnnotations() {
+ return arraysAnnotations;
+ }
+
+ /**
+ * For a description of the arrayAnnotations field refer to {@link #getArraysAnnotations()}
+ */
+ public void setArraysAnnotations(List<List<AnnotationExpr>> arraysAnnotations) {
+ this.arraysAnnotations = arraysAnnotations;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/Type.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/Type.java
new file mode 100644
index 000000000..22c91240f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/Type.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Type extends Node {
+
+ private List<AnnotationExpr> annotations;
+
+ public Type() {
+ }
+
+ public Type(List<AnnotationExpr> annotation){
+ this.annotations = annotation;
+ }
+
+ public Type(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+ public Type(int beginLine, int beginColumn, int endLine, int endColumn, List<AnnotationExpr> annotations) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.annotations = annotations;
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ return annotations;
+ }
+
+ public void setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/UnknownType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/UnknownType.java
new file mode 100644
index 000000000..af6d4d979
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/UnknownType.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * An unknown parameter type object. It plays the role of a null object for
+ * lambda parameters that have no explicit type declared. As such, it has no
+ * lexical representation and hence gets no comment attributed.
+ *
+ * @author Didier Villevalois
+ */
+public final class UnknownType extends Type {
+
+ public UnknownType() {
+ }
+
+ @Override
+ public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/VoidType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/VoidType.java
new file mode 100644
index 000000000..5dacbe1e7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/VoidType.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VoidType extends Type {
+
+ public VoidType() {
+ }
+
+ public VoidType(final int beginLine, final int beginColumn, final int endLine, final int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/WildcardType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/WildcardType.java
new file mode 100644
index 000000000..8016ed70e
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/type/WildcardType.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class WildcardType extends Type {
+
+ private ReferenceType ext;
+
+ private ReferenceType sup;
+
+ public WildcardType() {
+ }
+
+ public WildcardType(final ReferenceType ext) {
+ setExtends(ext);
+ }
+
+ public WildcardType(final ReferenceType ext, final ReferenceType sup) {
+ setExtends(ext);
+ setSuper(sup);
+ }
+
+ public WildcardType(final int beginLine, final int beginColumn, final int endLine, final int endColumn,
+ final ReferenceType ext, final ReferenceType sup) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ setExtends(ext);
+ setSuper(sup);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ public ReferenceType getExtends() {
+ return ext;
+ }
+
+ public ReferenceType getSuper() {
+ return sup;
+ }
+
+ public void setExtends(final ReferenceType ext) {
+ this.ext = ext;
+ setAsParentNodeOf(this.ext);
+ }
+
+ public void setSuper(final ReferenceType sup) {
+ this.sup = sup;
+ setAsParentNodeOf(this.sup);
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/CloneVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/CloneVisitor.java
new file mode 100644
index 000000000..3d8d299aa
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/CloneVisitor.java
@@ -0,0 +1,1211 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.PackageDeclaration;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.MultiTypeParameter;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.*;
+import com.github.javaparser.ast.type.*;
+
+public class CloneVisitor implements GenericVisitor<Node, Object> {
+
+ @Override
+ public Node visit(CompilationUnit _n, Object _arg) {
+ PackageDeclaration package_ = cloneNodes(_n.getPackage(), _arg);
+ List<ImportDeclaration> imports = visit(_n.getImports(), _arg);
+ List<TypeDeclaration> types = visit(_n.getTypes(), _arg);
+
+ return new CompilationUnit(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ package_, imports, types
+ );
+ }
+
+ @Override
+ public Node visit(PackageDeclaration _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ NameExpr name = cloneNodes(_n.getName(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ PackageDeclaration r = new PackageDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ annotations, name
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ImportDeclaration _n, Object _arg) {
+ NameExpr name = cloneNodes(_n.getName(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ImportDeclaration r = new ImportDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ name, _n.isStatic(), _n.isAsterisk()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(TypeParameter _n, Object _arg) {
+ List<ClassOrInterfaceType> typeBound = visit(_n.getTypeBound(), _arg);
+
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ TypeParameter r = new TypeParameter(_n.getBeginLine(),
+ _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getName(), typeBound, annotations);
+
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(LineComment _n, Object _arg) {
+ return new LineComment(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getContent());
+ }
+
+ @Override
+ public Node visit(BlockComment _n, Object _arg) {
+ return new BlockComment(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), _n.getContent());
+ }
+
+ @Override
+ public Node visit(ClassOrInterfaceDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<TypeParameter> typeParameters = visit(_n.getTypeParameters(), _arg);
+ List<ClassOrInterfaceType> extendsList = visit(_n.getExtends(), _arg);
+ List<ClassOrInterfaceType> implementsList = visit(_n.getImplements(), _arg);
+ List<BodyDeclaration> members = visit(_n.getMembers(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ClassOrInterfaceDeclaration r = new ClassOrInterfaceDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getModifiers(), annotations, _n.isInterface(), _n.getName(), typeParameters, extendsList, implementsList, members
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EnumDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<ClassOrInterfaceType> implementsList = visit(_n.getImplements(), _arg);
+ List<EnumConstantDeclaration> entries = visit(_n.getEntries(), _arg);
+ List<BodyDeclaration> members = visit(_n.getMembers(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EnumDeclaration r = new EnumDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getModifiers(), annotations, _n.getName(), implementsList, entries, members
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EmptyTypeDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EmptyTypeDeclaration r = new EmptyTypeDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EnumConstantDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<Expression> args = visit(_n.getArgs(), _arg);
+ List<BodyDeclaration> classBody = visit(_n.getClassBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EnumConstantDeclaration r = new EnumConstantDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ annotations, _n.getName(), args, classBody
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(AnnotationDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<BodyDeclaration> members = visit(_n.getMembers(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ AnnotationDeclaration r = new AnnotationDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getModifiers(), annotations, _n.getName(), members
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(AnnotationMemberDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ Type type_ = cloneNodes(_n.getType(), _arg);
+ Expression defaultValue = cloneNodes(_n.getDefaultValue(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ AnnotationMemberDeclaration r = new AnnotationMemberDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getModifiers(), annotations, type_, _n.getName(), defaultValue
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(FieldDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ Type type_ = cloneNodes(_n.getType(), _arg);
+ List<VariableDeclarator> variables = visit(_n.getVariables(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ FieldDeclaration r = new FieldDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getModifiers(), annotations, type_, variables
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(VariableDeclarator _n, Object _arg) {
+ VariableDeclaratorId id = cloneNodes(_n.getId(), _arg);
+ Expression init = cloneNodes(_n.getInit(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ VariableDeclarator r = new VariableDeclarator(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ id, init
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(VariableDeclaratorId _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ VariableDeclaratorId r = new VariableDeclaratorId(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getName(), _n.getArrayCount()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ConstructorDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<TypeParameter> typeParameters = visit(_n.getTypeParameters(), _arg);
+ List<Parameter> parameters = visit(_n.getParameters(), _arg);
+ List<NameExpr> throws_ = visit(_n.getThrows(), _arg);
+ BlockStmt block = cloneNodes(_n.getBlock(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ConstructorDeclaration r = new ConstructorDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getModifiers(), annotations, typeParameters, _n.getName(), parameters, throws_, block
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(MethodDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<TypeParameter> typeParameters = visit(_n.getTypeParameters(), _arg);
+ Type type_ = cloneNodes(_n.getType(), _arg);
+ List<Parameter> parameters = visit(_n.getParameters(), _arg);
+ List<NameExpr> throws_ = visit(_n.getThrows(), _arg);
+ BlockStmt block = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ MethodDeclaration r = new MethodDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getModifiers(), annotations, typeParameters, type_, _n.getName(), parameters, _n.getArrayCount(), throws_, block
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(Parameter _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ Type type_ = cloneNodes(_n.getType(), _arg);
+ VariableDeclaratorId id = cloneNodes(_n.getId(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ Parameter r = new Parameter(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getModifiers(), annotations, type_, _n.isVarArgs(), id
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(MultiTypeParameter _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ List<Type> types = visit(_n.getTypes(), _arg);
+ VariableDeclaratorId id = cloneNodes(_n.getId(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ MultiTypeParameter r = new MultiTypeParameter(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getModifiers(), annotations, types, id
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EmptyMemberDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EmptyMemberDeclaration r = new EmptyMemberDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(InitializerDeclaration _n, Object _arg) {
+ JavadocComment javaDoc = cloneNodes(_n.getJavaDoc(), _arg);
+ BlockStmt block = cloneNodes(_n.getBlock(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ InitializerDeclaration r = new InitializerDeclaration(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.isStatic(), block
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(JavadocComment _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ JavadocComment r = new JavadocComment(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getContent()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ClassOrInterfaceType _n, Object _arg) {
+ ClassOrInterfaceType scope = cloneNodes(_n.getScope(), _arg);
+ List<Type> typeArgs = visit(_n.getTypeArgs(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ClassOrInterfaceType r = new ClassOrInterfaceType(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ scope, _n.getName(), typeArgs
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(PrimitiveType _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ PrimitiveType r = new PrimitiveType(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getType()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ReferenceType _n, Object _arg) {
+ List<AnnotationExpr> ann = visit(_n.getAnnotations(), _arg);
+ Type type_ = cloneNodes(_n.getType(), _arg);
+ List<List<AnnotationExpr>> arraysAnnotations = _n.getArraysAnnotations();
+ List<List<AnnotationExpr>> _arraysAnnotations = null;
+ if(arraysAnnotations != null){
+ _arraysAnnotations = new LinkedList<List<AnnotationExpr>>();
+ for(List<AnnotationExpr> aux: arraysAnnotations){
+ _arraysAnnotations.add(visit(aux, _arg));
+ }
+ }
+
+ ReferenceType r = new ReferenceType(_n.getBeginLine(),
+ _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), type_,
+ _n.getArrayCount(), ann, _arraysAnnotations);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(VoidType _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ VoidType r = new VoidType(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(WildcardType _n, Object _arg) {
+ ReferenceType ext = cloneNodes(_n.getExtends(), _arg);
+ ReferenceType sup = cloneNodes(_n.getSuper(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ WildcardType r = new WildcardType(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ ext, sup
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(UnknownType _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ UnknownType r = new UnknownType();
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ArrayAccessExpr _n, Object _arg) {
+ Expression name = cloneNodes(_n.getName(), _arg);
+ Expression index = cloneNodes(_n.getIndex(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ArrayAccessExpr r = new ArrayAccessExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ name, index
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ArrayCreationExpr _n, Object _arg) {
+ Type type_ = cloneNodes(_n.getType(), _arg);
+ List<Expression> dimensions = visit(_n.getDimensions(), _arg);
+ ArrayCreationExpr r = new ArrayCreationExpr(_n.getBeginLine(),
+ _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), type_,
+ dimensions, _n.getArrayCount());
+ if (_n.getInitializer() != null) {// ArrayCreationExpr has two mutually
+ // exclusive constructors
+ r.setInitializer(cloneNodes(_n.getInitializer(), _arg));
+ }
+ List<List<AnnotationExpr>> arraysAnnotations = _n.getArraysAnnotations();
+ List<List<AnnotationExpr>> _arraysAnnotations = null;
+ if(arraysAnnotations != null){
+ _arraysAnnotations = new LinkedList<List<AnnotationExpr>>();
+ for(List<AnnotationExpr> aux: arraysAnnotations){
+ _arraysAnnotations.add(visit(aux, _arg));
+ }
+ }
+ r.setArraysAnnotations(_arraysAnnotations);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ArrayInitializerExpr _n, Object _arg) {
+ List<Expression> values = visit(_n.getValues(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ArrayInitializerExpr r = new ArrayInitializerExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ values
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(AssignExpr _n, Object _arg) {
+ Expression target = cloneNodes(_n.getTarget(), _arg);
+ Expression value = cloneNodes(_n.getValue(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ AssignExpr r = new AssignExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ target, value, _n.getOperator());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(BinaryExpr _n, Object _arg) {
+ Expression left = cloneNodes(_n.getLeft(), _arg);
+ Expression right = cloneNodes(_n.getRight(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ BinaryExpr r = new BinaryExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ left, right, _n.getOperator()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(CastExpr _n, Object _arg) {
+ Type type_ = cloneNodes(_n.getType(), _arg);
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ CastExpr r = new CastExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ type_, expr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ClassExpr _n, Object _arg) {
+ Type type_ = cloneNodes(_n.getType(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ClassExpr r = new ClassExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ type_
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ConditionalExpr _n, Object _arg) {
+ Expression condition = cloneNodes(_n.getCondition(), _arg);
+ Expression thenExpr = cloneNodes(_n.getThenExpr(), _arg);
+ Expression elseExpr = cloneNodes(_n.getElseExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ConditionalExpr r = new ConditionalExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ condition, thenExpr, elseExpr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EnclosedExpr _n, Object _arg) {
+ Expression inner = cloneNodes(_n.getInner(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EnclosedExpr r = new EnclosedExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ inner
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(FieldAccessExpr _n, Object _arg) {
+ Expression scope = cloneNodes(_n.getScope(), _arg);
+ List<Type> typeArgs = visit(_n.getTypeArgs(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ FieldAccessExpr r = new FieldAccessExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ scope, typeArgs, _n.getField()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(InstanceOfExpr _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ Type type_ = cloneNodes(_n.getType(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ InstanceOfExpr r = new InstanceOfExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ expr, type_
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(StringLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+ StringLiteralExpr r = new StringLiteralExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(IntegerLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ IntegerLiteralExpr r = new IntegerLiteralExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(LongLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ LongLiteralExpr r = new LongLiteralExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(IntegerLiteralMinValueExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ IntegerLiteralMinValueExpr r = new IntegerLiteralMinValueExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(LongLiteralMinValueExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ LongLiteralMinValueExpr r = new LongLiteralMinValueExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(CharLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ CharLiteralExpr r = new CharLiteralExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(DoubleLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ DoubleLiteralExpr r = new DoubleLiteralExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(BooleanLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ BooleanLiteralExpr r = new BooleanLiteralExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getValue()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(NullLiteralExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ NullLiteralExpr r = new NullLiteralExpr(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(MethodCallExpr _n, Object _arg) {
+ Expression scope = cloneNodes(_n.getScope(), _arg);
+ List<Type> typeArgs = visit(_n.getTypeArgs(), _arg);
+ List<Expression> args = visit(_n.getArgs(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ MethodCallExpr r = new MethodCallExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ scope, typeArgs, _n.getName(), args
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(NameExpr _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ NameExpr r = new NameExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getName()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ObjectCreationExpr _n, Object _arg) {
+ Expression scope = cloneNodes(_n.getScope(), _arg);
+ ClassOrInterfaceType type_ = cloneNodes(_n.getType(), _arg);
+ List<Type> typeArgs = visit(_n.getTypeArgs(), _arg);
+ List<Expression> args = visit(_n.getArgs(), _arg);
+ List<BodyDeclaration> anonymousBody = visit(_n.getAnonymousClassBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ObjectCreationExpr r = new ObjectCreationExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ scope, type_, typeArgs, args, anonymousBody
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(QualifiedNameExpr _n, Object _arg) {
+ NameExpr scope = cloneNodes(_n.getQualifier(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ QualifiedNameExpr r = new QualifiedNameExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ scope, _n.getName()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ThisExpr _n, Object _arg) {
+ Expression classExpr = cloneNodes(_n.getClassExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ThisExpr r = new ThisExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ classExpr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(SuperExpr _n, Object _arg) {
+ Expression classExpr = cloneNodes(_n.getClassExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ SuperExpr r = new SuperExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ classExpr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(UnaryExpr _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ UnaryExpr r = new UnaryExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ expr, _n.getOperator()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(VariableDeclarationExpr _n, Object _arg) {
+ List<AnnotationExpr> annotations = visit(_n.getAnnotations(), _arg);
+ Type type_ = cloneNodes(_n.getType(), _arg);
+ List<VariableDeclarator> vars = visit(_n.getVars(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ VariableDeclarationExpr r = new VariableDeclarationExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getModifiers(), annotations, type_, vars
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(MarkerAnnotationExpr _n, Object _arg) {
+ NameExpr name = cloneNodes(_n.getName(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ MarkerAnnotationExpr r = new MarkerAnnotationExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ name
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(SingleMemberAnnotationExpr _n, Object _arg) {
+ NameExpr name = cloneNodes(_n.getName(), _arg);
+ Expression memberValue = cloneNodes(_n.getMemberValue(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ SingleMemberAnnotationExpr r = new SingleMemberAnnotationExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ name, memberValue
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(NormalAnnotationExpr _n, Object _arg) {
+ NameExpr name = cloneNodes(_n.getName(), _arg);
+ List<MemberValuePair> pairs = visit(_n.getPairs(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ NormalAnnotationExpr r = new NormalAnnotationExpr(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ name, pairs
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(MemberValuePair _n, Object _arg) {
+ Expression value = cloneNodes(_n.getValue(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ MemberValuePair r = new MemberValuePair(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getName(), value
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ExplicitConstructorInvocationStmt _n, Object _arg) {
+ List<Type> typeArgs = visit(_n.getTypeArgs(), _arg);
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ List<Expression> args = visit(_n.getArgs(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ExplicitConstructorInvocationStmt r = new ExplicitConstructorInvocationStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ typeArgs, _n.isThis(), expr, args
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(TypeDeclarationStmt _n, Object _arg) {
+ TypeDeclaration typeDecl = cloneNodes(_n.getTypeDeclaration(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ TypeDeclarationStmt r = new TypeDeclarationStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ typeDecl
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(AssertStmt _n, Object _arg) {
+ Expression check = cloneNodes(_n.getCheck(), _arg);
+ Expression message = cloneNodes(_n.getMessage(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ AssertStmt r = new AssertStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ check, message
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(BlockStmt _n, Object _arg) {
+ List<Statement> stmts = visit(_n.getStmts(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ BlockStmt r = new BlockStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ stmts
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(LabeledStmt _n, Object _arg) {
+ Statement stmt = cloneNodes(_n.getStmt(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ LabeledStmt r = new LabeledStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getLabel(), stmt
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(EmptyStmt _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ EmptyStmt r = new EmptyStmt(_n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ExpressionStmt _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpression(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ExpressionStmt r = new ExpressionStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ expr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(SwitchStmt _n, Object _arg) {
+ Expression selector = cloneNodes(_n.getSelector(), _arg);
+ List<SwitchEntryStmt> entries = visit(_n.getEntries(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ SwitchStmt r = new SwitchStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ selector, entries
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(SwitchEntryStmt _n, Object _arg) {
+ Expression label = cloneNodes(_n.getLabel(), _arg);
+ List<Statement> stmts = visit(_n.getStmts(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ SwitchEntryStmt r = new SwitchEntryStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ label, stmts
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(BreakStmt _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ BreakStmt r = new BreakStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getId()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ReturnStmt _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ReturnStmt r = new ReturnStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ expr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(IfStmt _n, Object _arg) {
+ Expression condition = cloneNodes(_n.getCondition(), _arg);
+ Statement thenStmt = cloneNodes(_n.getThenStmt(), _arg);
+ Statement elseStmt = cloneNodes(_n.getElseStmt(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ IfStmt r = new IfStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ condition, thenStmt, elseStmt
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(WhileStmt _n, Object _arg) {
+ Expression condition = cloneNodes(_n.getCondition(), _arg);
+ Statement body = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ WhileStmt r = new WhileStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ condition, body
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ContinueStmt _n, Object _arg) {
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ContinueStmt r = new ContinueStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ _n.getId()
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(DoStmt _n, Object _arg) {
+ Statement body = cloneNodes(_n.getBody(), _arg);
+ Expression condition = cloneNodes(_n.getCondition(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ DoStmt r = new DoStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ body, condition
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ForeachStmt _n, Object _arg) {
+ VariableDeclarationExpr var = cloneNodes(_n.getVariable(), _arg);
+ Expression iterable = cloneNodes(_n.getIterable(), _arg);
+ Statement body = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ForeachStmt r = new ForeachStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ var, iterable, body
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ForStmt _n, Object _arg) {
+ List<Expression> init = visit(_n.getInit(), _arg);
+ Expression compare = cloneNodes(_n.getCompare(), _arg);
+ List<Expression> update = visit(_n.getUpdate(), _arg);
+ Statement body = cloneNodes(_n.getBody(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ForStmt r = new ForStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ init, compare, update, body
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(ThrowStmt _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ ThrowStmt r = new ThrowStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ expr
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(SynchronizedStmt _n, Object _arg) {
+ Expression expr = cloneNodes(_n.getExpr(), _arg);
+ BlockStmt block = cloneNodes(_n.getBlock(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ SynchronizedStmt r = new SynchronizedStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ expr, block
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(TryStmt _n, Object _arg) {
+ List<VariableDeclarationExpr> resources = visit(_n.getResources(),_arg);
+ BlockStmt tryBlock = cloneNodes(_n.getTryBlock(), _arg);
+ List<CatchClause> catchs = visit(_n.getCatchs(), _arg);
+ BlockStmt finallyBlock = cloneNodes(_n.getFinallyBlock(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ TryStmt r = new TryStmt(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ resources, tryBlock, catchs, finallyBlock
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(CatchClause _n, Object _arg) {
+ MultiTypeParameter except = cloneNodes(_n.getExcept(), _arg);
+ BlockStmt catchBlock = cloneNodes(_n.getCatchBlock(), _arg);
+ Comment comment = cloneNodes(_n.getComment(), _arg);
+
+ CatchClause r = new CatchClause(
+ _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
+ except.getModifiers(), except.getAnnotations(), except.getTypes(), except.getId(), catchBlock
+ );
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Node visit(LambdaExpr _n, Object _arg) {
+
+ List<Parameter> lambdaParameters = visit(_n.getParameters(), _arg);
+
+ Statement body = cloneNodes(_n.getBody(), _arg);
+
+ LambdaExpr r = new LambdaExpr(_n.getBeginLine(), _n.getBeginColumn(),
+ _n.getEndLine(), _n.getEndColumn(), lambdaParameters, body,
+ _n.isParametersEnclosed());
+
+ return r;
+ }
+
+ @Override
+ public Node visit(MethodReferenceExpr _n, Object arg) {
+
+ List<TypeParameter> typeParams = visit(_n.getTypeParameters(), arg);
+ Expression scope = cloneNodes(_n.getScope(), arg);
+
+ MethodReferenceExpr r = new MethodReferenceExpr(_n.getBeginLine(),
+ _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), scope,
+ typeParams, _n.getIdentifier());
+ return r;
+ }
+
+ @Override
+ public Node visit(TypeExpr n, Object arg) {
+
+ Type t = cloneNodes(n.getType(), arg);
+
+ TypeExpr r = new TypeExpr(n.getBeginLine(), n.getBeginColumn(),
+ n.getEndLine(), n.getEndColumn(), t);
+
+ return r;
+ }
+
+ public <T extends Node> List<T> visit(List<T> _nodes, Object _arg) {
+ if (_nodes == null)
+ return null;
+ List<T> r = new ArrayList<T>(_nodes.size());
+ for (T n : _nodes) {
+ T rN = cloneNodes(n, _arg);
+ if (rN != null)
+ r.add(rN);
+ }
+ return r;
+ }
+
+ protected <T extends Node> T cloneNodes(T _node, Object _arg) {
+ if (_node == null)
+ return null;
+ Node r = _node.accept(this, _arg);
+ if (r == null)
+ return null;
+ return (T) r;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/DumpVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/DumpVisitor.java
new file mode 100644
index 000000000..8b04afe0a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/DumpVisitor.java
@@ -0,0 +1,1657 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import static com.github.javaparser.PositionUtils.sortByBeginPosition;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.PackageDeclaration;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.ModifierSet;
+import com.github.javaparser.ast.body.MultiTypeParameter;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.Statement;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import static com.github.javaparser.ast.internal.Utils.isNullOrEmpty;
+
+/**
+ * Dumps the AST to formatted Java source code.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class DumpVisitor implements VoidVisitor<Object> {
+
+ private boolean printComments;
+
+ public DumpVisitor() {
+ this(true);
+ }
+
+ public DumpVisitor(boolean printComments) {
+ this.printComments = printComments;
+ }
+
+ private static class SourcePrinter {
+
+ private int level = 0;
+
+ private boolean indented = false;
+
+ private final StringBuilder buf = new StringBuilder();
+
+ public void indent() {
+ level++;
+ }
+
+ public void unindent() {
+ level--;
+ }
+
+ private void makeIndent() {
+ for (int i = 0; i < level; i++) {
+ buf.append(" ");
+ }
+ }
+
+ public void print(final String arg) {
+ if (!indented) {
+ makeIndent();
+ indented = true;
+ }
+ buf.append(arg);
+ }
+
+ public void printLn(final String arg) {
+ print(arg);
+ printLn();
+ }
+
+ public void printLn() {
+ buf.append(System.getProperty("line.separator"));
+ indented = false;
+ }
+
+ public String getSource() {
+ return buf.toString();
+ }
+
+ @Override public String toString() {
+ return getSource();
+ }
+ }
+
+ private final SourcePrinter printer = new SourcePrinter();
+
+ public String getSource() {
+ return printer.getSource();
+ }
+
+ private void printModifiers(final int modifiers) {
+ if (ModifierSet.isPrivate(modifiers)) {
+ printer.print("private ");
+ }
+ if (ModifierSet.isProtected(modifiers)) {
+ printer.print("protected ");
+ }
+ if (ModifierSet.isPublic(modifiers)) {
+ printer.print("public ");
+ }
+ if (ModifierSet.isAbstract(modifiers)) {
+ printer.print("abstract ");
+ }
+ if (ModifierSet.isStatic(modifiers)) {
+ printer.print("static ");
+ }
+ if (ModifierSet.isFinal(modifiers)) {
+ printer.print("final ");
+ }
+ if (ModifierSet.isNative(modifiers)) {
+ printer.print("native ");
+ }
+ if (ModifierSet.isStrictfp(modifiers)) {
+ printer.print("strictfp ");
+ }
+ if (ModifierSet.isSynchronized(modifiers)) {
+ printer.print("synchronized ");
+ }
+ if (ModifierSet.isTransient(modifiers)) {
+ printer.print("transient ");
+ }
+ if (ModifierSet.isVolatile(modifiers)) {
+ printer.print("volatile ");
+ }
+ }
+
+ private void printMembers(final List<BodyDeclaration> members, final Object arg) {
+ for (final BodyDeclaration member : members) {
+ printer.printLn();
+ member.accept(this, arg);
+ printer.printLn();
+ }
+ }
+
+ private void printMemberAnnotations(final List<AnnotationExpr> annotations, final Object arg) {
+ if (!isNullOrEmpty(annotations)) {
+ for (final AnnotationExpr a : annotations) {
+ a.accept(this, arg);
+ printer.printLn();
+ }
+ }
+ }
+
+ private void printAnnotations(final List<AnnotationExpr> annotations, final Object arg) {
+ if (!isNullOrEmpty(annotations)) {
+ for (final AnnotationExpr a : annotations) {
+ a.accept(this, arg);
+ printer.print(" ");
+ }
+ }
+ }
+
+ private void printTypeArgs(final List<Type> args, final Object arg) {
+ if (!isNullOrEmpty(args)) {
+ printer.print("<");
+ for (final Iterator<Type> i = args.iterator(); i.hasNext();) {
+ final Type t = i.next();
+ t.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ printer.print(">");
+ }
+ }
+
+ private void printTypeParameters(final List<TypeParameter> args, final Object arg) {
+ if (!isNullOrEmpty(args)) {
+ printer.print("<");
+ for (final Iterator<TypeParameter> i = args.iterator(); i.hasNext();) {
+ final TypeParameter t = i.next();
+ t.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ printer.print(">");
+ }
+ }
+
+ private void printArguments(final List<Expression> args, final Object arg) {
+ printer.print("(");
+ if (!isNullOrEmpty(args)) {
+ for (final Iterator<Expression> i = args.iterator(); i.hasNext();) {
+ final Expression e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+ }
+
+ private void printJavadoc(final JavadocComment javadoc, final Object arg) {
+ if (javadoc != null) {
+ javadoc.accept(this, arg);
+ }
+ }
+
+ private void printJavaComment(final Comment javacomment, final Object arg) {
+ if (javacomment != null) {
+ javacomment.accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final CompilationUnit n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+
+ if (n.getPackage() != null) {
+ n.getPackage().accept(this, arg);
+ }
+
+ if (n.getImports() != null) {
+ for (final ImportDeclaration i : n.getImports()) {
+ i.accept(this, arg);
+ }
+ printer.printLn();
+ }
+
+ if (n.getTypes() != null) {
+ for (final Iterator<TypeDeclaration> i = n.getTypes().iterator(); i.hasNext();) {
+ i.next().accept(this, arg);
+ printer.printLn();
+ if (i.hasNext()) {
+ printer.printLn();
+ }
+ }
+ }
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override public void visit(final PackageDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), arg);
+ printer.print("package ");
+ n.getName().accept(this, arg);
+ printer.printLn(";");
+ printer.printLn();
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override public void visit(final NameExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getName());
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override public void visit(final QualifiedNameExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getQualifier().accept(this, arg);
+ printer.print(".");
+ printer.print(n.getName());
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override public void visit(final ImportDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("import ");
+ if (n.isStatic()) {
+ printer.print("static ");
+ }
+ n.getName().accept(this, arg);
+ if (n.isAsterisk()) {
+ printer.print(".*");
+ }
+ printer.printLn(";");
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override public void visit(final ClassOrInterfaceDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ if (n.isInterface()) {
+ printer.print("interface ");
+ } else {
+ printer.print("class ");
+ }
+
+ printer.print(n.getName());
+
+ printTypeParameters(n.getTypeParameters(), arg);
+
+ if (!isNullOrEmpty(n.getExtends())) {
+ printer.print(" extends ");
+ for (final Iterator<ClassOrInterfaceType> i = n.getExtends().iterator(); i.hasNext();) {
+ final ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ if (!isNullOrEmpty(n.getImplements())) {
+ printer.print(" implements ");
+ for (final Iterator<ClassOrInterfaceType> i = n.getImplements().iterator(); i.hasNext();) {
+ final ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ printer.printLn(" {");
+ printer.indent();
+ if (!isNullOrEmpty(n.getMembers())) {
+ printMembers(n.getMembers(), arg);
+ }
+
+ printOrphanCommentsEnding(n);
+
+ printer.unindent();
+ printer.print("}");
+ }
+
+ @Override public void visit(final EmptyTypeDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ printer.print(";");
+
+ printOrphanCommentsEnding(n);
+ }
+
+ @Override public void visit(final JavadocComment n, final Object arg) {
+ printer.print("/**");
+ printer.print(n.getContent());
+ printer.printLn("*/");
+ }
+
+ @Override public void visit(final ClassOrInterfaceType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr ae : n.getAnnotations()) {
+ ae.accept(this, arg);
+ printer.print(" ");
+ }
+ }
+
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ }
+ printer.print(n.getName());
+ printTypeArgs(n.getTypeArgs(), arg);
+ }
+
+ @Override public void visit(final TypeParameter n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr ann : n.getAnnotations()) {
+ ann.accept(this, arg);
+ printer.print(" ");
+ }
+ }
+ printer.print(n.getName());
+ if (n.getTypeBound() != null) {
+ printer.print(" extends ");
+ for (final Iterator<ClassOrInterfaceType> i = n.getTypeBound().iterator(); i.hasNext();) {
+ final ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(" & ");
+ }
+ }
+ }
+ }
+
+ @Override public void visit(final PrimitiveType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr ae : n.getAnnotations()) {
+ ae.accept(this, arg);
+ printer.print(" ");
+ }
+ }
+ switch (n.getType()) {
+ case Boolean:
+ printer.print("boolean");
+ break;
+ case Byte:
+ printer.print("byte");
+ break;
+ case Char:
+ printer.print("char");
+ break;
+ case Double:
+ printer.print("double");
+ break;
+ case Float:
+ printer.print("float");
+ break;
+ case Int:
+ printer.print("int");
+ break;
+ case Long:
+ printer.print("long");
+ break;
+ case Short:
+ printer.print("short");
+ break;
+ }
+ }
+
+ @Override public void visit(final ReferenceType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr ae : n.getAnnotations()) {
+ ae.accept(this, arg);
+ printer.print(" ");
+ }
+ }
+ n.getType().accept(this, arg);
+ List<List<AnnotationExpr>> arraysAnnotations = n.getArraysAnnotations();
+ for (int i = 0; i < n.getArrayCount(); i++) {
+ if (arraysAnnotations != null && i < arraysAnnotations.size()) {
+ List<AnnotationExpr> annotations = arraysAnnotations.get(i);
+ if (annotations != null) {
+ for (AnnotationExpr ae : annotations) {
+ printer.print(" ");
+ ae.accept(this, arg);
+
+ }
+ }
+ }
+ printer.print("[]");
+ }
+ }
+
+ @Override public void visit(final WildcardType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr ae : n.getAnnotations()) {
+ printer.print(" ");
+ ae.accept(this, arg);
+ }
+ }
+ printer.print("?");
+ if (n.getExtends() != null) {
+ printer.print(" extends ");
+ n.getExtends().accept(this, arg);
+ }
+ if (n.getSuper() != null) {
+ printer.print(" super ");
+ n.getSuper().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final UnknownType n, final Object arg) {
+ // Nothing to dump
+ }
+
+ @Override public void visit(final FieldDeclaration n, final Object arg) {
+ printOrphanCommentsBeforeThisChildNode(n);
+
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+ n.getType().accept(this, arg);
+
+ printer.print(" ");
+ for (final Iterator<VariableDeclarator> i = n.getVariables().iterator(); i.hasNext();) {
+ final VariableDeclarator var = i.next();
+ var.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+
+ printer.print(";");
+ }
+
+ @Override public void visit(final VariableDeclarator n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getId().accept(this, arg);
+ if (n.getInit() != null) {
+ printer.print(" = ");
+ n.getInit().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final VariableDeclaratorId n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getName());
+ for (int i = 0; i < n.getArrayCount(); i++) {
+ printer.print("[]");
+ }
+ }
+
+ @Override public void visit(final ArrayInitializerExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("{");
+ if (n.getValues() != null) {
+ printer.print(" ");
+ for (final Iterator<Expression> i = n.getValues().iterator(); i.hasNext();) {
+ final Expression expr = i.next();
+ expr.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ printer.print(" ");
+ }
+ printer.print("}");
+ }
+
+ @Override public void visit(final VoidType n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("void");
+ }
+
+ @Override public void visit(final ArrayAccessExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ printer.print("[");
+ n.getIndex().accept(this, arg);
+ printer.print("]");
+ }
+
+ @Override public void visit(final ArrayCreationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("new ");
+ n.getType().accept(this, arg);
+ List<List<AnnotationExpr>> arraysAnnotations = n.getArraysAnnotations();
+ if (n.getDimensions() != null) {
+ int j = 0;
+ for (final Expression dim : n.getDimensions()) {
+
+ if (arraysAnnotations != null && j < arraysAnnotations.size()) {
+ List<AnnotationExpr> annotations = arraysAnnotations.get(j);
+ if (annotations != null) {
+ for (AnnotationExpr ae : annotations) {
+ printer.print(" ");
+ ae.accept(this, arg);
+ }
+ }
+ }
+ printer.print("[");
+ dim.accept(this, arg);
+ printer.print("]");
+ j++;
+ }
+ for (int i = 0; i < n.getArrayCount(); i++) {
+ if (arraysAnnotations != null && i < arraysAnnotations.size()) {
+
+ List<AnnotationExpr> annotations = arraysAnnotations.get(i);
+ if (annotations != null) {
+ for (AnnotationExpr ae : annotations) {
+ printer.print(" ");
+ ae.accept(this, arg);
+
+ }
+ }
+ }
+ printer.print("[]");
+ }
+
+ } else {
+ for (int i = 0; i < n.getArrayCount(); i++) {
+ if (arraysAnnotations != null && i < arraysAnnotations.size()) {
+ List<AnnotationExpr> annotations = arraysAnnotations.get(i);
+ if (annotations != null) {
+ for (AnnotationExpr ae : annotations) {
+ ae.accept(this, arg);
+ printer.print(" ");
+ }
+ }
+ }
+ printer.print("[]");
+ }
+ printer.print(" ");
+ n.getInitializer().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final AssignExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getTarget().accept(this, arg);
+ printer.print(" ");
+ switch (n.getOperator()) {
+ case assign:
+ printer.print("=");
+ break;
+ case and:
+ printer.print("&=");
+ break;
+ case or:
+ printer.print("|=");
+ break;
+ case xor:
+ printer.print("^=");
+ break;
+ case plus:
+ printer.print("+=");
+ break;
+ case minus:
+ printer.print("-=");
+ break;
+ case rem:
+ printer.print("%=");
+ break;
+ case slash:
+ printer.print("/=");
+ break;
+ case star:
+ printer.print("*=");
+ break;
+ case lShift:
+ printer.print("<<=");
+ break;
+ case rSignedShift:
+ printer.print(">>=");
+ break;
+ case rUnsignedShift:
+ printer.print(">>>=");
+ break;
+ }
+ printer.print(" ");
+ n.getValue().accept(this, arg);
+ }
+
+ @Override public void visit(final BinaryExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getLeft().accept(this, arg);
+ printer.print(" ");
+ switch (n.getOperator()) {
+ case or:
+ printer.print("||");
+ break;
+ case and:
+ printer.print("&&");
+ break;
+ case binOr:
+ printer.print("|");
+ break;
+ case binAnd:
+ printer.print("&");
+ break;
+ case xor:
+ printer.print("^");
+ break;
+ case equals:
+ printer.print("==");
+ break;
+ case notEquals:
+ printer.print("!=");
+ break;
+ case less:
+ printer.print("<");
+ break;
+ case greater:
+ printer.print(">");
+ break;
+ case lessEquals:
+ printer.print("<=");
+ break;
+ case greaterEquals:
+ printer.print(">=");
+ break;
+ case lShift:
+ printer.print("<<");
+ break;
+ case rSignedShift:
+ printer.print(">>");
+ break;
+ case rUnsignedShift:
+ printer.print(">>>");
+ break;
+ case plus:
+ printer.print("+");
+ break;
+ case minus:
+ printer.print("-");
+ break;
+ case times:
+ printer.print("*");
+ break;
+ case divide:
+ printer.print("/");
+ break;
+ case remainder:
+ printer.print("%");
+ break;
+ }
+ printer.print(" ");
+ n.getRight().accept(this, arg);
+ }
+
+ @Override public void visit(final CastExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("(");
+ n.getType().accept(this, arg);
+ printer.print(") ");
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final ClassExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getType().accept(this, arg);
+ printer.print(".class");
+ }
+
+ @Override public void visit(final ConditionalExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getCondition().accept(this, arg);
+ printer.print(" ? ");
+ n.getThenExpr().accept(this, arg);
+ printer.print(" : ");
+ n.getElseExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final EnclosedExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("(");
+ if (n.getInner() != null) {
+ n.getInner().accept(this, arg);
+ }
+ printer.print(")");
+ }
+
+ @Override public void visit(final FieldAccessExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ printer.print(n.getField());
+ }
+
+ @Override public void visit(final InstanceOfExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getExpr().accept(this, arg);
+ printer.print(" instanceof ");
+ n.getType().accept(this, arg);
+ }
+
+ @Override public void visit(final CharLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("'");
+ printer.print(n.getValue());
+ printer.print("'");
+ }
+
+ @Override public void visit(final DoubleLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getValue());
+ }
+
+ @Override public void visit(final IntegerLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getValue());
+ }
+
+ @Override public void visit(final LongLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getValue());
+ }
+
+ @Override public void visit(final IntegerLiteralMinValueExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getValue());
+ }
+
+ @Override public void visit(final LongLiteralMinValueExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getValue());
+ }
+
+ @Override public void visit(final StringLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("\"");
+ printer.print(n.getValue());
+ printer.print("\"");
+ }
+
+ @Override public void visit(final BooleanLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(String.valueOf(n.getValue()));
+ }
+
+ @Override public void visit(final NullLiteralExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("null");
+ }
+
+ @Override public void visit(final ThisExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ printer.print(".");
+ }
+ printer.print("this");
+ }
+
+ @Override public void visit(final SuperExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ printer.print(".");
+ }
+ printer.print("super");
+ }
+
+ @Override public void visit(final MethodCallExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ }
+ printTypeArgs(n.getTypeArgs(), arg);
+ printer.print(n.getName());
+ printArguments(n.getArgs(), arg);
+ }
+
+ @Override public void visit(final ObjectCreationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ }
+
+ printer.print("new ");
+
+ printTypeArgs(n.getTypeArgs(), arg);
+ if (!isNullOrEmpty(n.getTypeArgs())) {
+ printer.print(" ");
+ }
+
+ n.getType().accept(this, arg);
+
+ printArguments(n.getArgs(), arg);
+
+ if (n.getAnonymousClassBody() != null) {
+ printer.printLn(" {");
+ printer.indent();
+ printMembers(n.getAnonymousClassBody(), arg);
+ printer.unindent();
+ printer.print("}");
+ }
+ }
+
+ @Override public void visit(final UnaryExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ switch (n.getOperator()) {
+ case positive:
+ printer.print("+");
+ break;
+ case negative:
+ printer.print("-");
+ break;
+ case inverse:
+ printer.print("~");
+ break;
+ case not:
+ printer.print("!");
+ break;
+ case preIncrement:
+ printer.print("++");
+ break;
+ case preDecrement:
+ printer.print("--");
+ break;
+ default:
+ }
+
+ n.getExpr().accept(this, arg);
+
+ switch (n.getOperator()) {
+ case posIncrement:
+ printer.print("++");
+ break;
+ case posDecrement:
+ printer.print("--");
+ break;
+ default:
+ }
+ }
+
+ @Override public void visit(final ConstructorDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ printTypeParameters(n.getTypeParameters(), arg);
+ if (n.getTypeParameters() != null) {
+ printer.print(" ");
+ }
+ printer.print(n.getName());
+
+ printer.print("(");
+ if (n.getParameters() != null) {
+ for (final Iterator<Parameter> i = n.getParameters().iterator(); i.hasNext();) {
+ final Parameter p = i.next();
+ p.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+
+ if (!isNullOrEmpty(n.getThrows())) {
+ printer.print(" throws ");
+ for (final Iterator<NameExpr> i = n.getThrows().iterator(); i.hasNext();) {
+ final NameExpr name = i.next();
+ name.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(" ");
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override public void visit(final MethodDeclaration n, final Object arg) {
+ printOrphanCommentsBeforeThisChildNode(n);
+
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+ if (n.isDefault()) {
+ printer.print("default ");
+ }
+ printTypeParameters(n.getTypeParameters(), arg);
+ if (n.getTypeParameters() != null) {
+ printer.print(" ");
+ }
+
+ n.getType().accept(this, arg);
+ printer.print(" ");
+ printer.print(n.getName());
+
+ printer.print("(");
+ if (n.getParameters() != null) {
+ for (final Iterator<Parameter> i = n.getParameters().iterator(); i.hasNext();) {
+ final Parameter p = i.next();
+ p.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+
+ for (int i = 0; i < n.getArrayCount(); i++) {
+ printer.print("[]");
+ }
+
+ if (!isNullOrEmpty(n.getThrows())) {
+ printer.print(" throws ");
+ for (final Iterator<NameExpr> i = n.getThrows().iterator(); i.hasNext();) {
+ final NameExpr name = i.next();
+ name.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ if (n.getBody() == null) {
+ printer.print(";");
+ } else {
+ printer.print(" ");
+ n.getBody().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final Parameter n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+ if (n.getType() != null) {
+ n.getType().accept(this, arg);
+ }
+ if (n.isVarArgs()) {
+ printer.print("...");
+ }
+ printer.print(" ");
+ n.getId().accept(this, arg);
+ }
+
+ @Override public void visit(MultiTypeParameter n, Object arg) {
+ printAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ Iterator<Type> types = n.getTypes().iterator();
+ types.next().accept(this, arg);
+ while (types.hasNext()) {
+ printer.print(" | ");
+ types.next().accept(this, arg);
+ }
+
+ printer.print(" ");
+ n.getId().accept(this, arg);
+ }
+
+ @Override public void visit(final ExplicitConstructorInvocationStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.isThis()) {
+ printTypeArgs(n.getTypeArgs(), arg);
+ printer.print("this");
+ } else {
+ if (n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ printer.print(".");
+ }
+ printTypeArgs(n.getTypeArgs(), arg);
+ printer.print("super");
+ }
+ printArguments(n.getArgs(), arg);
+ printer.print(";");
+ }
+
+ @Override public void visit(final VariableDeclarationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ n.getType().accept(this, arg);
+ printer.print(" ");
+
+ for (final Iterator<VariableDeclarator> i = n.getVars().iterator(); i.hasNext();) {
+ final VariableDeclarator v = i.next();
+ v.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ @Override public void visit(final TypeDeclarationStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ n.getTypeDeclaration().accept(this, arg);
+ }
+
+ @Override public void visit(final AssertStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("assert ");
+ n.getCheck().accept(this, arg);
+ if (n.getMessage() != null) {
+ printer.print(" : ");
+ n.getMessage().accept(this, arg);
+ }
+ printer.print(";");
+ }
+
+ @Override public void visit(final BlockStmt n, final Object arg) {
+ printOrphanCommentsBeforeThisChildNode(n);
+ printJavaComment(n.getComment(), arg);
+ printer.printLn("{");
+ if (n.getStmts() != null) {
+ printer.indent();
+ for (final Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ printer.printLn();
+ }
+ printer.unindent();
+ }
+ printOrphanCommentsEnding(n);
+ printer.print("}");
+
+ }
+
+ @Override public void visit(final LabeledStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getLabel());
+ printer.print(": ");
+ n.getStmt().accept(this, arg);
+ }
+
+ @Override public void visit(final EmptyStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(";");
+ }
+
+ @Override public void visit(final ExpressionStmt n, final Object arg) {
+ printOrphanCommentsBeforeThisChildNode(n);
+ printJavaComment(n.getComment(), arg);
+ n.getExpression().accept(this, arg);
+ printer.print(";");
+ }
+
+ @Override public void visit(final SwitchStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("switch(");
+ n.getSelector().accept(this, arg);
+ printer.printLn(") {");
+ if (n.getEntries() != null) {
+ printer.indent();
+ for (final SwitchEntryStmt e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ printer.unindent();
+ }
+ printer.print("}");
+
+ }
+
+ @Override public void visit(final SwitchEntryStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getLabel() != null) {
+ printer.print("case ");
+ n.getLabel().accept(this, arg);
+ printer.print(":");
+ } else {
+ printer.print("default:");
+ }
+ printer.printLn();
+ printer.indent();
+ if (n.getStmts() != null) {
+ for (final Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ printer.printLn();
+ }
+ }
+ printer.unindent();
+ }
+
+ @Override public void visit(final BreakStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("break");
+ if (n.getId() != null) {
+ printer.print(" ");
+ printer.print(n.getId());
+ }
+ printer.print(";");
+ }
+
+ @Override public void visit(final ReturnStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("return");
+ if (n.getExpr() != null) {
+ printer.print(" ");
+ n.getExpr().accept(this, arg);
+ }
+ printer.print(";");
+ }
+
+ @Override public void visit(final EnumDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ printer.print("enum ");
+ printer.print(n.getName());
+
+ if (n.getImplements() != null) {
+ printer.print(" implements ");
+ for (final Iterator<ClassOrInterfaceType> i = n.getImplements().iterator(); i.hasNext();) {
+ final ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ printer.printLn(" {");
+ printer.indent();
+ if (n.getEntries() != null) {
+ printer.printLn();
+ for (final Iterator<EnumConstantDeclaration> i = n.getEntries().iterator(); i.hasNext();) {
+ final EnumConstantDeclaration e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ if (n.getMembers() != null) {
+ printer.printLn(";");
+ printMembers(n.getMembers(), arg);
+ } else {
+ if (n.getEntries() != null) {
+ printer.printLn();
+ }
+ }
+ printer.unindent();
+ printer.print("}");
+ }
+
+ @Override public void visit(final EnumConstantDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printer.print(n.getName());
+
+ if (n.getArgs() != null) {
+ printArguments(n.getArgs(), arg);
+ }
+
+ if (n.getClassBody() != null) {
+ printer.printLn(" {");
+ printer.indent();
+ printMembers(n.getClassBody(), arg);
+ printer.unindent();
+ printer.printLn("}");
+ }
+ }
+
+ @Override public void visit(final EmptyMemberDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ printer.print(";");
+ }
+
+ @Override public void visit(final InitializerDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ if (n.isStatic()) {
+ printer.print("static ");
+ }
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override public void visit(final IfStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("if (");
+ n.getCondition().accept(this, arg);
+ final boolean thenBlock = n.getThenStmt() instanceof BlockStmt;
+ if (thenBlock) // block statement should start on the same line
+ printer.print(") ");
+ else {
+ printer.printLn(")");
+ printer.indent();
+ }
+ n.getThenStmt().accept(this, arg);
+ if (!thenBlock)
+ printer.unindent();
+ if (n.getElseStmt() != null) {
+ if (thenBlock)
+ printer.print(" ");
+ else
+ printer.printLn();
+ final boolean elseIf = n.getElseStmt() instanceof IfStmt;
+ final boolean elseBlock = n.getElseStmt() instanceof BlockStmt;
+ if (elseIf || elseBlock) // put chained if and start of block statement on a same level
+ printer.print("else ");
+ else {
+ printer.printLn("else");
+ printer.indent();
+ }
+ n.getElseStmt().accept(this, arg);
+ if (!(elseIf || elseBlock))
+ printer.unindent();
+ }
+ }
+
+ @Override public void visit(final WhileStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("while (");
+ n.getCondition().accept(this, arg);
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final ContinueStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("continue");
+ if (n.getId() != null) {
+ printer.print(" ");
+ printer.print(n.getId());
+ }
+ printer.print(";");
+ }
+
+ @Override public void visit(final DoStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("do ");
+ n.getBody().accept(this, arg);
+ printer.print(" while (");
+ n.getCondition().accept(this, arg);
+ printer.print(");");
+ }
+
+ @Override public void visit(final ForeachStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("for (");
+ n.getVariable().accept(this, arg);
+ printer.print(" : ");
+ n.getIterable().accept(this, arg);
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final ForStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("for (");
+ if (n.getInit() != null) {
+ for (final Iterator<Expression> i = n.getInit().iterator(); i.hasNext();) {
+ final Expression e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print("; ");
+ if (n.getCompare() != null) {
+ n.getCompare().accept(this, arg);
+ }
+ printer.print("; ");
+ if (n.getUpdate() != null) {
+ for (final Iterator<Expression> i = n.getUpdate().iterator(); i.hasNext();) {
+ final Expression e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final ThrowStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("throw ");
+ n.getExpr().accept(this, arg);
+ printer.print(";");
+ }
+
+ @Override public void visit(final SynchronizedStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("synchronized (");
+ n.getExpr().accept(this, arg);
+ printer.print(") ");
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override public void visit(final TryStmt n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("try ");
+ if (!n.getResources().isEmpty()) {
+ printer.print("(");
+ Iterator<VariableDeclarationExpr> resources = n.getResources().iterator();
+ boolean first = true;
+ while (resources.hasNext()) {
+ visit(resources.next(), arg);
+ if (resources.hasNext()) {
+ printer.print(";");
+ printer.printLn();
+ if (first) {
+ printer.indent();
+ }
+ }
+ first = false;
+ }
+ if (n.getResources().size() > 1) {
+ printer.unindent();
+ }
+ printer.print(") ");
+ }
+ n.getTryBlock().accept(this, arg);
+ if (n.getCatchs() != null) {
+ for (final CatchClause c : n.getCatchs()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getFinallyBlock() != null) {
+ printer.print(" finally ");
+ n.getFinallyBlock().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final CatchClause n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(" catch (");
+ n.getExcept().accept(this, arg);
+ printer.print(") ");
+ n.getCatchBlock().accept(this, arg);
+
+ }
+
+ @Override public void visit(final AnnotationDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ printer.print("@interface ");
+ printer.print(n.getName());
+ printer.printLn(" {");
+ printer.indent();
+ if (n.getMembers() != null) {
+ printMembers(n.getMembers(), arg);
+ }
+ printer.unindent();
+ printer.print("}");
+ }
+
+ @Override public void visit(final AnnotationMemberDeclaration n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ n.getType().accept(this, arg);
+ printer.print(" ");
+ printer.print(n.getName());
+ printer.print("()");
+ if (n.getDefaultValue() != null) {
+ printer.print(" default ");
+ n.getDefaultValue().accept(this, arg);
+ }
+ printer.print(";");
+ }
+
+ @Override public void visit(final MarkerAnnotationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("@");
+ n.getName().accept(this, arg);
+ }
+
+ @Override public void visit(final SingleMemberAnnotationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("@");
+ n.getName().accept(this, arg);
+ printer.print("(");
+ n.getMemberValue().accept(this, arg);
+ printer.print(")");
+ }
+
+ @Override public void visit(final NormalAnnotationExpr n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print("@");
+ n.getName().accept(this, arg);
+ printer.print("(");
+ if (n.getPairs() != null) {
+ for (final Iterator<MemberValuePair> i = n.getPairs().iterator(); i.hasNext();) {
+ final MemberValuePair m = i.next();
+ m.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+ }
+
+ @Override public void visit(final MemberValuePair n, final Object arg) {
+ printJavaComment(n.getComment(), arg);
+ printer.print(n.getName());
+ printer.print(" = ");
+ n.getValue().accept(this, arg);
+ }
+
+ @Override public void visit(final LineComment n, final Object arg) {
+ if (!this.printComments) {
+ return;
+ }
+ printer.print("//");
+ String tmp = n.getContent();
+ tmp = tmp.replace('\r', ' ');
+ tmp = tmp.replace('\n', ' ');
+ printer.printLn(tmp);
+ }
+
+ @Override public void visit(final BlockComment n, final Object arg) {
+ if (!this.printComments) {
+ return;
+ }
+ printer.print("/*");
+ printer.print(n.getContent());
+ printer.printLn("*/");
+ }
+
+ @Override
+ public void visit(LambdaExpr n, Object arg) {
+ printJavaComment(n.getComment(), arg);
+
+ List<Parameter> parameters = n.getParameters();
+ boolean printPar = false;
+ printPar = n.isParametersEnclosed();
+
+ if (printPar) {
+ printer.print("(");
+ }
+ if (parameters != null) {
+ for (Iterator<Parameter> i = parameters.iterator(); i.hasNext();) {
+ Parameter p = i.next();
+ p.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ if (printPar) {
+ printer.print(")");
+ }
+
+ printer.print(" -> ");
+ Statement body = n.getBody();
+ if (body instanceof ExpressionStmt) {
+ // Print the expression directly
+ ((ExpressionStmt) body).getExpression().accept(this, arg);
+ } else {
+ body.accept(this, arg);
+ }
+ }
+
+
+ @Override
+ public void visit(MethodReferenceExpr n, Object arg) {
+ printJavaComment(n.getComment(), arg);
+ Expression scope = n.getScope();
+ String identifier = n.getIdentifier();
+ if (scope != null) {
+ n.getScope().accept(this, arg);
+ }
+
+ printer.print("::");
+ if (n.getTypeParameters() != null) {
+ printer.print("<");
+ for (Iterator<TypeParameter> i = n.getTypeParameters().iterator(); i
+ .hasNext();) {
+ TypeParameter p = i.next();
+ p.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ printer.print(">");
+ }
+ if (identifier != null) {
+ printer.print(identifier);
+ }
+
+ }
+
+ @Override
+ public void visit(TypeExpr n, Object arg) {
+ printJavaComment(n.getComment(), arg);
+ if (n.getType() != null) {
+ n.getType().accept(this, arg);
+ }
+ }
+
+ private void printOrphanCommentsBeforeThisChildNode(final Node node){
+ if (node instanceof Comment) return;
+
+ Node parent = node.getParentNode();
+ if (parent==null) return;
+ List<Node> everything = new LinkedList<Node>();
+ everything.addAll(parent.getChildrenNodes());
+ sortByBeginPosition(everything);
+ int positionOfTheChild = -1;
+ for (int i=0;i<everything.size();i++){
+ if (everything.get(i)==node) positionOfTheChild=i;
+ }
+ if (positionOfTheChild==-1) throw new RuntimeException("My index not found!!! "+node);
+ int positionOfPreviousChild = -1;
+ for (int i=positionOfTheChild-1;i>=0 && positionOfPreviousChild==-1;i--){
+ if (!(everything.get(i) instanceof Comment)) positionOfPreviousChild = i;
+ }
+ for (int i=positionOfPreviousChild+1;i<positionOfTheChild;i++){
+ Node nodeToPrint = everything.get(i);
+ if (!(nodeToPrint instanceof Comment)) throw new RuntimeException("Expected comment, instead "+nodeToPrint.getClass()+". Position of previous child: "+positionOfPreviousChild+", position of child "+positionOfTheChild);
+ nodeToPrint.accept(this,null);
+ }
+ }
+
+
+ private void printOrphanCommentsEnding(final Node node){
+ List<Node> everything = new LinkedList<Node>();
+ everything.addAll(node.getChildrenNodes());
+ sortByBeginPosition(everything);
+ if (everything.size()==0) return;
+
+ int commentsAtEnd = 0;
+ boolean findingComments = true;
+ while (findingComments&&commentsAtEnd<everything.size()){
+ Node last = everything.get(everything.size()-1-commentsAtEnd);
+ findingComments = (last instanceof Comment);
+ if (findingComments) commentsAtEnd++;
+ }
+ for (int i=0;i<commentsAtEnd;i++){
+ everything.get(everything.size()-commentsAtEnd+i).accept(this,null);
+ }
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/EqualsVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/EqualsVisitor.java
new file mode 100644
index 000000000..8f4a786c0
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/EqualsVisitor.java
@@ -0,0 +1,1468 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.PackageDeclaration;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BaseParameter;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.MultiTypeParameter;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class EqualsVisitor implements GenericVisitor<Boolean, Node> {
+
+ private static final EqualsVisitor SINGLETON = new EqualsVisitor();
+
+ public static boolean equals(final Node n1, final Node n2) {
+ return SINGLETON.nodeEquals(n1, n2);
+ }
+
+ private EqualsVisitor() {
+ // hide constructor
+ }
+
+ /**
+ * Check for equality that can be applied to each kind of node,
+ * to not repeat it in every method we store that here.
+ */
+ private boolean commonNodeEquality(Node n1, Node n2) {
+ if (!nodeEquals(n1.getComment(), n2.getComment())) {
+ return false;
+ }
+ if (!nodesEquals(n1.getOrphanComments(), n2.getOrphanComments())){
+ return false;
+ }
+ return true;
+ }
+
+ private <T extends Node> boolean nodesEquals(final List<T> nodes1, final List<T> nodes2) {
+ if (nodes1 == null) {
+ if (nodes2 == null) {
+ return true;
+ }
+ return false;
+ } else if (nodes2 == null) {
+ return false;
+ }
+ if (nodes1.size() != nodes2.size()) {
+ return false;
+ }
+ for (int i = 0; i < nodes1.size(); i++) {
+ if (!nodeEquals(nodes1.get(i), nodes2.get(i))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private <T extends Node> boolean nodeEquals(final T n1, final T n2) {
+ if (n1 == n2) {
+ return true;
+ }
+ if (n1 == null) {
+ if (n2 == null) {
+ return true;
+ }
+ return false;
+ } else if (n2 == null) {
+ return false;
+ }
+ if (n1.getClass() != n2.getClass()) {
+ return false;
+ }
+ if (!commonNodeEquality(n1, n2)){
+ return false;
+ }
+ return n1.accept(this, n2).booleanValue();
+ }
+
+ private boolean objEquals(final Object n1, final Object n2) {
+ if (n1 == n2) {
+ return true;
+ }
+ if (n1 == null) {
+ if (n2 == null) {
+ return true;
+ }
+ return false;
+ } else if (n2 == null) {
+ return false;
+ }
+ return n1.equals(n2);
+ }
+
+ @Override public Boolean visit(final CompilationUnit n1, final Node arg) {
+ final CompilationUnit n2 = (CompilationUnit) arg;
+
+ if (!nodeEquals(n1.getPackage(), n2.getPackage())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getImports(), n2.getImports())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getTypes(), n2.getTypes())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getComments(), n2.getComments())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final PackageDeclaration n1, final Node arg) {
+ final PackageDeclaration n2 = (PackageDeclaration) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ImportDeclaration n1, final Node arg) {
+ final ImportDeclaration n2 = (ImportDeclaration) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final TypeParameter n1, final Node arg) {
+ final TypeParameter n2 = (TypeParameter) arg;
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getTypeBound(), n2.getTypeBound())) {
+ return Boolean.FALSE;
+ }
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final LineComment n1, final Node arg) {
+ final LineComment n2 = (LineComment) arg;
+
+ if (!objEquals(n1.getContent(), n2.getContent())) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getBeginLine(), n2.getBeginLine())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final BlockComment n1, final Node arg) {
+ final BlockComment n2 = (BlockComment) arg;
+
+ if (!objEquals(n1.getContent(), n2.getContent())) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getBeginLine(), n2.getBeginLine())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ClassOrInterfaceDeclaration n1, final Node arg) {
+ final ClassOrInterfaceDeclaration n2 = (ClassOrInterfaceDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (n1.getModifiers() != n2.getModifiers()) {
+ return Boolean.FALSE;
+ }
+
+ if (n1.isInterface() != n2.isInterface()) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getTypeParameters(), n2.getTypeParameters())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getExtends(), n2.getExtends())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getImplements(), n2.getImplements())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getMembers(), n2.getMembers())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final EnumDeclaration n1, final Node arg) {
+ final EnumDeclaration n2 = (EnumDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (n1.getModifiers() != n2.getModifiers()) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getImplements(), n2.getImplements())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getEntries(), n2.getEntries())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getMembers(), n2.getMembers())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final EmptyTypeDeclaration n1, final Node arg) {
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final EnumConstantDeclaration n1, final Node arg) {
+ final EnumConstantDeclaration n2 = (EnumConstantDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getArgs(), n2.getArgs())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getClassBody(), n2.getClassBody())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final AnnotationDeclaration n1, final Node arg) {
+ final AnnotationDeclaration n2 = (AnnotationDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (n1.getModifiers() != n2.getModifiers()) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getMembers(), n2.getMembers())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final AnnotationMemberDeclaration n1, final Node arg) {
+ final AnnotationMemberDeclaration n2 = (AnnotationMemberDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (n1.getModifiers() != n2.getModifiers()) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getDefaultValue(), n2.getDefaultValue())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final FieldDeclaration n1, final Node arg) {
+ final FieldDeclaration n2 = (FieldDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (n1.getModifiers() != n2.getModifiers()) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getVariables(), n2.getVariables())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final VariableDeclarator n1, final Node arg) {
+ final VariableDeclarator n2 = (VariableDeclarator) arg;
+
+ if (!nodeEquals(n1.getId(), n2.getId())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getInit(), n2.getInit())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final VariableDeclaratorId n1, final Node arg) {
+ final VariableDeclaratorId n2 = (VariableDeclaratorId) arg;
+
+ if (n1.getArrayCount() != n2.getArrayCount()) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ConstructorDeclaration n1, final Node arg) {
+ final ConstructorDeclaration n2 = (ConstructorDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (n1.getModifiers() != n2.getModifiers()) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getBlock(), n2.getBlock())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getParameters(), n2.getParameters())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getThrows(), n2.getThrows())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getTypeParameters(), n2.getTypeParameters())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final MethodDeclaration n1, final Node arg) {
+ final MethodDeclaration n2 = (MethodDeclaration) arg;
+
+ // javadoc are checked at CompilationUnit
+
+ if (n1.getModifiers() != n2.getModifiers()) {
+ return Boolean.FALSE;
+ }
+
+ if (n1.getArrayCount() != n2.getArrayCount()) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getParameters(), n2.getParameters())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getThrows(), n2.getThrows())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getTypeParameters(), n2.getTypeParameters())) {
+ return Boolean.FALSE;
+ }
+ if(n1.isDefault() != n2.isDefault()){
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final Parameter n1, final Node arg) {
+ final Parameter n2 = (Parameter) arg;
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+ return visit((BaseParameter) n1, arg);
+ }
+
+ @Override public Boolean visit(MultiTypeParameter n1, Node arg) {
+ MultiTypeParameter n2 = (MultiTypeParameter) arg;
+ if (n1.getTypes().size() != n2.getTypes().size()) {
+ return Boolean.FALSE;
+ }
+ Iterator<Type> n1types = n1.getTypes().iterator();
+ Iterator<Type> n2types = n2.getTypes().iterator();
+ while (n1types.hasNext() && n2types.hasNext()) {
+ if (!nodeEquals(n1types.next(), n2types.next())) {
+ return Boolean.FALSE;
+ }
+ }
+ return visit((BaseParameter) n1, arg);
+ }
+
+ protected Boolean visit(final BaseParameter n1, final Node arg) {
+ final BaseParameter n2 = (BaseParameter) arg;
+
+ if (n1.getModifiers() != n2.getModifiers()) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getId(), n2.getId())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final EmptyMemberDeclaration n1, final Node arg) {
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final InitializerDeclaration n1, final Node arg) {
+ final InitializerDeclaration n2 = (InitializerDeclaration) arg;
+
+ if (!nodeEquals(n1.getBlock(), n2.getBlock())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final JavadocComment n1, final Node arg) {
+ final JavadocComment n2 = (JavadocComment) arg;
+
+ if (!objEquals(n1.getContent(), n2.getContent())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ClassOrInterfaceType n1, final Node arg) {
+ final ClassOrInterfaceType n2 = (ClassOrInterfaceType) arg;
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getScope(), n2.getScope())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getTypeArgs(), n2.getTypeArgs())) {
+ return Boolean.FALSE;
+ }
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final PrimitiveType n1, final Node arg) {
+ final PrimitiveType n2 = (PrimitiveType) arg;
+
+ if (n1.getType() != n2.getType()) {
+ return Boolean.FALSE;
+ }
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ReferenceType n1, final Node arg) {
+ final ReferenceType n2 = (ReferenceType) arg;
+
+ if (n1.getArrayCount() != n2.getArrayCount()) {
+ return Boolean.FALSE;
+ }
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+ List<List<AnnotationExpr>> n1a = n1.getArraysAnnotations();
+ List<List<AnnotationExpr>> n2a = n2.getArraysAnnotations();
+
+ if (n1a !=null && n2a!= null) {
+ if(n1a.size() != n2a.size()){
+ return Boolean.FALSE;
+ }
+ else{
+ int i = 0;
+ for(List<AnnotationExpr> aux: n1a){
+ if(!nodesEquals(aux, n2a.get(i))){
+ return Boolean.FALSE;
+ }
+ i++;
+ }
+ }
+ }
+ else if (n1a != n2a){
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ public Boolean visit(VoidType n1, Node arg) {
+ VoidType n2 = (VoidType) arg;
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final WildcardType n1, final Node arg) {
+ final WildcardType n2 = (WildcardType) arg;
+
+ if (!nodeEquals(n1.getExtends(), n2.getExtends())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getSuper(), n2.getSuper())) {
+ return Boolean.FALSE;
+ }
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final UnknownType n1, final Node arg) {
+ final WildcardType n2 = (WildcardType) arg;
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ArrayAccessExpr n1, final Node arg) {
+ final ArrayAccessExpr n2 = (ArrayAccessExpr) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getIndex(), n2.getIndex())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ArrayCreationExpr n1, final Node arg) {
+ final ArrayCreationExpr n2 = (ArrayCreationExpr) arg;
+
+ if (n1.getArrayCount() != n2.getArrayCount()) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getInitializer(), n2.getInitializer())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getDimensions(), n2.getDimensions())) {
+ return Boolean.FALSE;
+ }
+ List<List<AnnotationExpr>> n1a = n1.getArraysAnnotations();
+ List<List<AnnotationExpr>> n2a = n2.getArraysAnnotations();
+
+ if (n1a !=null && n2a!= null) {
+ if(n1a.size() != n2a.size()){
+ return Boolean.FALSE;
+ }
+ else{
+ int i = 0;
+ for(List<AnnotationExpr> aux: n1a){
+ if(!nodesEquals(aux, n2a.get(i))){
+ return Boolean.FALSE;
+ }
+ i++;
+ }
+ }
+ }
+ else if (n1a != n2a){
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ArrayInitializerExpr n1, final Node arg) {
+ final ArrayInitializerExpr n2 = (ArrayInitializerExpr) arg;
+
+ if (!nodesEquals(n1.getValues(), n2.getValues())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final AssignExpr n1, final Node arg) {
+ final AssignExpr n2 = (AssignExpr) arg;
+
+ if (n1.getOperator() != n2.getOperator()) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getTarget(), n2.getTarget())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getValue(), n2.getValue())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final BinaryExpr n1, final Node arg) {
+ final BinaryExpr n2 = (BinaryExpr) arg;
+
+ if (n1.getOperator() != n2.getOperator()) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getLeft(), n2.getLeft())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getRight(), n2.getRight())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final CastExpr n1, final Node arg) {
+ final CastExpr n2 = (CastExpr) arg;
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ClassExpr n1, final Node arg) {
+ final ClassExpr n2 = (ClassExpr) arg;
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ConditionalExpr n1, final Node arg) {
+ final ConditionalExpr n2 = (ConditionalExpr) arg;
+
+ if (!nodeEquals(n1.getCondition(), n2.getCondition())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getThenExpr(), n2.getThenExpr())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getElseExpr(), n2.getElseExpr())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final EnclosedExpr n1, final Node arg) {
+ final EnclosedExpr n2 = (EnclosedExpr) arg;
+
+ if (!nodeEquals(n1.getInner(), n2.getInner())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final FieldAccessExpr n1, final Node arg) {
+ final FieldAccessExpr n2 = (FieldAccessExpr) arg;
+
+ if (!nodeEquals(n1.getScope(), n2.getScope())) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getField(), n2.getField())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getTypeArgs(), n2.getTypeArgs())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final InstanceOfExpr n1, final Node arg) {
+ final InstanceOfExpr n2 = (InstanceOfExpr) arg;
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final StringLiteralExpr n1, final Node arg) {
+ final StringLiteralExpr n2 = (StringLiteralExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final IntegerLiteralExpr n1, final Node arg) {
+ final IntegerLiteralExpr n2 = (IntegerLiteralExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final LongLiteralExpr n1, final Node arg) {
+ final LongLiteralExpr n2 = (LongLiteralExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final IntegerLiteralMinValueExpr n1, final Node arg) {
+ final IntegerLiteralMinValueExpr n2 = (IntegerLiteralMinValueExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final LongLiteralMinValueExpr n1, final Node arg) {
+ final LongLiteralMinValueExpr n2 = (LongLiteralMinValueExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final CharLiteralExpr n1, final Node arg) {
+ final CharLiteralExpr n2 = (CharLiteralExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final DoubleLiteralExpr n1, final Node arg) {
+ final DoubleLiteralExpr n2 = (DoubleLiteralExpr) arg;
+
+ if (!objEquals(n1.getValue(), n2.getValue())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final BooleanLiteralExpr n1, final Node arg) {
+ final BooleanLiteralExpr n2 = (BooleanLiteralExpr) arg;
+
+ if (n1.getValue() != n2.getValue()) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final NullLiteralExpr n1, final Node arg) {
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final MethodCallExpr n1, final Node arg) {
+ final MethodCallExpr n2 = (MethodCallExpr) arg;
+
+ if (!nodeEquals(n1.getScope(), n2.getScope())) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getArgs(), n2.getArgs())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getTypeArgs(), n2.getTypeArgs())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final NameExpr n1, final Node arg) {
+ final NameExpr n2 = (NameExpr) arg;
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ObjectCreationExpr n1, final Node arg) {
+ final ObjectCreationExpr n2 = (ObjectCreationExpr) arg;
+
+ if (!nodeEquals(n1.getScope(), n2.getScope())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnonymousClassBody(), n2.getAnonymousClassBody())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getArgs(), n2.getArgs())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getTypeArgs(), n2.getTypeArgs())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final QualifiedNameExpr n1, final Node arg) {
+ final QualifiedNameExpr n2 = (QualifiedNameExpr) arg;
+
+ if (!nodeEquals(n1.getQualifier(), n2.getQualifier())) {
+ return Boolean.FALSE;
+ }
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ThisExpr n1, final Node arg) {
+ final ThisExpr n2 = (ThisExpr) arg;
+
+ if (!nodeEquals(n1.getClassExpr(), n2.getClassExpr())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final SuperExpr n1, final Node arg) {
+ final SuperExpr n2 = (SuperExpr) arg;
+
+ if (!nodeEquals(n1.getClassExpr(), n2.getClassExpr())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final UnaryExpr n1, final Node arg) {
+ final UnaryExpr n2 = (UnaryExpr) arg;
+
+ if (n1.getOperator() != n2.getOperator()) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final VariableDeclarationExpr n1, final Node arg) {
+ final VariableDeclarationExpr n2 = (VariableDeclarationExpr) arg;
+
+ if (n1.getModifiers() != n2.getModifiers()) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getVars(), n2.getVars())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final MarkerAnnotationExpr n1, final Node arg) {
+ final MarkerAnnotationExpr n2 = (MarkerAnnotationExpr) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final SingleMemberAnnotationExpr n1, final Node arg) {
+ final SingleMemberAnnotationExpr n2 = (SingleMemberAnnotationExpr) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getMemberValue(), n2.getMemberValue())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final NormalAnnotationExpr n1, final Node arg) {
+ final NormalAnnotationExpr n2 = (NormalAnnotationExpr) arg;
+
+ if (!nodeEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getPairs(), n2.getPairs())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final MemberValuePair n1, final Node arg) {
+ final MemberValuePair n2 = (MemberValuePair) arg;
+
+ if (!objEquals(n1.getName(), n2.getName())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getValue(), n2.getValue())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ExplicitConstructorInvocationStmt n1, final Node arg) {
+ final ExplicitConstructorInvocationStmt n2 = (ExplicitConstructorInvocationStmt) arg;
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getArgs(), n2.getArgs())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getTypeArgs(), n2.getTypeArgs())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final TypeDeclarationStmt n1, final Node arg) {
+ final TypeDeclarationStmt n2 = (TypeDeclarationStmt) arg;
+
+ if (!nodeEquals(n1.getTypeDeclaration(), n2.getTypeDeclaration())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final AssertStmt n1, final Node arg) {
+ final AssertStmt n2 = (AssertStmt) arg;
+
+ if (!nodeEquals(n1.getCheck(), n2.getCheck())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getMessage(), n2.getMessage())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final BlockStmt n1, final Node arg) {
+ final BlockStmt n2 = (BlockStmt) arg;
+
+ if (!nodesEquals(n1.getStmts(), n2.getStmts())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final LabeledStmt n1, final Node arg) {
+ final LabeledStmt n2 = (LabeledStmt) arg;
+
+ if (!nodeEquals(n1.getStmt(), n2.getStmt())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final EmptyStmt n1, final Node arg) {
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ExpressionStmt n1, final Node arg) {
+ final ExpressionStmt n2 = (ExpressionStmt) arg;
+
+ if (!nodeEquals(n1.getExpression(), n2.getExpression())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final SwitchStmt n1, final Node arg) {
+ final SwitchStmt n2 = (SwitchStmt) arg;
+
+ if (!nodeEquals(n1.getSelector(), n2.getSelector())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getEntries(), n2.getEntries())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final SwitchEntryStmt n1, final Node arg) {
+ final SwitchEntryStmt n2 = (SwitchEntryStmt) arg;
+
+ if (!nodeEquals(n1.getLabel(), n2.getLabel())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getStmts(), n2.getStmts())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final BreakStmt n1, final Node arg) {
+ final BreakStmt n2 = (BreakStmt) arg;
+
+ if (!objEquals(n1.getId(), n2.getId())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ReturnStmt n1, final Node arg) {
+ final ReturnStmt n2 = (ReturnStmt) arg;
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final IfStmt n1, final Node arg) {
+ final IfStmt n2 = (IfStmt) arg;
+
+ if (!nodeEquals(n1.getCondition(), n2.getCondition())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getThenStmt(), n2.getThenStmt())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getElseStmt(), n2.getElseStmt())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final WhileStmt n1, final Node arg) {
+ final WhileStmt n2 = (WhileStmt) arg;
+
+ if (!nodeEquals(n1.getCondition(), n2.getCondition())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ContinueStmt n1, final Node arg) {
+ final ContinueStmt n2 = (ContinueStmt) arg;
+
+ if (!objEquals(n1.getId(), n2.getId())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final DoStmt n1, final Node arg) {
+ final DoStmt n2 = (DoStmt) arg;
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getCondition(), n2.getCondition())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ForeachStmt n1, final Node arg) {
+ final ForeachStmt n2 = (ForeachStmt) arg;
+
+ if (!nodeEquals(n1.getVariable(), n2.getVariable())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getIterable(), n2.getIterable())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ForStmt n1, final Node arg) {
+ final ForStmt n2 = (ForStmt) arg;
+
+ if (!nodesEquals(n1.getInit(), n2.getInit())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getCompare(), n2.getCompare())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getUpdate(), n2.getUpdate())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final ThrowStmt n1, final Node arg) {
+ final ThrowStmt n2 = (ThrowStmt) arg;
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final SynchronizedStmt n1, final Node arg) {
+ final SynchronizedStmt n2 = (SynchronizedStmt) arg;
+
+ if (!nodeEquals(n1.getExpr(), n2.getExpr())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getBlock(), n2.getBlock())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final TryStmt n1, final Node arg) {
+ final TryStmt n2 = (TryStmt) arg;
+
+ if (!nodeEquals(n1.getTryBlock(), n2.getTryBlock())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodesEquals(n1.getCatchs(), n2.getCatchs())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getFinallyBlock(), n2.getFinallyBlock())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override public Boolean visit(final CatchClause n1, final Node arg) {
+ final CatchClause n2 = (CatchClause) arg;
+
+ if (!nodeEquals(n1.getExcept(), n2.getExcept())) {
+ return Boolean.FALSE;
+ }
+
+ if (!nodeEquals(n1.getCatchBlock(), n2.getCatchBlock())) {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override
+ public Boolean visit(LambdaExpr n1, Node arg) {
+ LambdaExpr n2 = (LambdaExpr) arg;
+ if (!nodesEquals(n1.getParameters(), n2.getParameters())) {
+ return Boolean.FALSE;
+ }
+ if(n1.isParametersEnclosed() != n2.isParametersEnclosed()){
+ return Boolean.FALSE;
+ }
+ if (!nodeEquals(n1.getBody(), n2.getBody())) {
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ @Override
+ public Boolean visit(MethodReferenceExpr n1, Node arg) {
+ MethodReferenceExpr n2 = (MethodReferenceExpr) arg;
+ if (!nodeEquals(n1.getScope(), n2.getScope())) {
+ return Boolean.FALSE;
+ }
+ if (!nodesEquals(n1.getTypeParameters(), n2.getTypeParameters())) {
+ return Boolean.FALSE;
+ }
+ if (!objEquals(n1.getIdentifier(), n2.getIdentifier())) {
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+
+ @Override
+ public Boolean visit(TypeExpr n, Node arg) {
+ TypeExpr n2 = (TypeExpr) arg;
+ if (!nodeEquals(n.getType(), n2.getType())) {
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ }
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/GenericVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/GenericVisitor.java
new file mode 100644
index 000000000..58fbf6db9
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/GenericVisitor.java
@@ -0,0 +1,254 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.PackageDeclaration;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.MultiTypeParameter;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+/**
+ * A visitor that has a return value.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public interface GenericVisitor<R, A> {
+
+ //- Compilation Unit ----------------------------------
+
+ public R visit(CompilationUnit n, A arg);
+
+ public R visit(PackageDeclaration n, A arg);
+
+ public R visit(ImportDeclaration n, A arg);
+
+ public R visit(TypeParameter n, A arg);
+
+ public R visit(LineComment n, A arg);
+
+ public R visit(BlockComment n, A arg);
+
+ //- Body ----------------------------------------------
+
+ public R visit(ClassOrInterfaceDeclaration n, A arg);
+
+ public R visit(EnumDeclaration n, A arg);
+
+ public R visit(EmptyTypeDeclaration n, A arg);
+
+ public R visit(EnumConstantDeclaration n, A arg);
+
+ public R visit(AnnotationDeclaration n, A arg);
+
+ public R visit(AnnotationMemberDeclaration n, A arg);
+
+ public R visit(FieldDeclaration n, A arg);
+
+ public R visit(VariableDeclarator n, A arg);
+
+ public R visit(VariableDeclaratorId n, A arg);
+
+ public R visit(ConstructorDeclaration n, A arg);
+
+ public R visit(MethodDeclaration n, A arg);
+
+ public R visit(Parameter n, A arg);
+
+ public R visit(MultiTypeParameter n, A arg);
+
+ public R visit(EmptyMemberDeclaration n, A arg);
+
+ public R visit(InitializerDeclaration n, A arg);
+
+ public R visit(JavadocComment n, A arg);
+
+ //- Type ----------------------------------------------
+
+ public R visit(ClassOrInterfaceType n, A arg);
+
+ public R visit(PrimitiveType n, A arg);
+
+ public R visit(ReferenceType n, A arg);
+
+ public R visit(VoidType n, A arg);
+
+ public R visit(WildcardType n, A arg);
+
+ public R visit(UnknownType n, A arg);
+
+ //- Expression ----------------------------------------
+
+ public R visit(ArrayAccessExpr n, A arg);
+
+ public R visit(ArrayCreationExpr n, A arg);
+
+ public R visit(ArrayInitializerExpr n, A arg);
+
+ public R visit(AssignExpr n, A arg);
+
+ public R visit(BinaryExpr n, A arg);
+
+ public R visit(CastExpr n, A arg);
+
+ public R visit(ClassExpr n, A arg);
+
+ public R visit(ConditionalExpr n, A arg);
+
+ public R visit(EnclosedExpr n, A arg);
+
+ public R visit(FieldAccessExpr n, A arg);
+
+ public R visit(InstanceOfExpr n, A arg);
+
+ public R visit(StringLiteralExpr n, A arg);
+
+ public R visit(IntegerLiteralExpr n, A arg);
+
+ public R visit(LongLiteralExpr n, A arg);
+
+ public R visit(IntegerLiteralMinValueExpr n, A arg);
+
+ public R visit(LongLiteralMinValueExpr n, A arg);
+
+ public R visit(CharLiteralExpr n, A arg);
+
+ public R visit(DoubleLiteralExpr n, A arg);
+
+ public R visit(BooleanLiteralExpr n, A arg);
+
+ public R visit(NullLiteralExpr n, A arg);
+
+ public R visit(MethodCallExpr n, A arg);
+
+ public R visit(NameExpr n, A arg);
+
+ public R visit(ObjectCreationExpr n, A arg);
+
+ public R visit(QualifiedNameExpr n, A arg);
+
+ public R visit(ThisExpr n, A arg);
+
+ public R visit(SuperExpr n, A arg);
+
+ public R visit(UnaryExpr n, A arg);
+
+ public R visit(VariableDeclarationExpr n, A arg);
+
+ public R visit(MarkerAnnotationExpr n, A arg);
+
+ public R visit(SingleMemberAnnotationExpr n, A arg);
+
+ public R visit(NormalAnnotationExpr n, A arg);
+
+ public R visit(MemberValuePair n, A arg);
+
+ //- Statements ----------------------------------------
+
+ public R visit(ExplicitConstructorInvocationStmt n, A arg);
+
+ public R visit(TypeDeclarationStmt n, A arg);
+
+ public R visit(AssertStmt n, A arg);
+
+ public R visit(BlockStmt n, A arg);
+
+ public R visit(LabeledStmt n, A arg);
+
+ public R visit(EmptyStmt n, A arg);
+
+ public R visit(ExpressionStmt n, A arg);
+
+ public R visit(SwitchStmt n, A arg);
+
+ public R visit(SwitchEntryStmt n, A arg);
+
+ public R visit(BreakStmt n, A arg);
+
+ public R visit(ReturnStmt n, A arg);
+
+ public R visit(IfStmt n, A arg);
+
+ public R visit(WhileStmt n, A arg);
+
+ public R visit(ContinueStmt n, A arg);
+
+ public R visit(DoStmt n, A arg);
+
+ public R visit(ForeachStmt n, A arg);
+
+ public R visit(ForStmt n, A arg);
+
+ public R visit(ThrowStmt n, A arg);
+
+ public R visit(SynchronizedStmt n, A arg);
+
+ public R visit(TryStmt n, A arg);
+
+ public R visit(CatchClause n, A arg);
+
+ public R visit(LambdaExpr n, A arg);
+
+ public R visit(MethodReferenceExpr n, A arg);
+
+ public R visit(TypeExpr n, A arg);
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java
new file mode 100644
index 000000000..eac9cab40
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java
@@ -0,0 +1,1613 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.PackageDeclaration;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.MultiTypeParameter;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.Statement;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class GenericVisitorAdapter<R, A> implements GenericVisitor<R, A> {
+
+ @Override
+ public R visit(final AnnotationDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration member : n.getMembers()) {
+ {
+ R result = member.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final AnnotationMemberDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getDefaultValue() != null) {
+ {
+ R result = n.getDefaultValue().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ArrayAccessExpr n, final A arg) {
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getIndex().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ArrayCreationExpr n, final A arg) {
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getDimensions() != null) {
+ for (final Expression dim : n.getDimensions()) {
+ {
+ R result = dim.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ } else {
+ {
+ R result = n.getInitializer().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ArrayInitializerExpr n, final A arg) {
+ if (n.getValues() != null) {
+ for (final Expression expr : n.getValues()) {
+ {
+ R result = expr.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final AssertStmt n, final A arg) {
+ {
+ R result = n.getCheck().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getMessage() != null) {
+ {
+ R result = n.getMessage().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final AssignExpr n, final A arg) {
+ {
+ R result = n.getTarget().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getValue().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final BinaryExpr n, final A arg) {
+ {
+ R result = n.getLeft().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getRight().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final BlockStmt n, final A arg) {
+ if (n.getStmts() != null) {
+ for (final Statement s : n.getStmts()) {
+ {
+ R result = s.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+
+ }
+
+ @Override
+ public R visit(final BooleanLiteralExpr n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final BreakStmt n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final CastExpr n, final A arg) {
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final CatchClause n, final A arg) {
+ {
+ R result = n.getExcept().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getCatchBlock().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+
+ }
+
+ @Override
+ public R visit(final CharLiteralExpr n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final ClassExpr n, final A arg) {
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ClassOrInterfaceDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ {
+ R result = t.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getExtends() != null) {
+ for (final ClassOrInterfaceType c : n.getExtends()) {
+ {
+ R result = c.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+
+ if (n.getImplements() != null) {
+ for (final ClassOrInterfaceType c : n.getImplements()) {
+ {
+ R result = c.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration member : n.getMembers()) {
+ {
+ R result = member.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ClassOrInterfaceType n, final A arg) {
+ if (n.getScope() != null) {
+ {
+ R result = n.getScope().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getTypeArgs() != null) {
+ for (final Type t : n.getTypeArgs()) {
+ {
+ R result = t.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final CompilationUnit n, final A arg) {
+ if (n.getPackage() != null) {
+ {
+ R result = n.getPackage().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getImports() != null) {
+ for (final ImportDeclaration i : n.getImports()) {
+ {
+ R result = i.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getTypes() != null) {
+ for (final TypeDeclaration typeDeclaration : n.getTypes()) {
+ {
+ R result = typeDeclaration.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ConditionalExpr n, final A arg) {
+ {
+ R result = n.getCondition().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getThenExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getElseExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ConstructorDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ {
+ R result = t.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getParameters() != null) {
+ for (final Parameter p : n.getParameters()) {
+ {
+ R result = p.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getThrows() != null) {
+ for (final NameExpr name : n.getThrows()) {
+ {
+ R result = name.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getBlock().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ContinueStmt n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final DoStmt n, final A arg) {
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getCondition().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final DoubleLiteralExpr n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final EmptyMemberDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final EmptyStmt n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final EmptyTypeDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final EnclosedExpr n, final A arg) {
+ {
+ R result = n.getInner().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final EnumConstantDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getClassBody() != null) {
+ for (final BodyDeclaration member : n.getClassBody()) {
+ {
+ R result = member.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final EnumDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getImplements() != null) {
+ for (final ClassOrInterfaceType c : n.getImplements()) {
+ {
+ R result = c.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getEntries() != null) {
+ for (final EnumConstantDeclaration e : n.getEntries()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration member : n.getMembers()) {
+ {
+ R result = member.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ExplicitConstructorInvocationStmt n, final A arg) {
+ if (!n.isThis()) {
+ if (n.getExpr() != null) {
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getTypeArgs() != null) {
+ for (final Type t : n.getTypeArgs()) {
+ {
+ R result = t.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ExpressionStmt n, final A arg) {
+ {
+ R result = n.getExpression().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final FieldAccessExpr n, final A arg) {
+ {
+ R result = n.getScope().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final FieldDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ for (final VariableDeclarator var : n.getVariables()) {
+ {
+ R result = var.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ForeachStmt n, final A arg) {
+ {
+ R result = n.getVariable().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getIterable().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ForStmt n, final A arg) {
+ if (n.getInit() != null) {
+ for (final Expression e : n.getInit()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getCompare() != null) {
+ {
+ R result = n.getCompare().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getUpdate() != null) {
+ for (final Expression e : n.getUpdate()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final IfStmt n, final A arg) {
+ {
+ R result = n.getCondition().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getThenStmt().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getElseStmt() != null) {
+ {
+ R result = n.getElseStmt().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ImportDeclaration n, final A arg) {
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final InitializerDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ {
+ R result = n.getBlock().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final InstanceOfExpr n, final A arg) {
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final IntegerLiteralExpr n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final IntegerLiteralMinValueExpr n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final JavadocComment n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final LabeledStmt n, final A arg) {
+ {
+ R result = n.getStmt().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final LongLiteralExpr n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final LongLiteralMinValueExpr n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final MarkerAnnotationExpr n, final A arg) {
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final MemberValuePair n, final A arg) {
+ {
+ R result = n.getValue().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final MethodCallExpr n, final A arg) {
+ if (n.getScope() != null) {
+ {
+ R result = n.getScope().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getTypeArgs() != null) {
+ for (final Type t : n.getTypeArgs()) {
+ {
+ R result = t.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final MethodDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ {
+ R result = n.getJavaDoc().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ {
+ R result = t.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getParameters() != null) {
+ for (final Parameter p : n.getParameters()) {
+ {
+ R result = p.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getThrows() != null) {
+ for (final NameExpr name : n.getThrows()) {
+ {
+ R result = name.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getBody() != null) {
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final NameExpr n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final NormalAnnotationExpr n, final A arg) {
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getPairs() != null) {
+ for (final MemberValuePair m : n.getPairs()) {
+ {
+ R result = m.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final NullLiteralExpr n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final ObjectCreationExpr n, final A arg) {
+ if (n.getScope() != null) {
+ {
+ R result = n.getScope().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getTypeArgs() != null) {
+ for (final Type t : n.getTypeArgs()) {
+ {
+ R result = t.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getAnonymousClassBody() != null) {
+ for (final BodyDeclaration member : n.getAnonymousClassBody()) {
+ {
+ R result = member.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final PackageDeclaration n, final A arg) {
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final Parameter n, final A arg) {
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getId().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final MultiTypeParameter n, final A arg) {
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ for (final Type type : n.getTypes()) {
+ R result = type.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ {
+ R result = n.getId().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final PrimitiveType n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final QualifiedNameExpr n, final A arg) {
+ {
+ R result = n.getQualifier().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ReferenceType n, final A arg) {
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ReturnStmt n, final A arg) {
+ if (n.getExpr() != null) {
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final SingleMemberAnnotationExpr n, final A arg) {
+ {
+ R result = n.getName().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getMemberValue().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final StringLiteralExpr n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final SuperExpr n, final A arg) {
+ if (n.getClassExpr() != null) {
+ {
+ R result = n.getClassExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final SwitchEntryStmt n, final A arg) {
+ if (n.getLabel() != null) {
+ {
+ R result = n.getLabel().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getStmts() != null) {
+ for (final Statement s : n.getStmts()) {
+ {
+ R result = s.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final SwitchStmt n, final A arg) {
+ {
+ R result = n.getSelector().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getEntries() != null) {
+ for (final SwitchEntryStmt e : n.getEntries()) {
+ {
+ R result = e.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+
+ }
+
+ @Override
+ public R visit(final SynchronizedStmt n, final A arg) {
+ {
+ if (n.getExpr() != null) {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ {
+ R result = n.getBlock().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ThisExpr n, final A arg) {
+ if (n.getClassExpr() != null) {
+ {
+ R result = n.getClassExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final ThrowStmt n, final A arg) {
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final TryStmt n, final A arg) {
+ if (n.getResources() != null) {
+ for (final VariableDeclarationExpr v : n.getResources()) {
+ {
+ R result = v.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getTryBlock().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getCatchs() != null) {
+ for (final CatchClause c : n.getCatchs()) {
+ {
+ R result = c.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (n.getFinallyBlock() != null) {
+ {
+ R result = n.getFinallyBlock().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final TypeDeclarationStmt n, final A arg) {
+ {
+ R result = n.getTypeDeclaration().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final TypeParameter n, final A arg) {
+ if (n.getTypeBound() != null) {
+ for (final ClassOrInterfaceType c : n.getTypeBound()) {
+ {
+ R result = c.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final UnaryExpr n, final A arg) {
+ {
+ R result = n.getExpr().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final UnknownType n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final VariableDeclarationExpr n, final A arg) {
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ {
+ R result = a.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ {
+ R result = n.getType().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ for (final VariableDeclarator v : n.getVars()) {
+ {
+ R result = v.accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final VariableDeclarator n, final A arg) {
+ {
+ R result = n.getId().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ if (n.getInit() != null) {
+ {
+ R result = n.getInit().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final VariableDeclaratorId n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final VoidType n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final WhileStmt n, final A arg) {
+ {
+ R result = n.getCondition().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ {
+ R result = n.getBody().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(final WildcardType n, final A arg) {
+ if (n.getExtends() != null) {
+ {
+ R result = n.getExtends().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ if (n.getSuper() != null) {
+ {
+ R result = n.getSuper().accept(this, arg);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(LambdaExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(MethodReferenceExpr n, A arg){
+ return null;
+ }
+
+ @Override
+ public R visit(TypeExpr n, A arg){
+ return null;
+ }
+
+ @Override
+ public R visit(final BlockComment n, final A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(final LineComment n, final A arg) {
+ return null;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/ModifierVisitorAdapter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/ModifierVisitorAdapter.java
new file mode 100644
index 000000000..3d23cea5a
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/ModifierVisitorAdapter.java
@@ -0,0 +1,973 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.PackageDeclaration;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BaseParameter;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.MultiTypeParameter;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.expr.ArrayAccessExpr;
+import com.github.javaparser.ast.expr.ArrayCreationExpr;
+import com.github.javaparser.ast.expr.ArrayInitializerExpr;
+import com.github.javaparser.ast.expr.AssignExpr;
+import com.github.javaparser.ast.expr.BinaryExpr;
+import com.github.javaparser.ast.expr.BooleanLiteralExpr;
+import com.github.javaparser.ast.expr.CastExpr;
+import com.github.javaparser.ast.expr.CharLiteralExpr;
+import com.github.javaparser.ast.expr.ClassExpr;
+import com.github.javaparser.ast.expr.ConditionalExpr;
+import com.github.javaparser.ast.expr.DoubleLiteralExpr;
+import com.github.javaparser.ast.expr.EnclosedExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.FieldAccessExpr;
+import com.github.javaparser.ast.expr.InstanceOfExpr;
+import com.github.javaparser.ast.expr.IntegerLiteralExpr;
+import com.github.javaparser.ast.expr.IntegerLiteralMinValueExpr;
+import com.github.javaparser.ast.expr.LambdaExpr;
+import com.github.javaparser.ast.expr.LongLiteralExpr;
+import com.github.javaparser.ast.expr.LongLiteralMinValueExpr;
+import com.github.javaparser.ast.expr.MarkerAnnotationExpr;
+import com.github.javaparser.ast.expr.MemberValuePair;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.MethodReferenceExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.ast.expr.NormalAnnotationExpr;
+import com.github.javaparser.ast.expr.NullLiteralExpr;
+import com.github.javaparser.ast.expr.ObjectCreationExpr;
+import com.github.javaparser.ast.expr.QualifiedNameExpr;
+import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr;
+import com.github.javaparser.ast.expr.StringLiteralExpr;
+import com.github.javaparser.ast.expr.SuperExpr;
+import com.github.javaparser.ast.expr.ThisExpr;
+import com.github.javaparser.ast.expr.TypeExpr;
+import com.github.javaparser.ast.expr.UnaryExpr;
+import com.github.javaparser.ast.expr.VariableDeclarationExpr;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.Statement;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * This visitor adapter can be used to save time when some specific nodes needs
+ * to be changed. To do that just extend this class and override the methods
+ * from the nodes who needs to be changed, returning the changed node.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public abstract class ModifierVisitorAdapter<A> implements GenericVisitor<Node, A> {
+
+ private void removeNulls(final List<?> list) {
+ for (int i = list.size() - 1; i >= 0; i--) {
+ if (list.get(i) == null) {
+ list.remove(i);
+ }
+ }
+ }
+
+ @Override public Node visit(final AnnotationDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ final List<BodyDeclaration> members = n.getMembers();
+ if (members != null) {
+ for (int i = 0; i < members.size(); i++) {
+ members.set(i, (BodyDeclaration) members.get(i).accept(this, arg));
+ }
+ removeNulls(members);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final AnnotationMemberDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ n.setType((Type) n.getType().accept(this, arg));
+ if (n.getDefaultValue() != null) {
+ n.setDefaultValue((Expression) n.getDefaultValue().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ArrayAccessExpr n, final A arg) {
+ n.setName((Expression) n.getName().accept(this, arg));
+ n.setIndex((Expression) n.getIndex().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ArrayCreationExpr n, final A arg) {
+ n.setType((Type) n.getType().accept(this, arg));
+ if (n.getDimensions() != null) {
+ final List<Expression> dimensions = n.getDimensions();
+ if (dimensions != null) {
+ for (int i = 0; i < dimensions.size(); i++) {
+ dimensions.set(i, (Expression) dimensions.get(i).accept(this, arg));
+ }
+ removeNulls(dimensions);
+ }
+ } else {
+ n.setInitializer((ArrayInitializerExpr) n.getInitializer().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ArrayInitializerExpr n, final A arg) {
+ if (n.getValues() != null) {
+ final List<Expression> values = n.getValues();
+ if (values != null) {
+ for (int i = 0; i < values.size(); i++) {
+ values.set(i, (Expression) values.get(i).accept(this, arg));
+ }
+ removeNulls(values);
+ }
+ }
+ return n;
+ }
+
+ @Override public Node visit(final AssertStmt n, final A arg) {
+ n.setCheck((Expression) n.getCheck().accept(this, arg));
+ if (n.getMessage() != null) {
+ n.setMessage((Expression) n.getMessage().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final AssignExpr n, final A arg) {
+ n.setTarget((Expression) n.getTarget().accept(this, arg));
+ n.setValue((Expression) n.getValue().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final BinaryExpr n, final A arg) {
+ n.setLeft((Expression) n.getLeft().accept(this, arg));
+ n.setRight((Expression) n.getRight().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final BlockStmt n, final A arg) {
+ final List<Statement> stmts = n.getStmts();
+ if (stmts != null) {
+ for (int i = 0; i < stmts.size(); i++) {
+ stmts.set(i, (Statement) stmts.get(i).accept(this, arg));
+ }
+ removeNulls(stmts);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final BooleanLiteralExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final BreakStmt n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final CastExpr n, final A arg) {
+ n.setType((Type) n.getType().accept(this, arg));
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final CatchClause n, final A arg) {
+ n.setExcept((MultiTypeParameter) n.getExcept().accept(this, arg));
+ n.setCatchBlock((BlockStmt) n.getCatchBlock().accept(this, arg));
+ return n;
+
+ }
+
+ @Override public Node visit(final CharLiteralExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final ClassExpr n, final A arg) {
+ n.setType((Type) n.getType().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ClassOrInterfaceDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ final List<TypeParameter> typeParameters = n.getTypeParameters();
+ if (typeParameters != null) {
+ for (int i = 0; i < typeParameters.size(); i++) {
+ typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg));
+ }
+ removeNulls(typeParameters);
+ }
+ final List<ClassOrInterfaceType> extendz = n.getExtends();
+ if (extendz != null) {
+ for (int i = 0; i < extendz.size(); i++) {
+ extendz.set(i, (ClassOrInterfaceType) extendz.get(i).accept(this, arg));
+ }
+ removeNulls(extendz);
+ }
+ final List<ClassOrInterfaceType> implementz = n.getImplements();
+ if (implementz != null) {
+ for (int i = 0; i < implementz.size(); i++) {
+ implementz.set(i, (ClassOrInterfaceType) implementz.get(i).accept(this, arg));
+ }
+ removeNulls(implementz);
+ }
+ final List<BodyDeclaration> members = n.getMembers();
+ if (members != null) {
+ for (int i = 0; i < members.size(); i++) {
+ members.set(i, (BodyDeclaration) members.get(i).accept(this, arg));
+ }
+ removeNulls(members);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ClassOrInterfaceType n, final A arg) {
+ if (n.getScope() != null) {
+ n.setScope((ClassOrInterfaceType) n.getScope().accept(this, arg));
+ }
+ final List<Type> typeArgs = n.getTypeArgs();
+ if (typeArgs != null) {
+ for (int i = 0; i < typeArgs.size(); i++) {
+ typeArgs.set(i, (Type) typeArgs.get(i).accept(this, arg));
+ }
+ removeNulls(typeArgs);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final CompilationUnit n, final A arg) {
+ if (n.getPackage() != null) {
+ n.setPackage((PackageDeclaration) n.getPackage().accept(this, arg));
+ }
+ final List<ImportDeclaration> imports = n.getImports();
+ if (imports != null) {
+ for (int i = 0; i < imports.size(); i++) {
+ imports.set(i, (ImportDeclaration) imports.get(i).accept(this, arg));
+ }
+ removeNulls(imports);
+ }
+ final List<TypeDeclaration> types = n.getTypes();
+ if (types != null) {
+ for (int i = 0; i < types.size(); i++) {
+ types.set(i, (TypeDeclaration) types.get(i).accept(this, arg));
+ }
+ removeNulls(types);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ConditionalExpr n, final A arg) {
+ n.setCondition((Expression) n.getCondition().accept(this, arg));
+ n.setThenExpr((Expression) n.getThenExpr().accept(this, arg));
+ n.setElseExpr((Expression) n.getElseExpr().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ConstructorDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ final List<TypeParameter> typeParameters = n.getTypeParameters();
+ if (typeParameters != null) {
+ for (int i = 0; i < typeParameters.size(); i++) {
+ typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg));
+ }
+ removeNulls(typeParameters);
+ }
+ final List<Parameter> parameters = n.getParameters();
+ if (parameters != null) {
+ for (int i = 0; i < parameters.size(); i++) {
+ parameters.set(i, (Parameter) parameters.get(i).accept(this, arg));
+ }
+ removeNulls(parameters);
+ }
+ final List<NameExpr> throwz = n.getThrows();
+ if (throwz != null) {
+ for (int i = 0; i < throwz.size(); i++) {
+ throwz.set(i, (NameExpr) throwz.get(i).accept(this, arg));
+ }
+ removeNulls(throwz);
+ }
+ n.setBlock((BlockStmt) n.getBlock().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ContinueStmt n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final DoStmt n, final A arg) {
+ n.setBody((Statement) n.getBody().accept(this, arg));
+ n.setCondition((Expression) n.getCondition().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final DoubleLiteralExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final EmptyMemberDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final EmptyStmt n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final EmptyTypeDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final EnclosedExpr n, final A arg) {
+ n.setInner((Expression) n.getInner().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final EnumConstantDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ final List<Expression> args = n.getArgs();
+ if (args != null) {
+ for (int i = 0; i < args.size(); i++) {
+ args.set(i, (Expression) args.get(i).accept(this, arg));
+ }
+ removeNulls(args);
+ }
+ final List<BodyDeclaration> classBody = n.getClassBody();
+ if (classBody != null) {
+ for (int i = 0; i < classBody.size(); i++) {
+ classBody.set(i, (BodyDeclaration) classBody.get(i).accept(this, arg));
+ }
+ removeNulls(classBody);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final EnumDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ final List<ClassOrInterfaceType> implementz = n.getImplements();
+ if (implementz != null) {
+ for (int i = 0; i < implementz.size(); i++) {
+ implementz.set(i, (ClassOrInterfaceType) implementz.get(i).accept(this, arg));
+ }
+ removeNulls(implementz);
+ }
+ final List<EnumConstantDeclaration> entries = n.getEntries();
+ if (entries != null) {
+ for (int i = 0; i < entries.size(); i++) {
+ entries.set(i, (EnumConstantDeclaration) entries.get(i).accept(this, arg));
+ }
+ removeNulls(entries);
+ }
+ final List<BodyDeclaration> members = n.getMembers();
+ if (members != null) {
+ for (int i = 0; i < members.size(); i++) {
+ members.set(i, (BodyDeclaration) members.get(i).accept(this, arg));
+ }
+ removeNulls(members);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ExplicitConstructorInvocationStmt n, final A arg) {
+ if (!n.isThis()) {
+ if (n.getExpr() != null) {
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ }
+ }
+ final List<Type> typeArgs = n.getTypeArgs();
+ if (typeArgs != null) {
+ for (int i = 0; i < typeArgs.size(); i++) {
+ typeArgs.set(i, (Type) typeArgs.get(i).accept(this, arg));
+ }
+ removeNulls(typeArgs);
+ }
+ final List<Expression> args = n.getArgs();
+ if (args != null) {
+ for (int i = 0; i < args.size(); i++) {
+ args.set(i, (Expression) args.get(i).accept(this, arg));
+ }
+ removeNulls(args);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ExpressionStmt n, final A arg) {
+ n.setExpression((Expression) n.getExpression().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final FieldAccessExpr n, final A arg) {
+ n.setScope((Expression) n.getScope().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final FieldDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ n.setType((Type) n.getType().accept(this, arg));
+ final List<VariableDeclarator> variables = n.getVariables();
+ for (int i = 0; i < variables.size(); i++) {
+ variables.set(i, (VariableDeclarator) variables.get(i).accept(this, arg));
+ }
+ removeNulls(variables);
+ return n;
+ }
+
+ @Override public Node visit(final ForeachStmt n, final A arg) {
+ n.setVariable((VariableDeclarationExpr) n.getVariable().accept(this, arg));
+ n.setIterable((Expression) n.getIterable().accept(this, arg));
+ n.setBody((Statement) n.getBody().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ForStmt n, final A arg) {
+ final List<Expression> init = n.getInit();
+ if (init != null) {
+ for (int i = 0; i < init.size(); i++) {
+ init.set(i, (Expression) init.get(i).accept(this, arg));
+ }
+ removeNulls(init);
+ }
+ if (n.getCompare() != null) {
+ n.setCompare((Expression) n.getCompare().accept(this, arg));
+ }
+ final List<Expression> update = n.getUpdate();
+ if (update != null) {
+ for (int i = 0; i < update.size(); i++) {
+ update.set(i, (Expression) update.get(i).accept(this, arg));
+ }
+ removeNulls(update);
+ }
+ n.setBody((Statement) n.getBody().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final IfStmt n, final A arg) {
+ n.setCondition((Expression) n.getCondition().accept(this, arg));
+ n.setThenStmt((Statement) n.getThenStmt().accept(this, arg));
+ if (n.getElseStmt() != null) {
+ n.setElseStmt((Statement) n.getElseStmt().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ImportDeclaration n, final A arg) {
+ n.setName((NameExpr) n.getName().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final InitializerDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ n.setBlock((BlockStmt) n.getBlock().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final InstanceOfExpr n, final A arg) {
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ n.setType((Type) n.getType().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final IntegerLiteralExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final IntegerLiteralMinValueExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final JavadocComment n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final LabeledStmt n, final A arg) {
+ n.setStmt((Statement) n.getStmt().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final LongLiteralExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final LongLiteralMinValueExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final MarkerAnnotationExpr n, final A arg) {
+ n.setName((NameExpr) n.getName().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final MemberValuePair n, final A arg) {
+ n.setValue((Expression) n.getValue().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final MethodCallExpr n, final A arg) {
+ if (n.getScope() != null) {
+ n.setScope((Expression) n.getScope().accept(this, arg));
+ }
+ final List<Type> typeArgs = n.getTypeArgs();
+ if (typeArgs != null) {
+ for (int i = 0; i < typeArgs.size(); i++) {
+ typeArgs.set(i, (Type) typeArgs.get(i).accept(this, arg));
+ }
+ removeNulls(typeArgs);
+ }
+ final List<Expression> args = n.getArgs();
+ if (args != null) {
+ for (int i = 0; i < args.size(); i++) {
+ args.set(i, (Expression) args.get(i).accept(this, arg));
+ }
+ removeNulls(args);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final MethodDeclaration n, final A arg) {
+ if (n.getJavaDoc() != null) {
+ n.setJavaDoc((JavadocComment) n.getJavaDoc().accept(this, arg));
+ }
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ final List<TypeParameter> typeParameters = n.getTypeParameters();
+ if (typeParameters != null) {
+ for (int i = 0; i < typeParameters.size(); i++) {
+ typeParameters.set(i, (TypeParameter) typeParameters.get(i).accept(this, arg));
+ }
+ removeNulls(typeParameters);
+ }
+ n.setType((Type) n.getType().accept(this, arg));
+ final List<Parameter> parameters = n.getParameters();
+ if (parameters != null) {
+ for (int i = 0; i < parameters.size(); i++) {
+ parameters.set(i, (Parameter) parameters.get(i).accept(this, arg));
+ }
+ removeNulls(parameters);
+ }
+ final List<NameExpr> throwz = n.getThrows();
+ if (throwz != null) {
+ for (int i = 0; i < throwz.size(); i++) {
+ throwz.set(i, (NameExpr) throwz.get(i).accept(this, arg));
+ }
+ removeNulls(throwz);
+ }
+ if (n.getBody() != null) {
+ n.setBody((BlockStmt) n.getBody().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final NameExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final NormalAnnotationExpr n, final A arg) {
+ n.setName((NameExpr) n.getName().accept(this, arg));
+ final List<MemberValuePair> pairs = n.getPairs();
+ if (pairs != null) {
+ for (int i = 0; i < pairs.size(); i++) {
+ pairs.set(i, (MemberValuePair) pairs.get(i).accept(this, arg));
+ }
+ removeNulls(pairs);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final NullLiteralExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final ObjectCreationExpr n, final A arg) {
+ if (n.getScope() != null) {
+ n.setScope((Expression) n.getScope().accept(this, arg));
+ }
+ final List<Type> typeArgs = n.getTypeArgs();
+ if (typeArgs != null) {
+ for (int i = 0; i < typeArgs.size(); i++) {
+ typeArgs.set(i, (Type) typeArgs.get(i).accept(this, arg));
+ }
+ removeNulls(typeArgs);
+ }
+ n.setType((ClassOrInterfaceType) n.getType().accept(this, arg));
+ final List<Expression> args = n.getArgs();
+ if (args != null) {
+ for (int i = 0; i < args.size(); i++) {
+ args.set(i, (Expression) args.get(i).accept(this, arg));
+ }
+ removeNulls(args);
+ }
+ final List<BodyDeclaration> anonymousClassBody = n.getAnonymousClassBody();
+ if (anonymousClassBody != null) {
+ for (int i = 0; i < anonymousClassBody.size(); i++) {
+ anonymousClassBody.set(i, (BodyDeclaration) anonymousClassBody.get(i).accept(this, arg));
+ }
+ removeNulls(anonymousClassBody);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final PackageDeclaration n, final A arg) {
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ n.setName((NameExpr) n.getName().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final Parameter n, final A arg) {
+ visit((BaseParameter) n, arg);
+ n.setType((Type) n.getType().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(MultiTypeParameter n, A arg) {
+ visit((BaseParameter) n, arg);
+ List<Type> types = new LinkedList<Type>();
+ for (Type type : n.getTypes()) {
+ types.add((Type) type.accept(this, arg));
+ }
+ n.setTypes(types);
+ return n;
+ }
+
+ protected Node visit(final BaseParameter n, final A arg) {
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+
+ n.setId((VariableDeclaratorId) n.getId().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final PrimitiveType n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final QualifiedNameExpr n, final A arg) {
+ n.setQualifier((NameExpr) n.getQualifier().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ReferenceType n, final A arg) {
+ n.setType((Type) n.getType().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ReturnStmt n, final A arg) {
+ if (n.getExpr() != null) {
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final SingleMemberAnnotationExpr n, final A arg) {
+ n.setName((NameExpr) n.getName().accept(this, arg));
+ n.setMemberValue((Expression) n.getMemberValue().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final StringLiteralExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final SuperExpr n, final A arg) {
+ if (n.getClassExpr() != null) {
+ n.setClassExpr((Expression) n.getClassExpr().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final SwitchEntryStmt n, final A arg) {
+ if (n.getLabel() != null) {
+ n.setLabel((Expression) n.getLabel().accept(this, arg));
+ }
+ final List<Statement> stmts = n.getStmts();
+ if (stmts != null) {
+ for (int i = 0; i < stmts.size(); i++) {
+ stmts.set(i, (Statement) stmts.get(i).accept(this, arg));
+ }
+ removeNulls(stmts);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final SwitchStmt n, final A arg) {
+ n.setSelector((Expression) n.getSelector().accept(this, arg));
+ final List<SwitchEntryStmt> entries = n.getEntries();
+ if (entries != null) {
+ for (int i = 0; i < entries.size(); i++) {
+ entries.set(i, (SwitchEntryStmt) entries.get(i).accept(this, arg));
+ }
+ removeNulls(entries);
+ }
+ return n;
+
+ }
+
+ @Override public Node visit(final SynchronizedStmt n, final A arg) {
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ n.setBlock((BlockStmt) n.getBlock().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final ThisExpr n, final A arg) {
+ if (n.getClassExpr() != null) {
+ n.setClassExpr((Expression) n.getClassExpr().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final ThrowStmt n, final A arg) {
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final TryStmt n, final A arg) {
+ n.setTryBlock((BlockStmt) n.getTryBlock().accept(this, arg));
+ final List<CatchClause> catchs = n.getCatchs();
+ if (catchs != null) {
+ for (int i = 0; i < catchs.size(); i++) {
+ catchs.set(i, (CatchClause) catchs.get(i).accept(this, arg));
+ }
+ removeNulls(catchs);
+ }
+ if (n.getFinallyBlock() != null) {
+ n.setFinallyBlock((BlockStmt) n.getFinallyBlock().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final TypeDeclarationStmt n, final A arg) {
+ n.setTypeDeclaration((TypeDeclaration) n.getTypeDeclaration().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final TypeParameter n, final A arg) {
+ final List<ClassOrInterfaceType> typeBound = n.getTypeBound();
+ if (typeBound != null) {
+ for (int i = 0; i < typeBound.size(); i++) {
+ typeBound.set(i, (ClassOrInterfaceType) typeBound.get(i).accept(this, arg));
+ }
+ removeNulls(typeBound);
+ }
+ return n;
+ }
+
+ @Override public Node visit(final UnaryExpr n, final A arg) {
+ n.setExpr((Expression) n.getExpr().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final UnknownType n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final VariableDeclarationExpr n, final A arg) {
+ final List<AnnotationExpr> annotations = n.getAnnotations();
+ if (annotations != null) {
+ for (int i = 0; i < annotations.size(); i++) {
+ annotations.set(i, (AnnotationExpr) annotations.get(i).accept(this, arg));
+ }
+ removeNulls(annotations);
+ }
+ n.setType((Type) n.getType().accept(this, arg));
+ final List<VariableDeclarator> vars = n.getVars();
+ for (int i = 0; i < vars.size(); i++) {
+ vars.set(i, (VariableDeclarator) vars.get(i).accept(this, arg));
+ }
+ removeNulls(vars);
+ return n;
+ }
+
+ @Override public Node visit(final VariableDeclarator n, final A arg) {
+ n.setId((VariableDeclaratorId) n.getId().accept(this, arg));
+ if (n.getInit() != null) {
+ n.setInit((Expression) n.getInit().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final VariableDeclaratorId n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final VoidType n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final WhileStmt n, final A arg) {
+ n.setCondition((Expression) n.getCondition().accept(this, arg));
+ n.setBody((Statement) n.getBody().accept(this, arg));
+ return n;
+ }
+
+ @Override public Node visit(final WildcardType n, final A arg) {
+ if (n.getExtends() != null) {
+ n.setExtends((ReferenceType) n.getExtends().accept(this, arg));
+ }
+ if (n.getSuper() != null) {
+ n.setSuper((ReferenceType) n.getSuper().accept(this, arg));
+ }
+ return n;
+ }
+
+ @Override public Node visit(final LambdaExpr n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final MethodReferenceExpr n, final A arg){
+ return n;
+ }
+
+ @Override public Node visit(final TypeExpr n, final A arg){
+ return n;
+ }
+
+ @Override public Node visit(final BlockComment n, final A arg) {
+ return n;
+ }
+
+ @Override public Node visit(final LineComment n, final A arg) {
+ return n;
+ }
+
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/VoidVisitor.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/VoidVisitor.java
new file mode 100644
index 000000000..b85bd55a7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/VoidVisitor.java
@@ -0,0 +1,254 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.PackageDeclaration;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.MultiTypeParameter;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+/**
+ * A visitor that does not return anything.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public interface VoidVisitor<A> {
+
+ //- Compilation Unit ----------------------------------
+
+ void visit(CompilationUnit n, A arg);
+
+ void visit(PackageDeclaration n, A arg);
+
+ void visit(ImportDeclaration n, A arg);
+
+ void visit(TypeParameter n, A arg);
+
+ void visit(LineComment n, A arg);
+
+ void visit(BlockComment n, A arg);
+
+ //- Body ----------------------------------------------
+
+ void visit(ClassOrInterfaceDeclaration n, A arg);
+
+ void visit(EnumDeclaration n, A arg);
+
+ void visit(EmptyTypeDeclaration n, A arg);
+
+ void visit(EnumConstantDeclaration n, A arg);
+
+ void visit(AnnotationDeclaration n, A arg);
+
+ void visit(AnnotationMemberDeclaration n, A arg);
+
+ void visit(FieldDeclaration n, A arg);
+
+ void visit(VariableDeclarator n, A arg);
+
+ void visit(VariableDeclaratorId n, A arg);
+
+ void visit(ConstructorDeclaration n, A arg);
+
+ void visit(MethodDeclaration n, A arg);
+
+ void visit(Parameter n, A arg);
+
+ void visit(MultiTypeParameter n, A arg);
+
+ void visit(EmptyMemberDeclaration n, A arg);
+
+ void visit(InitializerDeclaration n, A arg);
+
+ void visit(JavadocComment n, A arg);
+
+ //- Type ----------------------------------------------
+
+ void visit(ClassOrInterfaceType n, A arg);
+
+ void visit(PrimitiveType n, A arg);
+
+ void visit(ReferenceType n, A arg);
+
+ void visit(VoidType n, A arg);
+
+ void visit(WildcardType n, A arg);
+
+ void visit(UnknownType n, A arg);
+
+ //- Expression ----------------------------------------
+
+ void visit(ArrayAccessExpr n, A arg);
+
+ void visit(ArrayCreationExpr n, A arg);
+
+ void visit(ArrayInitializerExpr n, A arg);
+
+ void visit(AssignExpr n, A arg);
+
+ void visit(BinaryExpr n, A arg);
+
+ void visit(CastExpr n, A arg);
+
+ void visit(ClassExpr n, A arg);
+
+ void visit(ConditionalExpr n, A arg);
+
+ void visit(EnclosedExpr n, A arg);
+
+ void visit(FieldAccessExpr n, A arg);
+
+ void visit(InstanceOfExpr n, A arg);
+
+ void visit(StringLiteralExpr n, A arg);
+
+ void visit(IntegerLiteralExpr n, A arg);
+
+ void visit(LongLiteralExpr n, A arg);
+
+ void visit(IntegerLiteralMinValueExpr n, A arg);
+
+ void visit(LongLiteralMinValueExpr n, A arg);
+
+ void visit(CharLiteralExpr n, A arg);
+
+ void visit(DoubleLiteralExpr n, A arg);
+
+ void visit(BooleanLiteralExpr n, A arg);
+
+ void visit(NullLiteralExpr n, A arg);
+
+ void visit(MethodCallExpr n, A arg);
+
+ void visit(NameExpr n, A arg);
+
+ void visit(ObjectCreationExpr n, A arg);
+
+ void visit(QualifiedNameExpr n, A arg);
+
+ void visit(ThisExpr n, A arg);
+
+ void visit(SuperExpr n, A arg);
+
+ void visit(UnaryExpr n, A arg);
+
+ void visit(VariableDeclarationExpr n, A arg);
+
+ void visit(MarkerAnnotationExpr n, A arg);
+
+ void visit(SingleMemberAnnotationExpr n, A arg);
+
+ void visit(NormalAnnotationExpr n, A arg);
+
+ void visit(MemberValuePair n, A arg);
+
+ //- Statements ----------------------------------------
+
+ void visit(ExplicitConstructorInvocationStmt n, A arg);
+
+ void visit(TypeDeclarationStmt n, A arg);
+
+ void visit(AssertStmt n, A arg);
+
+ void visit(BlockStmt n, A arg);
+
+ void visit(LabeledStmt n, A arg);
+
+ void visit(EmptyStmt n, A arg);
+
+ void visit(ExpressionStmt n, A arg);
+
+ void visit(SwitchStmt n, A arg);
+
+ void visit(SwitchEntryStmt n, A arg);
+
+ void visit(BreakStmt n, A arg);
+
+ void visit(ReturnStmt n, A arg);
+
+ void visit(IfStmt n, A arg);
+
+ void visit(WhileStmt n, A arg);
+
+ void visit(ContinueStmt n, A arg);
+
+ void visit(DoStmt n, A arg);
+
+ void visit(ForeachStmt n, A arg);
+
+ void visit(ForStmt n, A arg);
+
+ void visit(ThrowStmt n, A arg);
+
+ void visit(SynchronizedStmt n, A arg);
+
+ void visit(TryStmt n, A arg);
+
+ void visit(CatchClause n, A arg);
+
+ void visit(LambdaExpr n, A arg);
+
+ void visit(MethodReferenceExpr n, A arg);
+
+ void visit(TypeExpr n, A arg);
+}
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java
new file mode 100644
index 000000000..ddad12fb7
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java
@@ -0,0 +1,846 @@
+/*
+ * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2015 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.comments.BlockComment;
+import com.github.javaparser.ast.comments.Comment;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+import com.github.javaparser.ast.comments.LineComment;
+import com.github.javaparser.ast.PackageDeclaration;
+import com.github.javaparser.ast.TypeParameter;
+import com.github.javaparser.ast.body.AnnotationDeclaration;
+import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.ConstructorDeclaration;
+import com.github.javaparser.ast.body.EmptyMemberDeclaration;
+import com.github.javaparser.ast.body.EmptyTypeDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.EnumDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.body.InitializerDeclaration;
+import com.github.javaparser.ast.comments.JavadocComment;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.MultiTypeParameter;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.body.VariableDeclaratorId;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.stmt.AssertStmt;
+import com.github.javaparser.ast.stmt.BlockStmt;
+import com.github.javaparser.ast.stmt.BreakStmt;
+import com.github.javaparser.ast.stmt.CatchClause;
+import com.github.javaparser.ast.stmt.ContinueStmt;
+import com.github.javaparser.ast.stmt.DoStmt;
+import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
+import com.github.javaparser.ast.stmt.ExpressionStmt;
+import com.github.javaparser.ast.stmt.ForStmt;
+import com.github.javaparser.ast.stmt.ForeachStmt;
+import com.github.javaparser.ast.stmt.IfStmt;
+import com.github.javaparser.ast.stmt.LabeledStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
+import com.github.javaparser.ast.stmt.Statement;
+import com.github.javaparser.ast.stmt.SwitchEntryStmt;
+import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.ast.stmt.SynchronizedStmt;
+import com.github.javaparser.ast.stmt.ThrowStmt;
+import com.github.javaparser.ast.stmt.TryStmt;
+import com.github.javaparser.ast.stmt.TypeDeclarationStmt;
+import com.github.javaparser.ast.stmt.WhileStmt;
+import com.github.javaparser.ast.type.*;
+
+import static com.github.javaparser.ast.internal.Utils.isNullOrEmpty;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class VoidVisitorAdapter<A> implements VoidVisitor<A> {
+
+ @Override public void visit(final AnnotationDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final AnnotationMemberDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ if (n.getDefaultValue() != null) {
+ n.getDefaultValue().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ArrayAccessExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ n.getIndex().accept(this, arg);
+ }
+
+ @Override public void visit(final ArrayCreationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getType().accept(this, arg);
+ if (!isNullOrEmpty(n.getDimensions())) {
+ for (final Expression dim : n.getDimensions()) {
+ dim.accept(this, arg);
+ }
+ } else {
+ n.getInitializer().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ArrayInitializerExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getValues() != null) {
+ for (final Expression expr : n.getValues()) {
+ expr.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final AssertStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getCheck().accept(this, arg);
+ if (n.getMessage() != null) {
+ n.getMessage().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final AssignExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getTarget().accept(this, arg);
+ n.getValue().accept(this, arg);
+ }
+
+ @Override public void visit(final BinaryExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getLeft().accept(this, arg);
+ n.getRight().accept(this, arg);
+ }
+
+ @Override public void visit(final BlockComment n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final BlockStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getStmts() != null) {
+ for (final Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final BooleanLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final BreakStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final CastExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getType().accept(this, arg);
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final CatchClause n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExcept().accept(this, arg);
+ n.getCatchBlock().accept(this, arg);
+ }
+
+ @Override public void visit(final CharLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final ClassExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getType().accept(this, arg);
+ }
+
+ @Override public void visit(final ClassOrInterfaceDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getExtends() != null) {
+ for (final ClassOrInterfaceType c : n.getExtends()) {
+ c.accept(this, arg);
+ }
+ }
+
+ if (n.getImplements() != null) {
+ for (final ClassOrInterfaceType c : n.getImplements()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final ClassOrInterfaceType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArgs() != null) {
+ for (final Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final CompilationUnit n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getPackage() != null) {
+ n.getPackage().accept(this, arg);
+ }
+ if (n.getImports() != null) {
+ for (final ImportDeclaration i : n.getImports()) {
+ i.accept(this, arg);
+ }
+ }
+ if (n.getTypes() != null) {
+ for (final TypeDeclaration typeDeclaration : n.getTypes()) {
+ typeDeclaration.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final ConditionalExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getCondition().accept(this, arg);
+ n.getThenExpr().accept(this, arg);
+ n.getElseExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final ConstructorDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getParameters() != null) {
+ for (final Parameter p : n.getParameters()) {
+ p.accept(this, arg);
+ }
+ }
+ if (n.getThrows() != null) {
+ for (final NameExpr name : n.getThrows()) {
+ name.accept(this, arg);
+ }
+ }
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override public void visit(final ContinueStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final DoStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getBody().accept(this, arg);
+ n.getCondition().accept(this, arg);
+ }
+
+ @Override public void visit(final DoubleLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final EmptyMemberDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final EmptyStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final EmptyTypeDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final EnclosedExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getInner().accept(this, arg);
+ }
+
+ @Override public void visit(final EnumConstantDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getClassBody() != null) {
+ for (final BodyDeclaration member : n.getClassBody()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final EnumDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getImplements() != null) {
+ for (final ClassOrInterfaceType c : n.getImplements()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getEntries() != null) {
+ for (final EnumConstantDeclaration e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getMembers() != null) {
+ for (final BodyDeclaration member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final ExplicitConstructorInvocationStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (!n.isThis()) {
+ if (n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ }
+ }
+ if (n.getTypeArgs() != null) {
+ for (final Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final ExpressionStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExpression().accept(this, arg);
+ }
+
+ @Override public void visit(final FieldAccessExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getScope().accept(this, arg);
+ }
+
+ @Override public void visit(final FieldDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ for (final VariableDeclarator var : n.getVariables()) {
+ var.accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ForeachStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getVariable().accept(this, arg);
+ n.getIterable().accept(this, arg);
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final ForStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getInit() != null) {
+ for (final Expression e : n.getInit()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getCompare() != null) {
+ n.getCompare().accept(this, arg);
+ }
+ if (n.getUpdate() != null) {
+ for (final Expression e : n.getUpdate()) {
+ e.accept(this, arg);
+ }
+ }
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final IfStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getCondition().accept(this, arg);
+ n.getThenStmt().accept(this, arg);
+ if (n.getElseStmt() != null) {
+ n.getElseStmt().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ImportDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ }
+
+ @Override public void visit(final InitializerDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override public void visit(final InstanceOfExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExpr().accept(this, arg);
+ n.getType().accept(this, arg);
+ }
+
+ @Override public void visit(final IntegerLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final IntegerLiteralMinValueExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final JavadocComment n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final LabeledStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getStmt().accept(this, arg);
+ }
+
+ @Override public void visit(final LineComment n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final LongLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final LongLiteralMinValueExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final MarkerAnnotationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ }
+
+ @Override public void visit(final MemberValuePair n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getValue().accept(this, arg);
+ }
+
+ @Override public void visit(final MethodCallExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArgs() != null) {
+ for (final Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final MethodDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ if (n.getParameters() != null) {
+ for (final Parameter p : n.getParameters()) {
+ p.accept(this, arg);
+ }
+ }
+ if (n.getThrows() != null) {
+ for (final NameExpr name : n.getThrows()) {
+ name.accept(this, arg);
+ }
+ }
+ if (n.getBody() != null) {
+ n.getBody().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final NameExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final NormalAnnotationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ if (n.getPairs() != null) {
+ for (final MemberValuePair m : n.getPairs()) {
+ m.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final NullLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final ObjectCreationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArgs() != null) {
+ for (final Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ if (n.getArgs() != null) {
+ for (final Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getAnonymousClassBody() != null) {
+ for (final BodyDeclaration member : n.getAnonymousClassBody()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final PackageDeclaration n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getName().accept(this, arg);
+ }
+
+ @Override public void visit(final Parameter n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ n.getId().accept(this, arg);
+ }
+
+ @Override public void visit(final MultiTypeParameter n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ for (final Type type : n.getTypes()) {
+ type.accept(this, arg);
+ }
+ n.getId().accept(this, arg);
+ }
+
+ @Override public void visit(final PrimitiveType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final QualifiedNameExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getQualifier().accept(this, arg);
+ }
+
+ @Override public void visit(final ReferenceType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getType().accept(this, arg);
+ }
+
+ @Override public void visit(final ReturnStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final SingleMemberAnnotationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getName().accept(this, arg);
+ n.getMemberValue().accept(this, arg);
+ }
+
+ @Override public void visit(final StringLiteralExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final SuperExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final SwitchEntryStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getLabel() != null) {
+ n.getLabel().accept(this, arg);
+ }
+ if (n.getStmts() != null) {
+ for (final Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final SwitchStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getSelector().accept(this, arg);
+ if (n.getEntries() != null) {
+ for (final SwitchEntryStmt e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final SynchronizedStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExpr().accept(this, arg);
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override public void visit(final ThisExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final ThrowStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final TryStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getResources() != null) {
+ for (final VariableDeclarationExpr v : n.getResources()) {
+ v.accept(this, arg);
+ }
+ }
+ n.getTryBlock().accept(this, arg);
+ if (n.getCatchs() != null) {
+ for (final CatchClause c : n.getCatchs()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getFinallyBlock() != null) {
+ n.getFinallyBlock().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final TypeDeclarationStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getTypeDeclaration().accept(this, arg);
+ }
+
+ @Override public void visit(final TypeParameter n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getTypeBound() != null) {
+ for (final ClassOrInterfaceType c : n.getTypeBound()) {
+ c.accept(this, arg);
+ }
+ }
+ }
+
+ @Override public void visit(final UnaryExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override public void visit(final UnknownType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final VariableDeclarationExpr n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getAnnotations() != null) {
+ for (final AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ for (final VariableDeclarator v : n.getVars()) {
+ v.accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final VariableDeclarator n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getId().accept(this, arg);
+ if (n.getInit() != null) {
+ n.getInit().accept(this, arg);
+ }
+ }
+
+ @Override public void visit(final VariableDeclaratorId n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final VoidType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ }
+
+ @Override public void visit(final WhileStmt n, final A arg) {
+ visitComment(n.getComment(), arg);
+ n.getCondition().accept(this, arg);
+ n.getBody().accept(this, arg);
+ }
+
+ @Override public void visit(final WildcardType n, final A arg) {
+ visitComment(n.getComment(), arg);
+ if (n.getExtends() != null) {
+ n.getExtends().accept(this, arg);
+ }
+ if (n.getSuper() != null) {
+ n.getSuper().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(LambdaExpr n, final A arg) {
+ if (n.getParameters() != null) {
+ for (final Parameter a : n.getParameters()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getBody() != null) {
+ n.getBody().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(MethodReferenceExpr n, final A arg) {
+ if (n.getTypeParameters() != null) {
+ for (final TypeParameter a : n.getTypeParameters()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(TypeExpr n, final A arg) {
+ if (n.getType() != null) {
+ n.getType().accept(this, arg);
+ }
+ }
+
+ private void visitComment(final Comment n, final A arg) {
+ if (n != null) {
+ n.accept(this, arg);
+ }
+ }
+}