diff --git a/appveyor.yml b/appveyor.yml index de0bdb6cb6..6c582bcf48 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,15 +7,15 @@ install: Add-Type -AssemblyName System.IO.Compression.FileSystem if (!(Test-Path -Path "C:\maven" )) { (new-object System.Net.WebClient).DownloadFile( - 'http://www.us.apache.org/dist/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.zip', + 'http://www.us.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip', 'C:\maven-bin.zip' ) [System.IO.Compression.ZipFile]::ExtractToDirectory("C:\maven-bin.zip", "C:\maven") } - - cmd: SET PATH=C:\maven\apache-maven-3.2.5\bin;%JAVA_HOME%\bin;%PATH% + - cmd: SET PATH=C:\maven\apache-maven-3.6.3\bin;%JAVA_HOME%\bin;%PATH% - cmd: SET MAVEN_OPTS=-Xmx1g - cmd: SET JAVA_OPTS=-Xmx1g - - cmd: SET M2_HOME=C:\maven\apache-maven-3.2.5 + - cmd: SET M2_HOME=C:\maven\apache-maven-3.6.3 - cmd: SET JAVA_HOME=C:\Program Files\Java\jdk10 build_script: - echo ignore this diff --git a/changelog.md b/changelog.md index 9900b614b6..3b34586c22 100644 --- a/changelog.md +++ b/changelog.md @@ -1,8 +1,94 @@ +Next Release (3.15.19) +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/172?closed=1) + +* DEPRECATED: Deprecated and documented `JarTypeSolver#getJarTypeSolver(String)`, with a view to later removal. + ([#2598](https://github.com/javaparser/javaparser/pull/2598)) +* FIXED: Fix issue #2552 : UnsupportedOperationException caused by resolving inner annotation + ([#2553](https://github.com/javaparser/javaparser/pull/2553)) +* FIXED: Parents of `NodeList`s now correctly retain their parent when a child is replaced + ([#2594](https://github.com/javaparser/javaparser/pull/2594)) +* FIXED: Fix JavaParserClassDeclaration canBeAssignedTo() to not cause a recursion when a node is its own parent (e.g. `java.lang.Object`) + ([#2608](https://github.com/javaparser/javaparser/pull/2608)) +* FIXED: Fix replacing an expression preceded by a comment (`LexicalPreservation` would previously throw an `UnsupportedOperation`) + ([#2611](https://github.com/javaparser/javaparser/pull/2611)) + + +Version 3.15.18 +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/170?closed=1) + +* CHANGED: Dependencies should now all be up-to-date. + ([#2572](https://github.com/javaparser/javaparser/pull/2572) / [#2581](https://github.com/javaparser/javaparser/pull/2581)) + - Note that the JavaCC update introduced a breaking change that now requires a StreamProvider to be passed a charset if using an InputStream source. +* FIXED (possible CHANGED/BREAKING): + Improvements have been made to method `PositionUtils#nodeContains()` for clarity and precision in behaviour. + ([#2502](https://github.com/javaparser/javaparser/pull/2502)) + - It is believed that there are no changes to behaviour, but if you do see anything please do reach out. + - See some additional commentary/thoughts in #2502 +* FIXED: Resolving super methodcalls in anonymous inner classes (fixes #1962) + ([#2585](https://github.com/javaparser/javaparser/pull/2585)) +* ADDED: `NodeList#getFirst(): Optional` + ([#2502](https://github.com/javaparser/javaparser/pull/2502)) +* ADDED: `NodeList#getLast(): Optional` + ([#2502](https://github.com/javaparser/javaparser/pull/2502)) + +Version 3.15.17 +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/169?closed=1) + +* CHANGED: Merged symbol solver modules, for java 9 module compatibility + ([#2564](https://github.com/javaparser/javaparser/pull/2564)) +* CHANGED: Renamed the pretty printer configuration option `isSpacesBetweenOperators` to `isSpaceAroundOperators` + ([#2555](https://github.com/javaparser/javaparser/pull/2555)) + +Version 3.15.16 +------------------ +_Version skipped_ + +Version 3.15.15 +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/168?closed=1) + +* Often requested, finally implemented by [ReallyLiri](https://github.com/ReallyLiri): +configurable cache sizes for the symbol solver. + +Version 3.15.14 (buggy) +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/167?closed=1) + +* a suggestion for a new Javadoc parsing API was merged too quickly, +causing issues parsing Javadoc while parsing Java normally. + +Version 3.15.13 +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/166?closed=1) + +Version 3.15.12 +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/165?closed=1) + +Version 3.15.11 +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/164?closed=1) + +Version 3.15.10 +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/163?closed=1) + +Version 3.15.9 +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/161?closed=1) + +Version 3.15.8 +------------------ +[issues resolved](https://github.com/javaparser/javaparser/milestone/160?closed=1) + Version 3.15.7 ------------------ * BREAKING: Range.overlapsWith works slightly different now. -[issues resolved](https://github.com/javaparser/javaparser/milestone/160?closed=1) +[issues resolved](https://github.com/javaparser/javaparser/milestone/162?closed=1) Version 3.15.6 ------------------ diff --git a/javaparser-core-generators/pom.xml b/javaparser-core-generators/pom.xml index 7b05bddbdc..9af197c66a 100644 --- a/javaparser-core-generators/pom.xml +++ b/javaparser-core-generators/pom.xml @@ -3,7 +3,7 @@ javaparser-parent com.github.javaparser - 3.15.8-SNAPSHOT + 3.15.19-SNAPSHOT 4.0.0 diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/Generator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/Generator.java index be312c7961..2c134d0110 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/Generator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/Generator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java index b9f41fcb30..bbb709d8a6 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/VisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/VisitorGenerator.java index 7103cbe8ac..325711cfc3 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/VisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/VisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/CoreGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/CoreGenerator.java index a74003c337..f5b15fff1f 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/CoreGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/CoreGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/AcceptGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/AcceptGenerator.java index 8bac895488..ec4fc9c772 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/AcceptGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/AcceptGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/CloneGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/CloneGenerator.java index 654643aba4..dff541e88b 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/CloneGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/CloneGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetMetaModelGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetMetaModelGenerator.java index e6229ac620..299f7d3738 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetMetaModelGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetMetaModelGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/MainConstructorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/MainConstructorGenerator.java index 3efbfd16f8..0f76da4745 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/MainConstructorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/MainConstructorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/NodeModifierGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/NodeModifierGenerator.java index fd2044ae0b..cb052d1a7a 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/NodeModifierGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/NodeModifierGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/PropertyGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/PropertyGenerator.java index b64383d19f..7e811e1b58 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/PropertyGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/PropertyGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/RemoveMethodGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/RemoveMethodGenerator.java index c7704ea5d1..4af7d284c9 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/RemoveMethodGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/RemoveMethodGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/ReplaceMethodGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/ReplaceMethodGenerator.java index 14da6f95cc..fa8a0822fb 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/ReplaceMethodGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/ReplaceMethodGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java index 566fe8fc4d..5b73897b14 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/BndGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/BndGenerator.java index 19ec4e9c6f..3808827603 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/BndGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/BndGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/GrammarLetterGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/GrammarLetterGenerator.java index 3d5c95f430..af9d45590c 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/GrammarLetterGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/GrammarLetterGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/TokenKindGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/TokenKindGenerator.java index bf4b73697c..c2c1e4ace7 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/TokenKindGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/TokenKindGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/CloneVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/CloneVisitorGenerator.java index b90eab9827..3dd514bdd7 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/CloneVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/CloneVisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/EqualsVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/EqualsVisitorGenerator.java index 07b74fd0d9..a30aef53ec 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/EqualsVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/EqualsVisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericListVisitorAdapterGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericListVisitorAdapterGenerator.java index 37638ebbea..31b6842819 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericListVisitorAdapterGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericListVisitorAdapterGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorAdapterGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorAdapterGenerator.java index 0c77d7357f..ac3206a028 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorAdapterGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorAdapterGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorGenerator.java index 827e7a5d2e..e69df4a593 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorWithDefaultsGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorWithDefaultsGenerator.java index a79e8855bc..818852a982 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorWithDefaultsGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorWithDefaultsGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/HashCodeVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/HashCodeVisitorGenerator.java index bf0de928b4..286bb3903d 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/HashCodeVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/HashCodeVisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ModifierVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ModifierVisitorGenerator.java index 44fb71863c..2430466b23 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ModifierVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ModifierVisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentEqualsVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentEqualsVisitorGenerator.java index 96f5c67904..f65f4c9a1f 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentEqualsVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentEqualsVisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentHashCodeVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentHashCodeVisitorGenerator.java index a39b74ff0a..0d312862d2 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentHashCodeVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentHashCodeVisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityEqualsVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityEqualsVisitorGenerator.java index b311abc707..87e796dcb1 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityEqualsVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityEqualsVisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityHashCodeVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityHashCodeVisitorGenerator.java index ed71a428a1..c0709c7f8b 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityHashCodeVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityHashCodeVisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorAdapterGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorAdapterGenerator.java index 72859d8a8b..28e3a1016a 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorAdapterGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorAdapterGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorGenerator.java index 427cac5d97..663715bb14 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorWithDefaultsGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorWithDefaultsGenerator.java index ffabf0fff0..3f90849316 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorWithDefaultsGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorWithDefaultsGenerator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-metamodel-generator/pom.xml b/javaparser-core-metamodel-generator/pom.xml index 96743b4322..aca0bdc49e 100644 --- a/javaparser-core-metamodel-generator/pom.xml +++ b/javaparser-core-metamodel-generator/pom.xml @@ -3,7 +3,7 @@ javaparser-parent com.github.javaparser - 3.15.8-SNAPSHOT + 3.15.19-SNAPSHOT 4.0.0 diff --git a/javaparser-core-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/MetaModelGenerator.java b/javaparser-core-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/MetaModelGenerator.java index 7e593dc220..d59b4d9cd0 100644 --- a/javaparser-core-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/MetaModelGenerator.java +++ b/javaparser-core-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/MetaModelGenerator.java @@ -48,6 +48,49 @@ public class MetaModelGenerator { static final String BASE_NODE_META_MODEL = "BaseNodeMetaModel"; + + static final String COPYRIGHT_NOTICE_JP_CORE = "\n" + + " * Copyright (C) 2007-2010 Júlio Vilmar Gesser.\n" + + " * Copyright (C) 2011, 2013-2020 The JavaParser Team.\n" + + " *\n" + + " * This file is part of JavaParser.\n" + + " *\n" + + " * JavaParser can be used either under the terms of\n" + + " * a) the GNU Lesser General Public License as published by\n" + + " * the Free Software Foundation, either version 3 of the License, or\n" + + " * (at your option) any later version.\n" + + " * b) the terms of the Apache License\n" + + " *\n" + + " * You should have received a copy of both licenses in LICENCE.LGPL and\n" + + " * LICENCE.APACHE. Please refer to those files for details.\n" + + " *\n" + + " * JavaParser is distributed in the hope that it will be useful,\n" + + " * but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + + " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + + " * GNU Lesser General Public License for more details.\n" + + " "; + + static final String COPYRIGHT_NOTICE_JP_SS = "\n" + + " * Copyright (C) 2015-2016 Federico Tomassetti\n" + + " * Copyright (C) 2017-2020 The JavaParser Team.\n" + + " *\n" + + " * This file is part of JavaParser.\n" + + " *\n" + + " * JavaParser can be used either under the terms of\n" + + " * a) the GNU Lesser General Public License as published by\n" + + " * the Free Software Foundation, either version 3 of the License, or\n" + + " * (at your option) any later version.\n" + + " * b) the terms of the Apache License\n" + + " *\n" + + " * You should have received a copy of both licenses in LICENCE.LGPL and\n" + + " * LICENCE.APACHE. Please refer to those files for details.\n" + + " *\n" + + " * JavaParser is distributed in the hope that it will be useful,\n" + + " * but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + + " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + + " * GNU Lesser General Public License for more details.\n" + + " "; + private static List> ALL_NODE_CLASSES = new ArrayList>() {{ /* Base classes go first, so we don't have to do any sorting to make sure generated classes can refer to their base generated classes without @@ -195,9 +238,10 @@ public static void main(String[] args) throws NoSuchMethodException { } private void run(SourceRoot sourceRoot) throws NoSuchMethodException { - final CompilationUnit javaParserMetaModel = sourceRoot.parse(METAMODEL_PACKAGE, "JavaParserMetaModel.java"); + final CompilationUnit javaParserMetaModelCu = sourceRoot.parse(METAMODEL_PACKAGE, "JavaParserMetaModel.java"); + javaParserMetaModelCu.setBlockComment(COPYRIGHT_NOTICE_JP_CORE); - generateNodeMetaModels(javaParserMetaModel, sourceRoot); + generateNodeMetaModels(javaParserMetaModelCu, sourceRoot); } private void generateNodeMetaModels(CompilationUnit javaParserMetaModelCu, SourceRoot sourceRoot) throws NoSuchMethodException { diff --git a/javaparser-core-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/NodeMetaModelGenerator.java b/javaparser-core-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/NodeMetaModelGenerator.java index e939259f17..d38a01d82d 100644 --- a/javaparser-core-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/NodeMetaModelGenerator.java +++ b/javaparser-core-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/NodeMetaModelGenerator.java @@ -39,38 +39,39 @@ import static com.github.javaparser.StaticJavaParser.*; import static com.github.javaparser.ast.Modifier.Keyword.*; -import static com.github.javaparser.generator.metamodel.MetaModelGenerator.*; import static com.github.javaparser.utils.CodeGenerationUtils.f; import static com.github.javaparser.utils.CodeGenerationUtils.optionalOf; import static com.github.javaparser.utils.Utils.decapitalize; public class NodeMetaModelGenerator { + private final InitializePropertyMetaModelsStatementsGenerator initializePropertyMetaModelsStatementsGenerator = new InitializePropertyMetaModelsStatementsGenerator(); private final InitializeConstructorParametersStatementsGenerator initializeConstructorParametersStatementsGenerator = new InitializeConstructorParametersStatementsGenerator(); public void generate(Class nodeClass, ClassOrInterfaceDeclaration metaModelCoid, NodeList initializeNodeMetaModelsStatements, NodeList initializePropertyMetaModelsStatements, NodeList initializeConstructorParametersStatements, SourceRoot sourceRoot) throws NoSuchMethodException { - final String className = nodeMetaModelName(nodeClass); + final String className = MetaModelGenerator.nodeMetaModelName(nodeClass); final String nodeMetaModelFieldName = decapitalize(className); metaModelCoid.getFieldByName(nodeMetaModelFieldName).ifPresent(Node::remove); final FieldDeclaration nodeField = metaModelCoid.addField(className, nodeMetaModelFieldName, PUBLIC, STATIC, FINAL); final Class superclass = nodeClass.getSuperclass(); - final String superNodeMetaModel = nodeMetaModelName(superclass); + final String superNodeMetaModel = MetaModelGenerator.nodeMetaModelName(superclass); - boolean isRootNode = !isNode(superclass); + boolean isRootNode = !MetaModelGenerator.isNode(superclass); nodeField.getVariable(0).setInitializer(parseExpression(f("new %s(%s)", className, optionalOf(decapitalize(superNodeMetaModel), !isRootNode)))); initializeNodeMetaModelsStatements.add(parseStatement(f("nodeMetaModels.add(%s);", nodeMetaModelFieldName))); - final CompilationUnit classMetaModelJavaFile = new CompilationUnit(METAMODEL_PACKAGE); + final CompilationUnit classMetaModelJavaFile = new CompilationUnit(MetaModelGenerator.METAMODEL_PACKAGE); + classMetaModelJavaFile.setBlockComment(MetaModelGenerator.COPYRIGHT_NOTICE_JP_CORE); classMetaModelJavaFile.addImport("java.util.Optional"); - sourceRoot.add(METAMODEL_PACKAGE, className + ".java", classMetaModelJavaFile); + sourceRoot.add(MetaModelGenerator.METAMODEL_PACKAGE, className + ".java", classMetaModelJavaFile); final ClassOrInterfaceDeclaration nodeMetaModelClass = classMetaModelJavaFile.addClass(className, PUBLIC); if (isRootNode) { - nodeMetaModelClass.addExtendedType(BASE_NODE_META_MODEL); + nodeMetaModelClass.addExtendedType(MetaModelGenerator.BASE_NODE_META_MODEL); } else { nodeMetaModelClass.addExtendedType(superNodeMetaModel); } @@ -79,16 +80,16 @@ public void generate(Class nodeClass, ClassOrInterfaceDeclaratio final ConstructorDeclaration classMMConstructor = nodeMetaModelClass .addConstructor() - .addParameter("Optional<" + BASE_NODE_META_MODEL + ">", "super" + BASE_NODE_META_MODEL); + .addParameter("Optional<" + MetaModelGenerator.BASE_NODE_META_MODEL + ">", "super" + MetaModelGenerator.BASE_NODE_META_MODEL); classMMConstructor .getBody() .addStatement(parseExplicitConstructorInvocationStmt(f("super(super%s, %s.class, \"%s\", \"%s\", %s, %s);", - BASE_NODE_META_MODEL, - nodeClass.getName(), - nodeClass.getSimpleName(), - nodeClass.getPackage().getName(), - typeAnalysis.isAbstract, - typeAnalysis.isSelfType))); + MetaModelGenerator.BASE_NODE_META_MODEL, + nodeClass.getName(), + nodeClass.getSimpleName(), + nodeClass.getPackage().getName(), + typeAnalysis.isAbstract, + typeAnalysis.isSelfType))); if (typeAnalysis.isAbstract) { classMetaModelJavaFile.addImport(Node.class); diff --git a/javaparser-core-serialization/pom.xml b/javaparser-core-serialization/pom.xml index a605672d03..c0ff8b0484 100644 --- a/javaparser-core-serialization/pom.xml +++ b/javaparser-core-serialization/pom.xml @@ -2,7 +2,7 @@ javaparser-parent com.github.javaparser - 3.15.8-SNAPSHOT + 3.15.19-SNAPSHOT 4.0.0 diff --git a/javaparser-core-serialization/src/main/java/com/github/javaparser/serialization/JavaParserJsonDeserializer.java b/javaparser-core-serialization/src/main/java/com/github/javaparser/serialization/JavaParserJsonDeserializer.java index b72e8c4981..ceeb6a297b 100644 --- a/javaparser-core-serialization/src/main/java/com/github/javaparser/serialization/JavaParserJsonDeserializer.java +++ b/javaparser-core-serialization/src/main/java/com/github/javaparser/serialization/JavaParserJsonDeserializer.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-serialization/src/main/java/com/github/javaparser/serialization/JavaParserJsonSerializer.java b/javaparser-core-serialization/src/main/java/com/github/javaparser/serialization/JavaParserJsonSerializer.java index 8ad84c8a18..ac6e38a740 100644 --- a/javaparser-core-serialization/src/main/java/com/github/javaparser/serialization/JavaParserJsonSerializer.java +++ b/javaparser-core-serialization/src/main/java/com/github/javaparser/serialization/JavaParserJsonSerializer.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core-testing-bdd/pom.xml b/javaparser-core-testing-bdd/pom.xml index de7e577c79..b11cf92c8b 100644 --- a/javaparser-core-testing-bdd/pom.xml +++ b/javaparser-core-testing-bdd/pom.xml @@ -2,7 +2,7 @@ javaparser-parent com.github.javaparser - 3.15.8-SNAPSHOT + 3.15.19-SNAPSHOT 4.0.0 @@ -94,7 +94,7 @@ org.jbehave jbehave-core - 4.5 + 4.6.2 test diff --git a/javaparser-core-testing-bdd/src/test/java/com/github/javaparser/steps/CommentParsingSteps.java b/javaparser-core-testing-bdd/src/test/java/com/github/javaparser/steps/CommentParsingSteps.java index 5db84cacdc..a0073a8cd3 100644 --- a/javaparser-core-testing-bdd/src/test/java/com/github/javaparser/steps/CommentParsingSteps.java +++ b/javaparser-core-testing-bdd/src/test/java/com/github/javaparser/steps/CommentParsingSteps.java @@ -50,7 +50,7 @@ import static com.github.javaparser.Range.range; import static com.github.javaparser.steps.SharedSteps.getMemberByTypeAndPosition; import static org.hamcrest.CoreMatchers.*; -import static org.hamcrest.text.IsEqualIgnoringWhiteSpace.equalToIgnoringWhiteSpace; +import static org.hamcrest.text.IsEqualCompressingWhiteSpace.equalToCompressingWhiteSpace; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.fail; @@ -135,14 +135,14 @@ public void thenLineCommentIs(int position, String expectedContent) { public void thenBlockCommentIs(int position, String expectedContent) { BlockComment lineCommentUnderTest = getCommentAt(commentsCollection.getBlockComments(), position - 1); - assertThat(lineCommentUnderTest.getContent(), is(equalToIgnoringWhiteSpace(expectedContent))); + assertThat(lineCommentUnderTest.getContent(), is(equalToCompressingWhiteSpace(expectedContent))); } @Then("Javadoc comment $position is \"$expectedContent\"") public void thenJavadocCommentIs(int position, String expectedContent) { JavadocComment commentUnderTest = getCommentAt(commentsCollection.getJavadocComments(), position - 1); - assertThat(commentUnderTest.getContent(), is(equalToIgnoringWhiteSpace(expectedContent))); + assertThat(commentUnderTest.getContent(), is(equalToCompressingWhiteSpace(expectedContent))); } @Then("the line comments have the following positions: $table") @@ -227,7 +227,7 @@ public void thenTheCompilationUnitHasExpectedCountOrphanComments(int expectedCou @Then("the compilation unit orphan comment $position is \"$expectedContent\"") public void thenTheCompilationUnitOrphanCommentIs(int position, String expectedContent) { Comment commentUnderTest = compilationUnit.getOrphanComments().get(position - 1); - assertThat(commentUnderTest.getContent(), is(equalToIgnoringWhiteSpace(expectedContent))); + assertThat(commentUnderTest.getContent(), is(equalToCompressingWhiteSpace(expectedContent))); } @Then("comment $commentPosition in compilation unit is not an orphan") @@ -245,7 +245,7 @@ public void thenCommentInCompilationUnitIsAnOrphan(int commentPosition) { @Then("comment $commentPosition in compilation unit is \"$expectedContent\"") public void thenCommentInCompilationUnitIs(int position, String expectedContent) { Comment commentUnderTest = compilationUnit.getAllContainedComments().get(position - 1); - assertThat(commentUnderTest.getContent(), is(equalToIgnoringWhiteSpace(expectedContent))); + assertThat(commentUnderTest.getContent(), is(equalToCompressingWhiteSpace(expectedContent))); } @Then("class $position is not commented") @@ -277,7 +277,7 @@ public void thenClassHasOrphanComments(int position, int expectedCount) { public void thenClassOrphanCommentIs(int classPosition, int commentPosition, String expectedContent) { TypeDeclaration classUnderTest = compilationUnit.getType(classPosition - 1); Comment commentUnderTest = classUnderTest.getOrphanComments().get(commentPosition - 1); - assertThat(commentUnderTest.getContent(), is(equalToIgnoringWhiteSpace(expectedContent))); + assertThat(commentUnderTest.getContent(), is(equalToCompressingWhiteSpace(expectedContent))); } @Then("method $methodPosition in class $classPosition is commented \"$expectedContent\"") @@ -285,7 +285,7 @@ public void thenMethodInClassIsCommented(int methodPosition, int classPosition, TypeDeclaration classUnderTest = compilationUnit.getType(classPosition - 1); MethodDeclaration methodUnderTest = getMemberByTypeAndPosition(classUnderTest, methodPosition - 1, MethodDeclaration.class); - assertThat(methodUnderTest.getComment().get().getContent(), equalToIgnoringWhiteSpace(expectedContent)); + assertThat(methodUnderTest.getComment().get().getContent(), equalToCompressingWhiteSpace(expectedContent)); } @Then("method $methodPosition in class $classPosition has $expectedCount total contained comments") @@ -302,7 +302,7 @@ public void thenCommentInMethodInClassIs(int commentPosition, int methodPosition MethodDeclaration methodUnderTest = getMemberByTypeAndPosition(classUnderTest, methodPosition - 1, MethodDeclaration.class); Comment commentUnderTest = methodUnderTest.getAllContainedComments().get(commentPosition - 1); - assertThat(commentUnderTest.getContent(), is(equalToIgnoringWhiteSpace(expectedContent))); + assertThat(commentUnderTest.getContent(), is(equalToCompressingWhiteSpace(expectedContent))); } @Then("method $methodPosition in class $classPosition has $expectedCount orphan comments") @@ -338,7 +338,7 @@ public void thenBlockStatementInMethodInClassIs(int methodPosition, int classPos MethodDeclaration.class); BlockStmt blockStmtUnderTest = methodUnderTest.getBody().orElse(null); Comment commentUnderTest = blockStmtUnderTest.getOrphanComments().get(commentPosition - 1); - assertThat(commentUnderTest.getContent(), is(equalToIgnoringWhiteSpace(expectedContent))); + assertThat(commentUnderTest.getContent(), is(equalToCompressingWhiteSpace(expectedContent))); } @Then("type of method $methodPosition in class $classPosition is commented \"$expectedContent\"") @@ -347,7 +347,7 @@ public void thenTypeOfMethodInClassIsCommented(int methodPosition, int classPosi MethodDeclaration methodUnderTest = getMemberByTypeAndPosition(classUnderTest, methodPosition - 1, MethodDeclaration.class); Comment commentUnderTest = methodUnderTest.getType().getComment().get(); - assertThat(commentUnderTest.getContent(), is(equalToIgnoringWhiteSpace(expectedContent))); + assertThat(commentUnderTest.getContent(), is(equalToCompressingWhiteSpace(expectedContent))); } @Then("field $fieldPosition in class $classPosition contains $expectedCount comments") @@ -372,7 +372,7 @@ public void thenFieldInClassIsCommented(int fieldPosition, int classPosition, St FieldDeclaration fieldUnderTest = getMemberByTypeAndPosition(classUnderTest, fieldPosition - 1, FieldDeclaration.class); Comment commentUnderTest = fieldUnderTest.getComment().get(); - assertThat(commentUnderTest.getContent(), is(equalToIgnoringWhiteSpace(expectedContent))); + assertThat(commentUnderTest.getContent(), is(equalToCompressingWhiteSpace(expectedContent))); } @Then("variable $variablePosition value of field $fieldPosition in class $classPosition is commented \"$expectedContent\"") diff --git a/javaparser-core-testing-bdd/src/test/java/com/github/javaparser/steps/SharedSteps.java b/javaparser-core-testing-bdd/src/test/java/com/github/javaparser/steps/SharedSteps.java index a909c8a34c..ad941f7320 100644 --- a/javaparser-core-testing-bdd/src/test/java/com/github/javaparser/steps/SharedSteps.java +++ b/javaparser-core-testing-bdd/src/test/java/com/github/javaparser/steps/SharedSteps.java @@ -40,7 +40,7 @@ import static org.hamcrest.core.Is.is; import static org.hamcrest.core.IsEqual.equalTo; import static org.hamcrest.core.IsNot.not; -import static org.hamcrest.text.IsEqualIgnoringWhiteSpace.equalToIgnoringWhiteSpace; +import static org.hamcrest.text.IsEqualCompressingWhiteSpace.equalToCompressingWhiteSpace; import static org.hamcrest.MatcherAssert.assertThat; public class SharedSteps { @@ -127,7 +127,7 @@ public void thenTheCompilationUnitHasADifferentHashcodeToTheSecondCompilationUni @Then("the expected source should be:$classSrc") public void thenTheExpectedSourcesShouldBe(String classSrc) { CompilationUnit compilationUnit = (CompilationUnit) state.get("cu1"); - assertThat(compilationUnit.toString(), CoreMatchers.is(equalToIgnoringWhiteSpace(classSrc))); + assertThat(compilationUnit.toString(), CoreMatchers.is(equalToCompressingWhiteSpace(classSrc))); } public static > T getMemberByTypeAndPosition(TypeDeclaration typeDeclaration, int position, Class typeClass) { diff --git a/javaparser-core-testing-bdd/src/test/resources/com/github/javaparser/comment_attribution_scenarios.story b/javaparser-core-testing-bdd/src/test/resources/com/github/javaparser/comment_attribution_scenarios.story index e509fc998d..a55d6af5fe 100644 --- a/javaparser-core-testing-bdd/src/test/resources/com/github/javaparser/comment_attribution_scenarios.story +++ b/javaparser-core-testing-bdd/src/test/resources/com/github/javaparser/comment_attribution_scenarios.story @@ -69,7 +69,7 @@ class /*Comment1*/ A { } When the class is parsed by the Java parser Then class 1 is not commented -Then class 1 orphan comment 1 is "Comment2" +Then class 1 orphan comment 1 is "comment2" Scenario: A Class With Line Comments in Multiple Methods is parsed by the Java Parser diff --git a/javaparser-core-testing-bdd/src/test/resources/com/github/javaparser/pretty_printing_scenarios.story b/javaparser-core-testing-bdd/src/test/resources/com/github/javaparser/pretty_printing_scenarios.story index a19f87731c..f17456a13f 100644 --- a/javaparser-core-testing-bdd/src/test/resources/com/github/javaparser/pretty_printing_scenarios.story +++ b/javaparser-core-testing-bdd/src/test/resources/com/github/javaparser/pretty_printing_scenarios.story @@ -193,14 +193,14 @@ package a.b.c; Scenario: we can parse blocks Given the block: { - a=2; - b=3; + a=2+1; + b=3+1; } When the block is parsed by the Java parser Then it is printed as: { - a = 2; - b = 3; + a = 2 + 1; + b = 3 + 1; } Scenario: we can parse statements diff --git a/javaparser-core-testing/pom.xml b/javaparser-core-testing/pom.xml index 1b3b1e1997..a28b88d8b7 100644 --- a/javaparser-core-testing/pom.xml +++ b/javaparser-core-testing/pom.xml @@ -2,7 +2,7 @@ javaparser-parent com.github.javaparser - 3.15.8-SNAPSHOT + 3.15.19-SNAPSHOT 4.0.0 @@ -94,13 +94,13 @@ org.assertj assertj-core - 3.11.1 + 3.15.0 test com.squareup.okhttp3 okhttp - 3.11.0 + 4.4.1 test diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/CommentsInserterTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/CommentsInserterTest.java index d6f8aaf3a7..f12b40e211 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/CommentsInserterTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/CommentsInserterTest.java @@ -23,12 +23,15 @@ import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.comments.CommentsCollection; +import com.github.javaparser.utils.TestParser; import org.junit.jupiter.api.Test; import java.io.IOException; + import static com.github.javaparser.StaticJavaParser.parse; import static com.github.javaparser.StaticJavaParser.parseResource; +import static com.github.javaparser.utils.TestUtils.assertEqualToTextResource; import static com.github.javaparser.utils.TestUtils.assertEqualsNoEol; import static com.github.javaparser.utils.Utils.EOL; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -38,9 +41,12 @@ private String makeFilename(String sampleName) { return "com/github/javaparser/issue_samples/" + sampleName + ".java.txt"; } + private String makeExpectedFilename(String sampleName) { + return "/com/github/javaparser/issue_samples/" + sampleName + ".java.expected.txt"; + } + private ParseResult parseSample(String sampleName) throws IOException { - Provider p = Providers.resourceProvider( - makeFilename(sampleName)); + Provider p = Providers.resourceProvider(makeFilename(sampleName)); return new JavaParser().parse(ParseStart.COMPILATION_UNIT, p); } @@ -49,21 +55,21 @@ private ParseResult parseSample(String sampleName) throws IOExc */ @Test void issue290() throws IOException { - ParseResult result = parseSample("Issue290"); - CommentsCollection cc = (CommentsCollection) result.getCommentsCollection().get(); + ParseResult result = this.parseSample("Issue290"); + CommentsCollection cc = result.getCommentsCollection().get(); assertEquals(1, cc.getLineComments().size()); assertEquals(1, cc.getJavadocComments().size()); } @Test void issue624() throws IOException { - parseResource(makeFilename("Issue624")); + this.parseSample("Issue624"); // Should not fail } @Test void issue200EnumConstantsWithCommentsForceVerticalAlignment() { - CompilationUnit cu = parse("public enum X {" + EOL + + CompilationUnit cu = TestParser.parseCompilationUnit("public enum X {" + EOL + " /** const1 javadoc */" + EOL + " BORDER_CONSTANT," + EOL + " /** const2 javadoc */" + EOL + @@ -84,7 +90,7 @@ void issue200EnumConstantsWithCommentsForceVerticalAlignment() { @Test void issue234LosingCommentsInArrayInitializerExpr() { - CompilationUnit cu = parse("@Anno(stuff={" + EOL + + CompilationUnit cu = TestParser.parseCompilationUnit("@Anno(stuff={" + EOL + " // Just," + EOL + " // an," + EOL + " // example" + EOL + @@ -101,4 +107,10 @@ void issue234LosingCommentsInArrayInitializerExpr() { "}\n", cu.toString()); } + + @Test + void issue412() throws IOException { + CompilationUnit cu = parseSample("Issue412").getResult().get(); + assertEqualToTextResource(makeExpectedFilename("Issue412"), cu.toString()); + } } diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/Issue2482Test.java b/javaparser-core-testing/src/test/java/com/github/javaparser/Issue2482Test.java new file mode 100644 index 0000000000..0782df8069 --- /dev/null +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/Issue2482Test.java @@ -0,0 +1,55 @@ +package com.github.javaparser; + +import com.github.javaparser.ast.expr.LambdaExpr; +import com.github.javaparser.ast.stmt.Statement; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * Tests related to https://github.com/javaparser/javaparser/issues/2482. + */ +public class Issue2482Test { + @Test + public void commentBeforeLambda() { + LambdaExpr le = StaticJavaParser.parseExpression( + "// a comment before parent" + System.lineSeparator() + + "()->{return 1;}"); + + assertTrue(le.getComment().isPresent()); + assertTrue(le.getOrphanComments().isEmpty()); + assertEquals(0, le.getAllContainedComments().size()); + } + + @Test + public void commentBeforeBlock() { + Statement st = StaticJavaParser.parseBlock( + "// a comment before parent" + System.lineSeparator() + + "{ if (file != null) {} }"); + assertTrue(st.getComment().isPresent()); + assertTrue(st.getOrphanComments().isEmpty()); + assertEquals(0, st.getAllContainedComments().size()); + } + + @Test + public void commentBeforeIfStatement() { + Statement st = StaticJavaParser.parseStatement( + "// a comment before parent" + System.lineSeparator() + + "if (file != null) {}"); + assertTrue(st.getComment().isPresent()); + assertTrue(st.getOrphanComments().isEmpty()); + assertEquals(0, st.getAllContainedComments().size()); + } + + @Test + public void commentBeforeAssignment() { + Statement st = StaticJavaParser.parseStatement( + "// a comment" + System.lineSeparator() + + "int x = 3;"); + + assertTrue(st.getComment().isPresent()); + assertTrue(st.getOrphanComments().isEmpty()); + assertEquals(0, st.getAllContainedComments().size()); + } +} diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/ListObservationTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/ListObservationTest.java new file mode 100644 index 0000000000..fcaf756675 --- /dev/null +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/ListObservationTest.java @@ -0,0 +1,230 @@ +package com.github.javaparser.ast; + +import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; +import com.github.javaparser.ast.body.FieldDeclaration; +import com.github.javaparser.ast.expr.SimpleName; +import com.github.javaparser.ast.observer.AstObserver; +import com.github.javaparser.ast.observer.ObservableProperty; +import com.github.javaparser.ast.type.PrimitiveType; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +import static com.github.javaparser.StaticJavaParser.parse; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +public class ListObservationTest { + + private FieldDeclaration createIntField(String name) { + return new FieldDeclaration(new NodeList<>(), PrimitiveType.intType(), name); + } + + private AstObserver createObserver(List changes) { + return new AstObserver() { + @Override + public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { + changes.add(String.format("change of property %s for %s: from '%s' to '%s'", property, observedNode, oldValue, newValue)); + } + + @Override + public void parentChange(Node observedNode, Node previousParent, Node newParent) { + changes.add(String.format("setting parent for %s: was %s, now is %s", observedNode, previousParent, newParent)); + } + + @Override + public void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { + changes.add(String.format("'%s' %s in list at %d", nodeAddedOrRemoved, type, index)); + } + + @Override + public void listReplacement(NodeList observedNode, int index, Node oldNode, Node newNode) { + changes.add(String.format("'%s' %s in list at %d", oldNode, ListChangeType.REMOVAL, index)); + changes.add(String.format("'%s' %s in list at %d", newNode, ListChangeType.ADDITION, index)); + } + }; + } + @Test + void addAllWithoutIndex() { + List changes = new LinkedList<>(); + String code = "class A { void foo(int p) { }}"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().addAll(Arrays.asList(createIntField("a"), createIntField("b"), createIntField("c"))); + assertEquals(Arrays.asList("'int a;' ADDITION in list at 1", + "'int b;' ADDITION in list at 2", + "'int c;' ADDITION in list at 3"), changes); + } + + @Test + void addAllWithIndex() { + List changes = new LinkedList<>(); + String code = "class A { void foo(int p) { }}"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().addAll(0, Arrays.asList(createIntField("a"), createIntField("b"), createIntField("c"))); + assertEquals(Arrays.asList("'int a;' ADDITION in list at 0", + "'int b;' ADDITION in list at 1", + "'int c;' ADDITION in list at 2"), changes); + } + + @Test + void clear() { + List changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; }"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().clear(); + assertEquals(Arrays.asList("'int a;' REMOVAL in list at 0", + "'int b;' REMOVAL in list at 0", + "'int c;' REMOVAL in list at 0"), changes); + } + + @Test + void set() { + List changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; }"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().set(1, createIntField("d")); + assertEquals(Arrays.asList("'int b;' REMOVAL in list at 1", + "'int d;' ADDITION in list at 1"), changes); + } + + @Test + void removeNode() { + List changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; int d; int e; }"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().remove(cd.getFieldByName("c").get()); + assertThat(changes).containsExactlyInAnyOrder("'int c;' REMOVAL in list at 2"); + } + + @Test + void removeFirstNode() { + List changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; int d; int e; }"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().removeFirst(); + assertThat(changes).containsExactlyInAnyOrder("'int a;' REMOVAL in list at 0"); + assertEquals(cd.getMembers().size(), 4); + + for (int i = 3; i >= 0; i--) { + assertNotNull(cd.getMembers().removeFirst()); + assertEquals(cd.getMembers().size(), i); + } + + assertEquals(cd.getMembers().size(), 0); + } + + @Test + void removeLastNode() { + List changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; int d; int e; }"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().removeLast(); + assertThat(changes).containsExactlyInAnyOrder("'int e;' REMOVAL in list at 4"); + assertEquals(cd.getMembers().size(), 4); + + for (int i = 3; i >= 0; i--) { + assertNotNull(cd.getMembers().removeLast()); + assertEquals(cd.getMembers().size(), i); + } + + assertEquals(cd.getMembers().size(), 0); + } + + @Test + void removeObject() { + List changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; int d; int e; }"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().remove("hi"); + assertThat(changes).isEmpty(); + } + + @Test + void removeAll() { + List changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; int d; int e; }"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().removeAll(Arrays.asList(cd.getFieldByName("b").get(), "foo", cd.getFieldByName("d").get())); + assertThat(changes).containsExactlyInAnyOrder( + "'int b;' REMOVAL in list at 1", + "'int d;' REMOVAL in list at 2"); + } + + @Test + void retainAll() { + List changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; int d; int e; }"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().retainAll(Arrays.asList(cd.getFieldByName("b").get(), "foo", cd.getFieldByName("d").get())); + assertThat(changes).containsExactlyInAnyOrder( + "'int a;' REMOVAL in list at 0", + "'int c;' REMOVAL in list at 1", + "'int e;' REMOVAL in list at 2"); + } + + @Test + void replaceAll() { + List changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; }"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().replaceAll(bodyDeclaration -> { + FieldDeclaration clone = (FieldDeclaration) bodyDeclaration.clone(); + SimpleName id = clone.getVariable(0).getName(); + id.setIdentifier(id.getIdentifier().toUpperCase()); + return clone; + }); + assertThat(changes).containsExactlyInAnyOrder( + "'int a;' REMOVAL in list at 0", "'int A;' ADDITION in list at 0", + "'int b;' REMOVAL in list at 1", "'int B;' ADDITION in list at 1", + "'int c;' REMOVAL in list at 2", "'int C;' ADDITION in list at 2"); + } + + @Test + void removeIf() { + List changes = new LinkedList<>(); + String code = "class A { int a; int longName; int c; }"; + CompilationUnit cu = parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().removeIf(m -> ((FieldDeclaration) m).getVariable(0).getName().getIdentifier().length() > 3); + assertThat(changes).containsExactlyInAnyOrder("'int longName;' REMOVAL in list at 1"); + } + +} diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/NodeListTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/NodeListTest.java index f4cc383088..a28c3970a4 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/NodeListTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/NodeListTest.java @@ -21,231 +21,16 @@ package com.github.javaparser.ast; -import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; -import com.github.javaparser.ast.body.FieldDeclaration; import com.github.javaparser.ast.expr.Name; -import com.github.javaparser.ast.expr.SimpleName; -import com.github.javaparser.ast.observer.AstObserver; -import com.github.javaparser.ast.observer.ObservableProperty; -import com.github.javaparser.ast.type.PrimitiveType; import org.junit.jupiter.api.Test; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; +import java.util.Optional; -import static com.github.javaparser.StaticJavaParser.parse; import static com.github.javaparser.ast.NodeList.nodeList; import static org.junit.jupiter.api.Assertions.*; class NodeListTest { - private AstObserver createObserver(List changes) { - return new AstObserver() { - @Override - public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { - changes.add(String.format("change of property %s for %s: from '%s' to '%s'", property, observedNode, oldValue, newValue)); - } - - @Override - public void parentChange(Node observedNode, Node previousParent, Node newParent) { - changes.add(String.format("setting parent for %s: was %s, now is %s", observedNode, previousParent, newParent)); - } - - @Override - public void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { - changes.add(String.format("'%s' %s in list at %d", nodeAddedOrRemoved, type, index)); - } - - @Override - public void listReplacement(NodeList observedNode, int index, Node oldNode, Node newNode) { - changes.add(String.format("'%s' %s in list at %d", oldNode, ListChangeType.REMOVAL, index)); - changes.add(String.format("'%s' %s in list at %d", newNode, ListChangeType.ADDITION, index)); - } - }; - } - - private FieldDeclaration createIntField(String name) { - return new FieldDeclaration(new NodeList<>(), PrimitiveType.intType(), name); - } - - @Test - void addAllWithoutIndex() { - List changes = new LinkedList<>(); - String code = "class A { void foo(int p) { }}"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().addAll(Arrays.asList(createIntField("a"), createIntField("b"), createIntField("c"))); - assertEquals(Arrays.asList("'int a;' ADDITION in list at 1", - "'int b;' ADDITION in list at 2", - "'int c;' ADDITION in list at 3"), changes); - } - - @Test - void addAllWithIndex() { - List changes = new LinkedList<>(); - String code = "class A { void foo(int p) { }}"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().addAll(0, Arrays.asList(createIntField("a"), createIntField("b"), createIntField("c"))); - assertEquals(Arrays.asList("'int a;' ADDITION in list at 0", - "'int b;' ADDITION in list at 1", - "'int c;' ADDITION in list at 2"), changes); - } - - @Test - void clear() { - List changes = new LinkedList<>(); - String code = "class A { int a; int b; int c; }"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().clear(); - assertEquals(Arrays.asList("'int a;' REMOVAL in list at 0", - "'int b;' REMOVAL in list at 0", - "'int c;' REMOVAL in list at 0"), changes); - } - - @Test - void set() { - List changes = new LinkedList<>(); - String code = "class A { int a; int b; int c; }"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().set(1, createIntField("d")); - assertEquals(Arrays.asList("'int b;' REMOVAL in list at 1", - "'int d;' ADDITION in list at 1"), changes); - } - - @Test - void removeNode() { - List changes = new LinkedList<>(); - String code = "class A { int a; int b; int c; int d; int e; }"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().remove(cd.getFieldByName("c").get()); - assertEquals(Arrays.asList("'int c;' REMOVAL in list at 2"), changes); - } - - @Test - void removeFirstNode() { - List changes = new LinkedList<>(); - String code = "class A { int a; int b; int c; int d; int e; }"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().removeFirst(); - assertEquals(Arrays.asList("'int a;' REMOVAL in list at 0"), changes); - assertEquals(cd.getMembers().size(), 4); - - for (int i = 3; i >= 0; i--) { - assertNotNull(cd.getMembers().removeFirst()); - assertEquals(cd.getMembers().size(), i); - } - - assertEquals(cd.getMembers().size(), 0); - } - - @Test - void removeLastNode() { - List changes = new LinkedList<>(); - String code = "class A { int a; int b; int c; int d; int e; }"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().removeLast(); - assertEquals(Arrays.asList("'int e;' REMOVAL in list at 4"), changes); - assertEquals(cd.getMembers().size(), 4); - - for (int i = 3; i >= 0; i--) { - assertNotNull(cd.getMembers().removeLast()); - assertEquals(cd.getMembers().size(), i); - } - - assertEquals(cd.getMembers().size(), 0); - } - - @Test - void removeObject() { - List changes = new LinkedList<>(); - String code = "class A { int a; int b; int c; int d; int e; }"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().remove("hi"); - assertEquals(Arrays.asList(), changes); - } - - @Test - void removeAll() { - List changes = new LinkedList<>(); - String code = "class A { int a; int b; int c; int d; int e; }"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().removeAll(Arrays.asList(cd.getFieldByName("b").get(), "foo", cd.getFieldByName("d").get())); - assertEquals(Arrays.asList("'int b;' REMOVAL in list at 1", - "'int d;' REMOVAL in list at 2"), changes); - } - - @Test - void retainAll() { - List changes = new LinkedList<>(); - String code = "class A { int a; int b; int c; int d; int e; }"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().retainAll(Arrays.asList(cd.getFieldByName("b").get(), "foo", cd.getFieldByName("d").get())); - assertEquals(Arrays.asList("'int a;' REMOVAL in list at 0", - "'int c;' REMOVAL in list at 1", - "'int e;' REMOVAL in list at 2"), changes); - } - - @Test - void replaceAll() { - List changes = new LinkedList<>(); - String code = "class A { int a; int b; int c; }"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().replaceAll(bodyDeclaration -> { - FieldDeclaration clone = (FieldDeclaration) bodyDeclaration.clone(); - SimpleName id = clone.getVariable(0).getName(); - id.setIdentifier(id.getIdentifier().toUpperCase()); - return clone; - }); - assertEquals(Arrays.asList("'int a;' REMOVAL in list at 0", "'int A;' ADDITION in list at 0", - "'int b;' REMOVAL in list at 1", "'int B;' ADDITION in list at 1", - "'int c;' REMOVAL in list at 2", "'int C;' ADDITION in list at 2"), changes); - } - - @Test - void removeIf() { - List changes = new LinkedList<>(); - String code = "class A { int a; int longName; int c; }"; - CompilationUnit cu = parse(code); - ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); - cd.getMembers().register(createObserver(changes)); - - cd.getMembers().removeIf(m -> ((FieldDeclaration) m).getVariable(0).getName().getIdentifier().length() > 3); - assertEquals(Arrays.asList("'int longName;' REMOVAL in list at 1"), changes); - } - @Test void replace() { final NodeList list = nodeList(new Name("a"), new Name("b"), new Name("c")); @@ -263,6 +48,7 @@ void replace() { void toStringTest() { final NodeList list = nodeList(new Name("abc"), new Name("bcd"), new Name("cde")); + assertEquals(3, list.size()); assertEquals("[abc, bcd, cde]", list.toString()); } @@ -272,6 +58,7 @@ void addFirst() { list.addFirst(new Name("xxx")); + assertEquals(4, list.size()); assertEquals("[xxx, abc, bcd, cde]", list.toString()); } @@ -281,6 +68,7 @@ void addLast() { list.addLast(new Name("xxx")); + assertEquals(4, list.size()); assertEquals("[abc, bcd, cde, xxx]", list.toString()); } @@ -291,6 +79,7 @@ void addBefore() { list.addBefore(new Name("xxx"), n); + assertEquals(4, list.size()); assertEquals("[abc, xxx, bcd, cde]", list.toString()); } @@ -301,6 +90,7 @@ void addAfter() { list.addAfter(new Name("xxx"), n); + assertEquals(4, list.size()); assertEquals("[abc, bcd, xxx, cde]", list.toString()); } @@ -311,6 +101,7 @@ void addBeforeFirst() { list.addBefore(new Name("xxx"), abc); + assertEquals(4, list.size()); assertEquals("[xxx, abc, bcd, cde]", list.toString()); } @@ -321,6 +112,47 @@ void addAfterLast() { list.addAfter(new Name("xxx"), cde); + assertEquals(4, list.size()); assertEquals("[abc, bcd, cde, xxx]", list.toString()); } + + + @Test + public void getFirstWhenEmpty() { + final NodeList list = nodeList(); + + Optional first = list.getFirst(); + + assertFalse(first.isPresent()); + assertEquals("Optional.empty", first.toString()); + } + + @Test + public void getFirstWhenNonEmpty() { + final NodeList list = nodeList(new Name("abc"), new Name("bcd"), new Name("cde")); + + Optional first = list.getFirst(); + + assertTrue(first.isPresent()); + assertEquals("Optional[abc]", first.toString()); + } + @Test + public void getLastWhenEmpty() { + final NodeList list = nodeList(); + + Optional last = list.getLast(); + + assertFalse(last.isPresent()); + assertEquals("Optional.empty", last.toString()); + } + + @Test + public void getLastWhenNonEmpty() { + final NodeList list = nodeList(new Name("abc"), new Name("bcd"), new Name("cde")); + + Optional last = list.getLast(); + + assertTrue(last.isPresent()); + assertEquals("Optional[cde]", last.toString()); + } } diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/NodeTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/NodeTest.java index feb0fabfe0..e8701eb9a0 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/NodeTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/NodeTest.java @@ -45,203 +45,10 @@ import static com.github.javaparser.StaticJavaParser.parse; import static com.github.javaparser.StaticJavaParser.parseExpression; import static com.github.javaparser.utils.Utils.EOL; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.*; class NodeTest { - - @Test - void registerSubTree() { - String code = "class A { int f; void foo(int p) { return 'z'; }}"; - CompilationUnit cu = parse(code); - List changes = new ArrayList<>(); - AstObserver observer = new AstObserverAdapter() { - @Override - public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { - changes.add(String.format("%s.%s changed from %s to %s", observedNode.getClass().getSimpleName(), property.name().toLowerCase(), oldValue, newValue)); - } - }; - cu.registerForSubtree(observer); - - assertEquals(Arrays.asList(), changes); - - cu.getClassByName("A").get().setName("MyCoolClass"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"), changes); - - cu.getClassByName("MyCoolClass").get().getFieldByName("f").get().getVariable(0).setType(new PrimitiveType(PrimitiveType.Primitive.BOOLEAN)); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", - "FieldDeclaration.maximum_common_type changed from int to boolean", - "VariableDeclarator.type changed from int to boolean"), changes); - - cu.getClassByName("MyCoolClass").get().getMethodsByName("foo").get(0).getParameterByName("p").get().setName("myParam"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", - "FieldDeclaration.maximum_common_type changed from int to boolean", - "VariableDeclarator.type changed from int to boolean", - "Parameter.name changed from p to myParam"), changes); - } - - @Test - void registerWithJustNodeMode() { - String code = "class A { int f; void foo(int p) { return 'z'; }}"; - CompilationUnit cu = parse(code); - List changes = new ArrayList<>(); - AstObserver observer = new AstObserverAdapter() { - @Override - public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { - changes.add(String.format("%s.%s changed from %s to %s", observedNode.getClass().getSimpleName(), property.name().toLowerCase(), oldValue, newValue)); - } - }; - cu.getClassByName("A").get().register(observer, Node.ObserverRegistrationMode.JUST_THIS_NODE); - - assertEquals(Arrays.asList(), changes); - - cu.getClassByName("A").get().setName("MyCoolClass"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"), changes); - - cu.getClassByName("MyCoolClass").get().getFieldByName("f").get().getVariable(0).setType(new PrimitiveType(PrimitiveType.Primitive.BOOLEAN)); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"), changes); - - cu.getClassByName("MyCoolClass").get().getMethodsByName("foo").get(0).getParameterByName("p").get().setName("myParam"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"), changes); - - cu.getClassByName("MyCoolClass").get().addField("int", "bar").getVariables().get(0).setInitializer("0"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"), changes); - } - - @Test - void registerWithNodeAndExistingDescendantsMode() { - String code = "class A { int f; void foo(int p) { return 'z'; }}"; - CompilationUnit cu = parse(code); - List changes = new ArrayList<>(); - AstObserver observer = new AstObserverAdapter() { - @Override - public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { - changes.add(String.format("%s.%s changed from %s to %s", observedNode.getClass().getSimpleName(), property.name().toLowerCase(), oldValue, newValue)); - } - }; - cu.getClassByName("A").get().register(observer, Node.ObserverRegistrationMode.THIS_NODE_AND_EXISTING_DESCENDANTS); - - assertEquals(Arrays.asList(), changes); - - cu.getClassByName("A").get().setName("MyCoolClass"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"), changes); - - cu.getClassByName("MyCoolClass").get().getFieldByName("f").get().getVariable(0).setType(new PrimitiveType(PrimitiveType.Primitive.BOOLEAN)); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", - "FieldDeclaration.maximum_common_type changed from int to boolean", - "VariableDeclarator.type changed from int to boolean"), changes); - - cu.getClassByName("MyCoolClass").get().getMethodsByName("foo").get(0).getParameterByName("p").get().setName("myParam"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", - "FieldDeclaration.maximum_common_type changed from int to boolean", - "VariableDeclarator.type changed from int to boolean", - "Parameter.name changed from p to myParam"), changes); - - cu.getClassByName("MyCoolClass").get().addField("int", "bar").getVariables().get(0).setInitializer("0"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", - "FieldDeclaration.maximum_common_type changed from int to boolean", - "VariableDeclarator.type changed from int to boolean", - "Parameter.name changed from p to myParam"), changes); - } - - @Test - void registerWithSelfPropagatingMode() { - String code = "class A { int f; void foo(int p) { return 'z'; }}"; - CompilationUnit cu = parse(code); - List changes = new ArrayList<>(); - AstObserver observer = new AstObserverAdapter() { - @Override - public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { - changes.add(String.format("%s.%s changed from %s to %s", observedNode.getClass().getSimpleName(), property.name().toLowerCase(), oldValue, newValue)); - } - }; - cu.getClassByName("A").get().register(observer, Node.ObserverRegistrationMode.SELF_PROPAGATING); - - assertEquals(Arrays.asList(), changes); - - cu.getClassByName("A").get().setName("MyCoolClass"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"), changes); - - cu.getClassByName("MyCoolClass").get().getFieldByName("f").get().getVariable(0).setType(new PrimitiveType(PrimitiveType.Primitive.BOOLEAN)); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", - "FieldDeclaration.maximum_common_type changed from int to boolean", - "VariableDeclarator.type changed from int to boolean"), changes); - - cu.getClassByName("MyCoolClass").get().getMethodsByName("foo").get(0).getParameterByName("p").get().setName("myParam"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", - "FieldDeclaration.maximum_common_type changed from int to boolean", - "VariableDeclarator.type changed from int to boolean", - "Parameter.name changed from p to myParam"), changes); - - cu.getClassByName("MyCoolClass").get() - .addField("int", "bar") - .getVariables().get(0).setInitializer("0"); - assertEquals(Arrays.asList("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", - "FieldDeclaration.maximum_common_type changed from int to boolean", - "VariableDeclarator.type changed from int to boolean", - "Parameter.name changed from p to myParam", - "VariableDeclarator.initializer changed from null to 0"), changes); - } - - @Test - void deleteAParameterTriggerNotifications() { - String code = "class A { void foo(int p) { }}"; - CompilationUnit cu = parse(code); - List changes = new ArrayList<>(); - AstObserver observer = new AstObserverAdapter() { - - @Override - public void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { - changes.add("removing [" + nodeAddedOrRemoved + "] from index " + index); - } - }; - cu.register(observer, Node.ObserverRegistrationMode.SELF_PROPAGATING); - - cu.getClassByName("A").get().getMethodsByName("foo").get(0).getParameter(0).remove(); - assertEquals(Arrays.asList("removing [int p] from index 0"), changes); - } - - @Test - void deleteClassNameDoesNotTriggerNotifications() { - String code = "class A { void foo(int p) { }}"; - CompilationUnit cu = parse(code); - List changes = new ArrayList<>(); - AstObserver observer = new AstObserverAdapter() { - - @Override - public void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { - changes.add("removing [" + nodeAddedOrRemoved + "] from index " + index); - } - }; - cu.register(observer, Node.ObserverRegistrationMode.SELF_PROPAGATING); - - // I cannot remove the name of a type - assertFalse(cu.getClassByName("A").get().getName().remove()); - assertEquals(Arrays.asList(), changes); - } - - @Test - void deleteMethodBodyDoesTriggerNotifications() { - String code = "class A { void foo(int p) { }}"; - CompilationUnit cu = parse(code); - List changes = new ArrayList<>(); - AstObserver observer = new AstObserverAdapter() { - - @Override - public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { - changes.add("setting [" + property + "] to " + newValue); - } - - @Override - public void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { - changes.add("removing [" + nodeAddedOrRemoved + "] from index " + index); - } - }; - cu.register(observer, Node.ObserverRegistrationMode.SELF_PROPAGATING); - - assertTrue(cu.getClassByName("A").get().getMethodsByName("foo").get(0).getBody().get().remove()); - assertEquals(Arrays.asList("setting [BODY] to null"), changes); - } - @Test void removeOrphanCommentPositiveCase() { ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), false, "A"); @@ -269,39 +76,34 @@ void removeOrphanCommentNegativeCase() { @Test void hasJavaDocCommentPositiveCaseWithSetJavaDocComment() { - ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), - false, "Foo"); + ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), false, "Foo"); decl.setJavadocComment("A comment"); assertTrue(decl.hasJavaDocComment()); } @Test void hasJavaDocCommentPositiveCaseWithSetComment() { - ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), - false, "Foo"); + ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), false, "Foo"); decl.setComment(new JavadocComment("A comment")); assertTrue(decl.hasJavaDocComment()); } @Test void hasJavaDocCommentNegativeCaseNoComment() { - ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), - false, "Foo"); + ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), false, "Foo"); assertFalse(decl.hasJavaDocComment()); } @Test void hasJavaDocCommentNegativeCaseLineComment() { - ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), - false, "Foo"); + ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), false, "Foo"); decl.setComment(new LineComment("foo")); assertFalse(decl.hasJavaDocComment()); } @Test void hasJavaDocCommentNegativeCaseBlockComment() { - ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), - false, "Foo"); + ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(new NodeList<>(), false, "Foo"); decl.setComment(new BlockComment("foo")); assertFalse(decl.hasJavaDocComment()); } @@ -361,86 +163,4 @@ void removingTheSecondOfAListOfIdenticalStatementsDoesNotMessUpTheParents() { // This will throw an exception if the parents are bad. unit.toString(); } - - @Test - void findCompilationUnit() { - CompilationUnit cu = parse("class X{int x;}"); - VariableDeclarator x = cu.getClassByName("X").get().getMember(0).asFieldDeclaration().getVariables().get(0); - assertEquals(cu, x.findCompilationUnit().get()); - } - - @Test - void findParent() { - CompilationUnit cu = parse("class X{int x;}"); - SimpleName x = cu.getClassByName("X").get().getMember(0).asFieldDeclaration().getVariables().get(0).getName(); - assertEquals("int x;", x.findAncestor(FieldDeclaration.class).get().toString()); - } - - @Test - void cantFindCompilationUnit() { - VariableDeclarator x = new VariableDeclarator(); - assertFalse(x.findCompilationUnit().isPresent()); - } - - @Test - void genericWalk() { - Expression e = parseExpression("1+1"); - StringBuilder b = new StringBuilder(); - e.walk(n -> b.append(n.toString())); - assertEquals("1 + 111", b.toString()); - } - - @Test - void classSpecificWalk() { - Expression e = parseExpression("1+1"); - StringBuilder b = new StringBuilder(); - e.walk(IntegerLiteralExpr.class, n -> b.append(n.toString())); - assertEquals("11", b.toString()); - } - - @Test - void conditionalFindAll() { - Expression e = parseExpression("1+2+3"); - List ints = e.findAll(IntegerLiteralExpr.class, n -> n.asInt() > 1); - assertEquals("[2, 3]", ints.toString()); - } - - @Test - void typeOnlyFindAll() { - Expression e = parseExpression("1+2+3"); - List ints = e.findAll(IntegerLiteralExpr.class); - assertEquals("[1, 2, 3]", ints.toString()); - } - - @Test - void typeOnlyFindAllMatchesSubclasses() { - Expression e = parseExpression("1+2+3"); - List ints = e.findAll(Node.class); - assertEquals("[1 + 2 + 3, 1 + 2, 1, 2, 3]", ints.toString()); - } - - @Test - void conditionalTypedFindFirst() { - Expression e = parseExpression("1+2+3"); - Optional ints = e.findFirst(IntegerLiteralExpr.class, n -> n.asInt() > 1); - assertEquals("Optional[2]", ints.toString()); - } - - @Test - void typeOnlyFindFirst() { - Expression e = parseExpression("1+2+3"); - Optional ints = e.findFirst(IntegerLiteralExpr.class); - assertEquals("Optional[1]", ints.toString()); - } - - @Test - void stream() { - Expression e = parseExpression("1+2+3"); - List ints = e.stream() - .filter(n -> n instanceof IntegerLiteralExpr) - .map(IntegerLiteralExpr.class::cast) - .filter(i -> i.asInt() > 1) - .collect(Collectors.toList()); - assertEquals("[2, 3]", ints.toString()); - } } diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/ObservationTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/ObservationTest.java new file mode 100644 index 0000000000..bd65a2f896 --- /dev/null +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/ObservationTest.java @@ -0,0 +1,212 @@ +package com.github.javaparser.ast; + +import com.github.javaparser.ast.observer.AstObserver; +import com.github.javaparser.ast.observer.AstObserverAdapter; +import com.github.javaparser.ast.observer.ObservableProperty; +import com.github.javaparser.ast.type.PrimitiveType; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static com.github.javaparser.StaticJavaParser.parse; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class ObservationTest { + + @Test + void registerSubTree() { + String code = "class A { int f; void foo(int p) { return 'z'; }}"; + CompilationUnit cu = parse(code); + List changes = new ArrayList<>(); + AstObserver observer = new AstObserverAdapter() { + @Override + public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { + changes.add(String.format("%s.%s changed from %s to %s", observedNode.getClass().getSimpleName(), property.name().toLowerCase(), oldValue, newValue)); + } + }; + cu.registerForSubtree(observer); + + assertThat(changes).isEmpty(); + + cu.getClassByName("A").get().setName("MyCoolClass"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"); + + cu.getClassByName("MyCoolClass").get().getFieldByName("f").get().getVariable(0).setType(new PrimitiveType(PrimitiveType.Primitive.BOOLEAN)); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", + "FieldDeclaration.maximum_common_type changed from int to boolean", + "VariableDeclarator.type changed from int to boolean"); + + cu.getClassByName("MyCoolClass").get().getMethodsByName("foo").get(0).getParameterByName("p").get().setName("myParam"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", + "FieldDeclaration.maximum_common_type changed from int to boolean", + "VariableDeclarator.type changed from int to boolean", + "Parameter.name changed from p to myParam"); + } + + @Test + void registerWithJustNodeMode() { + String code = "class A { int f; void foo(int p) { return 'z'; }}"; + CompilationUnit cu = parse(code); + List changes = new ArrayList<>(); + AstObserver observer = new AstObserverAdapter() { + @Override + public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { + changes.add(String.format("%s.%s changed from %s to %s", observedNode.getClass().getSimpleName(), property.name().toLowerCase(), oldValue, newValue)); + } + }; + cu.getClassByName("A").get().register(observer, Node.ObserverRegistrationMode.JUST_THIS_NODE); + + assertThat(changes).isEmpty(); + + cu.getClassByName("A").get().setName("MyCoolClass"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"); + + cu.getClassByName("MyCoolClass").get().getFieldByName("f").get().getVariable(0).setType(new PrimitiveType(PrimitiveType.Primitive.BOOLEAN)); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"); + + cu.getClassByName("MyCoolClass").get().getMethodsByName("foo").get(0).getParameterByName("p").get().setName("myParam"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"); + + cu.getClassByName("MyCoolClass").get().addField("int", "bar").getVariables().get(0).setInitializer("0"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"); + } + + @Test + void registerWithNodeAndExistingDescendantsMode() { + String code = "class A { int f; void foo(int p) { return 'z'; }}"; + CompilationUnit cu = parse(code); + List changes = new ArrayList<>(); + AstObserver observer = new AstObserverAdapter() { + @Override + public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { + changes.add(String.format("%s.%s changed from %s to %s", observedNode.getClass().getSimpleName(), property.name().toLowerCase(), oldValue, newValue)); + } + }; + cu.getClassByName("A").get().register(observer, Node.ObserverRegistrationMode.THIS_NODE_AND_EXISTING_DESCENDANTS); + + assertThat(changes).isEmpty(); + + cu.getClassByName("A").get().setName("MyCoolClass"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"); + + cu.getClassByName("MyCoolClass").get().getFieldByName("f").get().getVariable(0).setType(new PrimitiveType(PrimitiveType.Primitive.BOOLEAN)); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", + "FieldDeclaration.maximum_common_type changed from int to boolean", + "VariableDeclarator.type changed from int to boolean"); + + cu.getClassByName("MyCoolClass").get().getMethodsByName("foo").get(0).getParameterByName("p").get().setName("myParam"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", + "FieldDeclaration.maximum_common_type changed from int to boolean", + "VariableDeclarator.type changed from int to boolean", + "Parameter.name changed from p to myParam"); + + cu.getClassByName("MyCoolClass").get().addField("int", "bar").getVariables().get(0).setInitializer("0"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", + "FieldDeclaration.maximum_common_type changed from int to boolean", + "VariableDeclarator.type changed from int to boolean", + "Parameter.name changed from p to myParam"); + } + + @Test + void registerWithSelfPropagatingMode() { + String code = "class A { int f; void foo(int p) { return 'z'; }}"; + CompilationUnit cu = parse(code); + List changes = new ArrayList<>(); + AstObserver observer = new AstObserverAdapter() { + @Override + public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { + changes.add(String.format("%s.%s changed from %s to %s", observedNode.getClass().getSimpleName(), property.name().toLowerCase(), oldValue, newValue)); + } + }; + cu.getClassByName("A").get().register(observer, Node.ObserverRegistrationMode.SELF_PROPAGATING); + + assertThat(changes).isEmpty(); + + cu.getClassByName("A").get().setName("MyCoolClass"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass"); + + cu.getClassByName("MyCoolClass").get().getFieldByName("f").get().getVariable(0).setType(new PrimitiveType(PrimitiveType.Primitive.BOOLEAN)); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", + "FieldDeclaration.maximum_common_type changed from int to boolean", + "VariableDeclarator.type changed from int to boolean"); + + cu.getClassByName("MyCoolClass").get().getMethodsByName("foo").get(0).getParameterByName("p").get().setName("myParam"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", + "FieldDeclaration.maximum_common_type changed from int to boolean", + "VariableDeclarator.type changed from int to boolean", + "Parameter.name changed from p to myParam"); + + cu.getClassByName("MyCoolClass").get() + .addField("int", "bar") + .getVariables().get(0).setInitializer("0"); + assertThat(changes).containsExactlyInAnyOrder("ClassOrInterfaceDeclaration.name changed from A to MyCoolClass", + "FieldDeclaration.maximum_common_type changed from int to boolean", + "VariableDeclarator.type changed from int to boolean", + "Parameter.name changed from p to myParam", + "VariableDeclarator.initializer changed from null to 0"); + } + + @Test + void deleteAParameterTriggerNotifications() { + String code = "class A { void foo(int p) { }}"; + CompilationUnit cu = parse(code); + List changes = new ArrayList<>(); + AstObserver observer = new AstObserverAdapter() { + + @Override + public void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { + changes.add("removing [" + nodeAddedOrRemoved + "] from index " + index); + } + }; + cu.register(observer, Node.ObserverRegistrationMode.SELF_PROPAGATING); + + cu.getClassByName("A").get().getMethodsByName("foo").get(0).getParameter(0).remove(); + assertThat(changes).containsExactlyInAnyOrder("removing [int p] from index 0"); + } + + @Test + void deleteClassNameDoesNotTriggerNotifications() { + String code = "class A { void foo(int p) { }}"; + CompilationUnit cu = parse(code); + List changes = new ArrayList<>(); + AstObserver observer = new AstObserverAdapter() { + + @Override + public void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { + changes.add("removing [" + nodeAddedOrRemoved + "] from index " + index); + } + }; + cu.register(observer, Node.ObserverRegistrationMode.SELF_PROPAGATING); + + // I cannot remove the name of a type + assertFalse(cu.getClassByName("A").get().getName().remove()); + assertThat(changes).isEmpty(); + } + + @Test + void deleteMethodBodyDoesTriggerNotifications() { + String code = "class A { void foo(int p) { }}"; + CompilationUnit cu = parse(code); + List changes = new ArrayList<>(); + AstObserver observer = new AstObserverAdapter() { + + @Override + public void propertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { + changes.add("setting [" + property + "] to " + newValue); + } + + @Override + public void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { + changes.add("removing [" + nodeAddedOrRemoved + "] from index " + index); + } + }; + cu.register(observer, Node.ObserverRegistrationMode.SELF_PROPAGATING); + + assertTrue(cu.getClassByName("A").get().getMethodsByName("foo").get(0).getBody().get().remove()); + assertThat(changes).containsExactlyInAnyOrder("setting [BODY] to null"); + } + +} diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/WalkFindTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/WalkFindTest.java new file mode 100644 index 0000000000..8e21f12574 --- /dev/null +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/WalkFindTest.java @@ -0,0 +1,102 @@ +package com.github.javaparser.ast; + +import com.github.javaparser.ast.body.FieldDeclaration; +import com.github.javaparser.ast.body.VariableDeclarator; +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.expr.IntegerLiteralExpr; +import com.github.javaparser.ast.expr.SimpleName; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import static com.github.javaparser.StaticJavaParser.parse; +import static com.github.javaparser.StaticJavaParser.parseExpression; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; + +public class WalkFindTest { + @Test + void findCompilationUnit() { + CompilationUnit cu = parse("class X{int x;}"); + VariableDeclarator x = cu.getClassByName("X").get().getMember(0).asFieldDeclaration().getVariables().get(0); + assertEquals(cu, x.findCompilationUnit().get()); + } + + @Test + void findParent() { + CompilationUnit cu = parse("class X{int x;}"); + SimpleName x = cu.getClassByName("X").get().getMember(0).asFieldDeclaration().getVariables().get(0).getName(); + assertEquals("int x;", x.findAncestor(FieldDeclaration.class).get().toString()); + } + + @Test + void cantFindCompilationUnit() { + VariableDeclarator x = new VariableDeclarator(); + assertFalse(x.findCompilationUnit().isPresent()); + } + + @Test + void genericWalk() { + Expression e = parseExpression("1+1"); + StringBuilder b = new StringBuilder(); + e.walk(n -> b.append(n.toString())); + assertEquals("1 + 111", b.toString()); + } + + @Test + void classSpecificWalk() { + Expression e = parseExpression("1+1"); + StringBuilder b = new StringBuilder(); + e.walk(IntegerLiteralExpr.class, n -> b.append(n.toString())); + assertEquals("11", b.toString()); + } + + @Test + void conditionalFindAll() { + Expression e = parseExpression("1+2+3"); + List ints = e.findAll(IntegerLiteralExpr.class, n -> n.asInt() > 1); + assertEquals("[2, 3]", ints.toString()); + } + + @Test + void typeOnlyFindAll() { + Expression e = parseExpression("1+2+3"); + List ints = e.findAll(IntegerLiteralExpr.class); + assertEquals("[1, 2, 3]", ints.toString()); + } + + @Test + void typeOnlyFindAllMatchesSubclasses() { + Expression e = parseExpression("1+2+3"); + List ints = e.findAll(Node.class); + assertEquals("[1 + 2 + 3, 1 + 2, 1, 2, 3]", ints.toString()); + } + + @Test + void conditionalTypedFindFirst() { + Expression e = parseExpression("1+2+3"); + Optional ints = e.findFirst(IntegerLiteralExpr.class, n -> n.asInt() > 1); + assertEquals("Optional[2]", ints.toString()); + } + + @Test + void typeOnlyFindFirst() { + Expression e = parseExpression("1+2+3"); + Optional ints = e.findFirst(IntegerLiteralExpr.class); + assertEquals("Optional[1]", ints.toString()); + } + + @Test + void stream() { + Expression e = parseExpression("1+2+3"); + List ints = e.stream() + .filter(n -> n instanceof IntegerLiteralExpr) + .map(IntegerLiteralExpr.class::cast) + .filter(i -> i.asInt() > 1) + .collect(Collectors.toList()); + assertEquals("[2, 3]", ints.toString()); + } + +} diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/expr/LiteralStringValueExprTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/expr/LiteralStringValueExprTest.java index cda4d1f2a7..8e6b357498 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/expr/LiteralStringValueExprTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/expr/LiteralStringValueExprTest.java @@ -23,8 +23,11 @@ import org.assertj.core.data.Percentage; import org.junit.jupiter.api.Test; +import java.math.BigInteger; + import static com.github.javaparser.StaticJavaParser.parseExpression; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; @SuppressWarnings("OctalInteger") class LiteralStringValueExprTest { @@ -90,6 +93,23 @@ void lowerAndUpperBoundIntegersAreConverted() { assertThat(negBin.asInt()).isEqualTo(0b1000_0000_0000_0000_0000_0000_0000_0000); } + @Test + void negativeLiteralValues() { + UnaryExpr unaryIntExpr = parseExpression("-2147483648"); // valid, Integer.MIN_VALUE + IntegerLiteralExpr literalIntExpr = (IntegerLiteralExpr) unaryIntExpr.getExpression(); + IntegerLiteralExpr notValidIntExpr = parseExpression("2147483648"); // not valid + + UnaryExpr unaryLongExpr = parseExpression("-9223372036854775808L"); // valid, Long.MIN_VALUE + LongLiteralExpr literalLongExpr = (LongLiteralExpr) unaryLongExpr.getExpression(); + LongLiteralExpr notValidLongExpr = parseExpression("9223372036854775808L"); // not valid + + assertThat(literalIntExpr.asNumber()).isEqualTo(2147483648L); + assertThat(literalLongExpr.asNumber()).isEqualTo(new BigInteger("9223372036854775808")); + + assertThatThrownBy(notValidIntExpr::asNumber).isInstanceOf(NumberFormatException.class); + assertThatThrownBy(notValidLongExpr::asNumber).isInstanceOf(NumberFormatException.class); + } + @Test void lowerAndUpperBoundLongsAreConverted() { LongLiteralExpr dec = parseExpression("9223372036854775807L"); diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/expr/TextBlockLiteralExprTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/expr/TextBlockLiteralExprTest.java index 134d77f311..379a5adb42 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/expr/TextBlockLiteralExprTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/expr/TextBlockLiteralExprTest.java @@ -166,4 +166,30 @@ void forceTrailingWhitespace() { assertEquals("The quick brown fox \n" + "jumps over the lazy dog\n", textBlock.translateEscapes()); } + + @Test + void escapeLineTerminator() { + TextBlockLiteralExpr textBlock = parseStatement("String text = \"\"\"\n" + + " Lorem ipsum dolor sit amet, consectetur adipiscing \\\n" + + " elit, sed do eiusmod tempor incididunt ut labore \\\n" + + " et dolore magna aliqua.\\\n" + + " \"\"\";").findFirst(TextBlockLiteralExpr.class).get(); + + assertEquals("Lorem ipsum dolor sit amet, consectetur adipiscing " + + "elit, sed do eiusmod tempor incididunt ut labore " + + "et dolore magna aliqua.", textBlock.translateEscapes()); + } + + @Test + void escapeSpace() { + TextBlockLiteralExpr textBlock = parseStatement("String colors = \"\"\"\n" + + " red \\s\n" + + " green\\s\n" + + " blue \\s\n" + + " \"\"\";").findFirst(TextBlockLiteralExpr.class).get(); + + assertEquals("red \n" + + "green \n" + + "blue \n", textBlock.translateEscapes()); + } } diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/manual/BulkParseTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/manual/BulkParseTest.java index 344aebeb71..7dfa531f85 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/manual/BulkParseTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/manual/BulkParseTest.java @@ -99,8 +99,6 @@ void parseOwnSourceCode() throws IOException { "javaparser-core-generators/src/main/java", "javaparser-core-metamodel-generator/src/main/java", "javaparser-symbol-solver-core/src/main/java", - "javaparser-symbol-solver-logic/src/main/java", - "javaparser-symbol-solver-model/src/main/java", "javaparser-symbol-solver-testing/src/test/java" }; for (String root : roots) { diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/printer/PrettyPrintVisitorTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/printer/PrettyPrintVisitorTest.java index f6ff8a939f..225ba6a287 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/printer/PrettyPrintVisitorTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/printer/PrettyPrintVisitorTest.java @@ -63,12 +63,93 @@ private String print(Node node) { return new PrettyPrinter().print(node); } + private String print(Node node, PrettyPrinterConfiguration conf) { + return new PrettyPrinter(conf).print(node); + } + + @Test void printSimpleClassExpr() { ClassExpr expr = parseExpression("Foo.class"); assertEquals("Foo.class", print(expr)); } + + /** + * Here is a simple test according to R0 (removing spaces) + */ + @Test + void printOperatorsR0(){ + PrettyPrinterConfiguration conf1 = new PrettyPrinterConfiguration().setSpaceAroundOperators(false); + Statement statement1 = parseStatement("a = 1 + 1;"); + assertEquals("a=1+1;", print(statement1, conf1)); + } + + /** + * Here we test different operators according to requirement R1 (handling different operators) + */ + @Test + void printOperatorsR1(){ + + Statement statement1 = parseStatement("a = 1 + 1;"); + assertEquals("a = 1 + 1;", print(statement1)); + + Statement statement2 = parseStatement("a = 1 - 1;"); + assertEquals("a = 1 - 1;", print(statement2)); + + Statement statement3 = parseStatement("a = 1 * 1;"); + assertEquals("a = 1 * 1;", print(statement3)); + + Statement statement4 = parseStatement("a = 1 % 1;"); + assertEquals("a = 1 % 1;", print(statement4)); + + Statement statement5 = parseStatement("a=1/1;"); + assertEquals("a = 1 / 1;", print(statement5)); + + Statement statement6 = parseStatement("if (1 > 2 && 1 < 3 || 1 < 3){}"); + assertEquals("if (1 > 2 && 1 < 3 || 1 < 3) {" + EOL + + "}", print(statement6)); + + } + + /** + * Here is a simple test according to R2 (that it should be optional/modifiable) + */ + @Test + void printOperatorsR2(){ + PrettyPrinterConfiguration conf1 = new PrettyPrinterConfiguration().setSpaceAroundOperators(false); + Statement statement1 = parseStatement("a = 1 + 1;"); + assertEquals("a=1+1;", print(statement1, conf1)); + + PrettyPrinterConfiguration conf2 = new PrettyPrinterConfiguration().setSpaceAroundOperators(false); + Statement statement2 = parseStatement("a=1+1;"); + assertEquals("a=1+1;", print(statement2, conf2)); + + PrettyPrinterConfiguration conf3 = new PrettyPrinterConfiguration().setSpaceAroundOperators(true); + Statement statement3 = parseStatement("a = 1 + 1;"); + assertEquals("a = 1 + 1;", print(statement3, conf3)); + + PrettyPrinterConfiguration conf4 = new PrettyPrinterConfiguration().setSpaceAroundOperators(true); + Statement statement4 = parseStatement("a=1+1;"); + assertEquals("a = 1 + 1;", print(statement4, conf4)); + + } + + @Test + void printOperatorA(){ + PrettyPrinterConfiguration conf = new PrettyPrinterConfiguration().setSpaceAroundOperators(false); + Statement statement6 = parseStatement("if(1>2&&1<3||1<3){}"); + assertEquals("if (1>2&&1<3||1<3) {" + EOL + + "}", print(statement6, conf)); + } + + @Test + void printOperator2(){ + Expression expression = parseExpression("1+1"); + PrettyPrinterConfiguration spaces = new PrettyPrinterConfiguration().setSpaceAroundOperators(false); + assertEquals("1+1", print(expression, spaces)); + } + @Test void printArrayClassExpr() { ClassExpr expr = parseExpression("Foo[].class"); diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/Issue2610Test.java b/javaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/Issue2610Test.java new file mode 100755 index 0000000000..dac532fa3b --- /dev/null +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/Issue2610Test.java @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2007-2010 Júlio Vilmar Gesser. + * Copyright (C) 2011, 2013-2019 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.printer.lexicalpreservation; + +import java.util.Optional; + +import org.junit.jupiter.api.Test; + +import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.expr.MethodCallExpr; + +public class Issue2610Test { + + /* + * This test case must prevent an UnsupportedOperation Removed throwed by LexicalPreservation when we try to replace an expression + */ + @Test + public void test() { + + CompilationUnit cu = StaticJavaParser.parse( + "public class Bar {\n" + + " public void foo() {\n" + + " // comment\n" + + " System.out.print(\"error\");\n" + + " }\n" + + "}" + ); + LexicalPreservingPrinter.setup(cu); + // contruct a statement with a comment + Expression expr = StaticJavaParser.parseExpression("System.out.println(\"warning\")"); + // Replace the method expression + Optional mce = cu.findFirst(MethodCallExpr.class); + mce.get().getParentNode().get().replace(mce.get(), expr); + } +} diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/LexicalPreservingPrinterTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/LexicalPreservingPrinterTest.java index ecbedc1252..01b14a06c5 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/LexicalPreservingPrinterTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/LexicalPreservingPrinterTest.java @@ -36,14 +36,8 @@ import java.util.List; import java.util.stream.Collectors; -import com.github.javaparser.GeneratedJavaParserConstants; -import com.github.javaparser.StaticJavaParser; -import com.github.javaparser.ast.ArrayCreationLevel; -import com.github.javaparser.ast.CompilationUnit; -import com.github.javaparser.ast.ImportDeclaration; -import com.github.javaparser.ast.Modifier; -import com.github.javaparser.ast.Node; -import com.github.javaparser.ast.NodeList; +import com.github.javaparser.*; +import com.github.javaparser.ast.*; import com.github.javaparser.ast.body.AnnotationDeclaration; import com.github.javaparser.ast.body.AnnotationMemberDeclaration; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; @@ -52,6 +46,7 @@ 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.comments.LineComment; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.expr.ArrayCreationExpr; import com.github.javaparser.ast.expr.AssignExpr; @@ -1324,4 +1319,19 @@ void testIndentOfCodeBlocks() throws IOException { String expected = considerExample("IndentOfInsertedCodeBlocksExpected"); assertEquals(expected, LexicalPreservingPrinter.print(compilationUnit)); } + + @Test + void commentAddedAtTopLevel() { + JavaParser javaParser = new JavaParser(new ParserConfiguration().setLexicalPreservationEnabled(true)); + CompilationUnit cu = javaParser.parse("package x;class X{}").getResult().get(); + + cu.setComment(new LineComment("Bla")); + assertEqualsNoEol("//Bla\npackage x;class X{}", LexicalPreservingPrinter.print(cu)); + + cu.setComment(new LineComment("BlaBla")); + assertEqualsNoEol("//BlaBla\npackage x;class X{}", LexicalPreservingPrinter.print(cu)); + + cu.removeComment(); + assertEqualsNoEol("package x;class X{}", LexicalPreservingPrinter.print(cu)); + } } diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/utils/ParserCollectionStrategyTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/utils/ParserCollectionStrategyTest.java index 9659bc0f45..c6e78ed587 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/utils/ParserCollectionStrategyTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/utils/ParserCollectionStrategyTest.java @@ -26,6 +26,7 @@ import java.nio.file.Path; import java.util.Optional; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotEquals; @@ -37,17 +38,10 @@ class ParserCollectionStrategyTest { @Test void getSourceRoots() { - assertFalse(projectRoot.getSourceRoots().size() == 0); - assertNotEquals(Optional.empty(), projectRoot.getSourceRoot(root.resolve("javaparser-core/src/main/java"))); - assertNotEquals(Optional.empty(), projectRoot.getSourceRoot(root.resolve - ("javaparser-core-generators/src/main/java"))); - assertNotEquals(Optional.empty(), projectRoot.getSourceRoot(root.resolve - ("javaparser-core-metamodel-generator/src/main/java"))); - assertNotEquals(Optional.empty(), projectRoot.getSourceRoot(root.resolve - ("javaparser-symbol-solver-core/src/main/java"))); - assertNotEquals(Optional.empty(), projectRoot.getSourceRoot(root.resolve - ("javaparser-symbol-solver-logic/src/main/java"))); - assertNotEquals(Optional.empty(), projectRoot.getSourceRoot(root.resolve - ("javaparser-symbol-solver-model/src/main/java"))); + assertThat(projectRoot.getSourceRoots()).isNotEmpty(); + assertThat(projectRoot.getSourceRoot(root.resolve("javaparser-core/src/main/java"))).isNotEmpty(); + assertThat(projectRoot.getSourceRoot(root.resolve("javaparser-core-generators/src/main/java"))).isNotEmpty(); + assertThat(projectRoot.getSourceRoot(root.resolve("javaparser-core-metamodel-generator/src/main/java"))).isNotEmpty(); + assertThat(projectRoot.getSourceRoot(root.resolve("javaparser-symbol-solver-core/src/main/java"))).isNotEmpty(); } } diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/utils/PositionUtilsTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/utils/PositionUtilsTest.java new file mode 100644 index 0000000000..bcbd8cb964 --- /dev/null +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/utils/PositionUtilsTest.java @@ -0,0 +1,262 @@ +package com.github.javaparser.utils; + +import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.CompilationUnit; +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.comments.Comment; +import com.github.javaparser.ast.expr.AnnotationExpr; +import com.github.javaparser.ast.expr.SimpleName; +import com.github.javaparser.ast.type.Type; +import org.junit.jupiter.api.Test; + +import static com.github.javaparser.utils.PositionUtils.nodeContains; +import static com.github.javaparser.utils.TestUtils.assertEqualsNoEol; +import static org.junit.jupiter.api.Assertions.*; + +public class PositionUtilsTest { + @Test + public void nodeContains_NoAnnotationsAnywhere_IgnoringAnnotations() { + CompilationUnit cu = StaticJavaParser.parse("class X { int a; }"); + FieldDeclaration field = cu.findFirst(FieldDeclaration.class).get(); + + boolean contains = nodeContains(cu, field, true); + assertTrue(contains); + } + + @Test + public void nodeDoesNotContain_NoAnnotationsAnywhere_IgnoringAnnotations() { + CompilationUnit cu = StaticJavaParser.parse("class X { int a; }"); + FieldDeclaration field = cu.findFirst(FieldDeclaration.class).get(); + + Type fieldType = field.getVariable(0).getType(); + SimpleName fieldName = field.getVariable(0).getName(); + + boolean contains = nodeContains(fieldType, fieldName, true); + assertFalse(contains); + } + + @Test + public void nodeContains_NoAnnotationsAnywhere_IncludeAnnotations() { + CompilationUnit cu = StaticJavaParser.parse("class X { int a; }"); + FieldDeclaration field = cu.findFirst(FieldDeclaration.class).get(); + + boolean contains = nodeContains(cu, field, false); + assertTrue(contains); + } + + @Test + public void nodeDoesNotContain_NoAnnotationsAnywhere_IncludeAnnotations() { + CompilationUnit cu = StaticJavaParser.parse("class X { int a; }"); + FieldDeclaration field = cu.findFirst(FieldDeclaration.class).get(); + + Type fieldType = field.getVariable(0).getType(); + SimpleName fieldName = field.getVariable(0).getName(); + + boolean contains = nodeContains(fieldType, fieldName, false); + assertFalse(contains, "Type and Name are separate branches of the AST, thus should not contain each other."); + } + + @Test + public void nodeContainsAnnotations_IgnoringAnnotations() { + CompilationUnit cu = StaticJavaParser.parse("@A class X {} class Y {}"); + ClassOrInterfaceDeclaration x = cu.getClassByName("X").get(); + ClassOrInterfaceDeclaration y = cu.getClassByName("Y").get(); + + boolean contains = nodeContains(x, y, true); + assertFalse(contains); + } + + @Test + public void nodeContainsAnnotations_WithCommentNodeInTheMiddle_IgnoringAnnotations() { + String code = "" + + "@A\n" + + "/*o*/\n" + + "@B\n" + + "class X {\n" + + "}\n" + + ""; + + CompilationUnit cu = StaticJavaParser.parse(code); + assertEqualsNoEol(code, cu.toString(), "Issue with the parsing of the code, not this test."); + + ClassOrInterfaceDeclaration x = cu.getClassByName("X").get(); + AnnotationExpr annotationB = x.getAnnotationByName("B").get(); + + // Comment gets added to the MarkerAnnotationExpr for @B -- correct + Comment o = annotationB.getComment().get(); + assertEquals(annotationB, o.getCommentedNode().get(), "Comment has been added to an unexpected node."); + + boolean contains = nodeContains(x, o, true); + assertFalse(contains); + } + + + @Test + public void nodeContainsAnnotations_WithAnnotationNodeInTheMiddle() { + String code = "" + + "@A\n" + + "@B\n" + + "@C\n" + + "class X {\n" + + "}\n" + + ""; + CompilationUnit cu = StaticJavaParser.parse(code); + assertEqualsNoEol(code, cu.toString(), "Issue with the parsing of the code, not this test."); + + final ClassOrInterfaceDeclaration x = cu.getClassByName("X").get(); + final AnnotationExpr annotationA = x.getAnnotationByName("A").get(); + final AnnotationExpr annotationB = x.getAnnotationByName("B").get(); + final AnnotationExpr annotationC = x.getAnnotationByName("C").get(); + + // If including annotations (i.e. NOT ignoring them), all nodes should be included + assertTrue(nodeContains(x, annotationA, false), formatRangeCompareResult(x, annotationA, "X", "A")); + assertTrue(nodeContains(x, annotationB, false), formatRangeCompareResult(x, annotationB, "X", "B")); + assertTrue(nodeContains(x, annotationC, false), formatRangeCompareResult(x, annotationC, "X", "C")); + assertTrue(nodeContains(x, x, false), formatRangeCompareResult(x, x, "X", "X")); + + // If ignoring annotations, only the node itself should be included + assertFalse(nodeContains(x, annotationA, true), formatRangeCompareResult(x, annotationA, "X", "A")); + assertFalse(nodeContains(x, annotationB, true), formatRangeCompareResult(x, annotationB, "X", "B")); + assertFalse(nodeContains(x, annotationC, true), formatRangeCompareResult(x, annotationC, "X", "C")); + assertFalse(nodeContains(x, x, true), formatRangeCompareResult(x, x, "X", "X")); + + } + + private String formatRangeCompareResult(Node x, Node annotationA, String containerId, String otherId) { + return String.format("container range in detected as NOT containing other range: " + + "\n - container (%s): %s" + + "\n - other (%s): %s", + containerId, + x.getRange().get().toString(), + otherId, + annotationA.getRange().get().toString() + ); + } + + @Test + public void nodeContainsAnnotations_WithCommentAtTheEndOfAnnotations_IgnoringAnnotations() { + CompilationUnit cu = StaticJavaParser.parse("@A @B /*o*/ public class X {}"); + ClassOrInterfaceDeclaration x = cu.getClassByName("X").get(); + + // TODO: Should the comment be attached to the SimpleName (as opposed to the ClassOrInterfaceDeclaration?) + SimpleName simpleName = x.getName(); + Comment o = simpleName.getComment().get(); + + //// 0 1 2 2 + //// 123456789012345678901234567890 + //// @A @B /*o*/ public class X {} + //// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // range of x, WITH annotations -- thus contained == TRUE + //// @A @B /*o*/ public class X {} + //// ^^^^^^^^^^^^^^^^^ // range of x, ignoring annotations -- thus contained == FALSE + //// @A @B /*o*/ public class X {} + //// ^^^^^ // range of o + + // TODO: Determine if comments outside the text range of a node are "contained" within a node (part of the subtree, but are printed before). + assertTrue(nodeContains(x, o, false), formatRangeCompareResult(x, o, "X", "o")); + assertFalse(nodeContains(x, o, true), formatRangeCompareResult(x, o, "X", "o")); + + + // FIXME: Both tests currently fail due to the comment being attached to the SimpleName, as opposed to the ClassOrInterfaceDeclaration +// assertEquals(x.getClass(), o.getCommentedNode().get().getClass(), "Comment attached to an unexpected node -- expected to be the ClassOrInterfaceDeclaration"); +// assertEquals(x, o.getCommentedNode().get(), "Comment attached to an unexpected node -- expected to be the ClassOrInterfaceDeclaration"); + + } + + @Test + public void nodeContainsAnnotations_WithCommentAfterTheEnd_IgnoringAnnotations() { + CompilationUnit cu = StaticJavaParser.parse("@A @B public /*o*/ class X {}"); + ClassOrInterfaceDeclaration x = cu.getClassByName("X").get(); + + // TODO: Should the comment be attached to the SimpleName (as opposed to the ClassOrInterfaceDeclaration?) + SimpleName simpleName = x.getName(); + Comment o = simpleName.getComment().get(); + + //// 0 1 2 2 + //// 123456789012345678901234567890 + //// @A @B public /*o*/ class X {} + //// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // range of x, WITH annotations -- thus contained == TRUE + //// @A @B public /*o*/ class X {} + //// ^^^^^^^^^^^^^^^^^^^^^^^ // range of x, ignoring annotations -- thus contained == TRUE + //// @A @B public /*o*/ class X {} + //// ^^^^^ // range of o + + // TODO: Determine if comments outside the text range of a node are "contained" within a node (part of the subtree, but are printed before). + assertTrue(nodeContains(x, o, false), formatRangeCompareResult(x, o, "X", "o")); + assertTrue(nodeContains(x, o, true), formatRangeCompareResult(x, o, "X", "o")); + + // FIXME: Both tests currently fail due to the comment being attached to the SimpleName, as opposed to the ClassOrInterfaceDeclaration +// assertEquals(x.getClass(), o.getCommentedNode().get().getClass(), "Comment attached to an unexpected node -- expected to be the ClassOrInterfaceDeclaration"); +// assertEquals(x, o.getCommentedNode().get(), "Comment attached to an unexpected node -- expected to be the ClassOrInterfaceDeclaration"); + + } + + @Test + public void nodeContainsAnnotations_WithCommentAfterTheEnd_IgnoringAnnotations2() { + CompilationUnit cu = StaticJavaParser.parse("@A @B public class /*o*/ X {}"); + ClassOrInterfaceDeclaration x = cu.getClassByName("X").get(); + + // TODO: Should the comment be attached to the SimpleName (as opposed to the ClassOrInterfaceDeclaration?) + SimpleName simpleName = x.getName(); + Comment o = simpleName.getComment().get(); + + + //// 12345678912345678912345678901 + //// @A @B public class /*o*/ X {} + //// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // range of x, WITH annotations -- thus contained == TRUE + //// @A @B public class /*o*/ X {} + //// ^^^^^^^^^^^^^^^^^^^^^^^ // range of x, ignoring annotations -- thus contained == TRUE + //// @A @B public class /*o*/ X {} + //// ^^^^^ // range of o + + // TODO: Determine if comments outside the text range of a node are "contained" within a node (part of the subtree, but are printed before). + assertTrue(nodeContains(x, o, false), formatRangeCompareResult(x, o, "X", "o")); + assertTrue(nodeContains(x, o, true), formatRangeCompareResult(x, o, "X", "o")); + + assertTrue(o.getCommentedNode().isPresent()); + + // FIXME: Both tests currently fail due to the comment being attached to the SimpleName, as opposed to the ClassOrInterfaceDeclaration +// assertEquals(x.getClass(), o.getCommentedNode().get().getClass(), "Comment attached to an unexpected node -- expected to be the ClassOrInterfaceDeclaration"); +// assertEquals(x, o.getCommentedNode().get(), "Comment attached to an unexpected node -- expected to be the ClassOrInterfaceDeclaration"); + + } + + @Test + public void nodeContainsAnnotations_WithCommentAfterTheEnd_IgnoringAnnotations3() { + CompilationUnit cu = StaticJavaParser.parse("@A @B public class X /*o*/ {}"); + ClassOrInterfaceDeclaration x = cu.getClassByName("X").get(); + +// // TODO: At what point is the declaration supposed to end and the code block begin? Should the block comment move "inside" the code block? +// // cu = +// @A +// @B +// public class X { +// /*o*/ +// } + + // TODO: Should the comment be attached to the SimpleName (as opposed to being attached to null but not orphaned?) + Comment o = cu.getComments().get(0); + + + //// 12345678912345678912345678901 + //// @A @B public class X /*o*/ {} + //// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // range of x, WITH annotations -- thus contained == TRUE + //// @A @B public class X /*o*/ {} + //// ^^^^^^^^^^^^^^^^^^^^^^^ // range of x, ignoring annotations -- thus contained == TRUE + //// @A @B public class X /*o*/ {} + //// ^^^^^ // range of o + + // TODO: Determine if comments outside the text range of a node are "contained" within a node (part of the subtree, but are printed before). + assertTrue(nodeContains(x, o, false), formatRangeCompareResult(x, o, "X", "o")); + assertTrue(nodeContains(x, o, true), formatRangeCompareResult(x, o, "X", "o")); + + // FIXME: Comment is unattached (returns null), but is not considered to be orphaned...? +// assertTrue(o.getCommentedNode().isPresent()); + + // FIXME: Both tests currently fail due to the comment being unattached, as opposed to the ClassOrInterfaceDeclaration +// assertEquals(x.getClass(), o.getCommentedNode().get().getClass(), "Comment attached to an unexpected node -- expected to be the ClassOrInterfaceDeclaration"); +// assertEquals(x, o.getCommentedNode().get(), "Comment attached to an unexpected node -- expected to be the ClassOrInterfaceDeclaration"); + + } +} diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/utils/TestUtils.java b/javaparser-core-testing/src/test/java/com/github/javaparser/utils/TestUtils.java index 4035894258..50c07b239d 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/utils/TestUtils.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/utils/TestUtils.java @@ -33,24 +33,28 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.*; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; -import static com.github.javaparser.ParserConfiguration.LanguageLevel.*; +import static com.github.javaparser.ParserConfiguration.LanguageLevel.JAVA_9; import static com.github.javaparser.Providers.provider; import static com.github.javaparser.utils.CodeGenerationUtils.f; -import static com.github.javaparser.utils.Utils.*; -import static java.nio.charset.StandardCharsets.*; -import static java.util.Arrays.*; +import static com.github.javaparser.utils.Utils.EOL; +import static com.github.javaparser.utils.Utils.normalizeEolInTextBlock; +import static java.nio.charset.StandardCharsets.UTF_8; +import static java.util.Arrays.asList; import static org.junit.jupiter.api.Assertions.*; public class TestUtils { /** * Takes care of setting all the end of line character to platform specific ones. */ - public static String readResource(String resourceName) throws IOException { + public static String readResource(String resourceName) { if (resourceName.startsWith("/")) { resourceName = resourceName.substring(1); } @@ -67,8 +71,16 @@ public static String readResource(String resourceName) throws IOException { } return builder.toString(); } + } catch (IOException e) { + fail(e); + return null; } } + + public static void assertEqualToTextResource(String resourceName, String actual){ + String expected = readResource(resourceName); + assertEquals(expected, actual); + } public static String readTextResource(Class relativeClass, String resourceName) { final URL resourceAsStream = relativeClass.getResource(resourceName); @@ -184,4 +196,11 @@ public static void assertExpressionValid(String expression) { public static void assertEqualsNoEol(String expected, String actual) { assertEquals(normalizeEolInTextBlock(expected, EOL), actual); } + + /** + * Assert that "actual" equals "expected", and that any EOL characters in "actual" are correct for the platform. + */ + public static void assertEqualsNoEol(String expected, String actual, String message) { + assertEquals(normalizeEolInTextBlock(expected, EOL), actual, message); + } } diff --git a/javaparser-core-testing/src/test/resources/com/github/javaparser/issue_samples/Issue412.java.expected.txt b/javaparser-core-testing/src/test/resources/com/github/javaparser/issue_samples/Issue412.java.expected.txt new file mode 100644 index 0000000000..ba75c634d5 --- /dev/null +++ b/javaparser-core-testing/src/test/resources/com/github/javaparser/issue_samples/Issue412.java.expected.txt @@ -0,0 +1,35 @@ +/* 1 +1 */ +/* +2 +2 + */ +package /* a */ +/* b */ +// c +// d +com.pany/*alma*/ +/*körte*/ +// lófasz +// jóska +.experiment; + +// z +// x +/*y*/ +/*w*/ +/*aa*/ +/*bb*/ +// cc +// dd +import com.github.javaparser.JavaParser; + +public class Main { + + public static void main(String[] args) throws FileNotFoundException, IOException, ParseException { + // try (FileInputStream fisTargetFile = new FileInputStream(new File(FILENAME))) { + // final String content = IOUtils.toString(fisTargetFile, "UTF-8"); + // System.out.println(content); + // } + } +} diff --git a/javaparser-core-testing/src/test/resources/com/github/javaparser/issue_samples/Issue412.java.txt b/javaparser-core-testing/src/test/resources/com/github/javaparser/issue_samples/Issue412.java.txt new file mode 100644 index 0000000000..3a06006a34 --- /dev/null +++ b/javaparser-core-testing/src/test/resources/com/github/javaparser/issue_samples/Issue412.java.txt @@ -0,0 +1,33 @@ +/* 1 +1 *//* +2 +2 + */ +package +/* a *//* b */ +//c +//d +com +/*alma*//*körte*/ +//lófasz +//jóska + . +pany +. +experiment +//z +//x +/*y*//*w*/ +; +/*aa*//*bb*///cc +//dd +import com.github.javaparser.JavaParser; + +public class Main { + public static void main(String[] args) throws FileNotFoundException, IOException, ParseException { +// try (FileInputStream fisTargetFile = new FileInputStream(new File(FILENAME))) { +// final String content = IOUtils.toString(fisTargetFile, "UTF-8"); +// System.out.println(content); +// } + } +} \ No newline at end of file diff --git a/javaparser-core/pom.xml b/javaparser-core/pom.xml index 3ca2e3cf85..c86d1eea4d 100644 --- a/javaparser-core/pom.xml +++ b/javaparser-core/pom.xml @@ -2,7 +2,7 @@ javaparser-parent com.github.javaparser - 3.15.8-SNAPSHOT + 3.15.19-SNAPSHOT 4.0.0 diff --git a/javaparser-core/src/main/java/com/github/javaparser/CommentsInserter.java b/javaparser-core/src/main/java/com/github/javaparser/CommentsInserter.java index 18e07fc96f..5dc320f046 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/CommentsInserter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/CommentsInserter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -34,7 +34,7 @@ import java.util.TreeSet; import static com.github.javaparser.ast.Node.NODE_BY_BEGIN_POSITION; -import static java.util.stream.Collectors.*; +import static java.util.stream.Collectors.toList; /** * Assigns comments to nodes of the AST. @@ -98,19 +98,30 @@ void insertComments(Node node, TreeSet commentsToAttribute) { .filter(n -> !(n instanceof Modifier)) .collect(toList()); + boolean attributeToAnnotation = !(configuration.isIgnoreAnnotationsWhenAttributingComments()); for (Node child : children) { TreeSet commentsInsideChild = new TreeSet<>(NODE_BY_BEGIN_POSITION); commentsInsideChild.addAll( commentsToAttribute.stream() - .filter(c -> c.getRange().isPresent()) - .filter(c -> PositionUtils.nodeContains(child, c, - configuration.isIgnoreAnnotationsWhenAttributingComments())).collect(toList())); + .filter(comment -> comment.getRange().isPresent()) + .filter(comment -> PositionUtils.nodeContains(child, comment, !attributeToAnnotation)) + .collect(toList()) + ); commentsToAttribute.removeAll(commentsInsideChild); insertComments(child, commentsInsideChild); } attributeLineCommentsOnSameLine(commentsToAttribute, children); + /* if a comment is on the line right before a node it should belong + to that node*/ + if (!commentsToAttribute.isEmpty()) { + if (commentIsOnNextLine(node, commentsToAttribute.first())) { + node.setComment(commentsToAttribute.first()); + commentsToAttribute.remove(commentsToAttribute.first()); + } + } + /* at this point I create an ordered list of all remaining comments and children */ Comment previousComment = null; @@ -215,4 +226,9 @@ private boolean thereAreLinesBetween(Node a, Node b) { return b.getBegin().get().line > endOfA + 1; } + private boolean commentIsOnNextLine(Node a, Comment c) { + if (!c.getRange().isPresent() || !a.getRange().isPresent()) return false; + return c.getRange().get().end.line + 1 == a.getRange().get().begin.line; + } + } diff --git a/javaparser-core/src/main/java/com/github/javaparser/HasParentNode.java b/javaparser-core/src/main/java/com/github/javaparser/HasParentNode.java index 780b7b62c5..2f6b0f9fc0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/HasParentNode.java +++ b/javaparser-core/src/main/java/com/github/javaparser/HasParentNode.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java b/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java index 2a6ee3294a..5d63542072 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java +++ b/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/JavaToken.java b/javaparser-core/src/main/java/com/github/javaparser/JavaToken.java index 983b8a979b..3687b2da3f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/JavaToken.java +++ b/javaparser-core/src/main/java/com/github/javaparser/JavaToken.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/JavadocParser.java b/javaparser-core/src/main/java/com/github/javaparser/JavadocParser.java index 3f5bf791aa..29a78b9426 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/JavadocParser.java +++ b/javaparser-core/src/main/java/com/github/javaparser/JavadocParser.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ParseProblemException.java b/javaparser-core/src/main/java/com/github/javaparser/ParseProblemException.java index b6fbc0c781..2fe91568f0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ParseProblemException.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ParseProblemException.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ParseResult.java b/javaparser-core/src/main/java/com/github/javaparser/ParseResult.java index 82d2a8a9ab..ed2a4823cd 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ParseResult.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ParseResult.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ParseStart.java b/javaparser-core/src/main/java/com/github/javaparser/ParseStart.java index fedf6819a4..1047137def 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ParseStart.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ParseStart.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ParserConfiguration.java b/javaparser-core/src/main/java/com/github/javaparser/ParserConfiguration.java index 8d0b4879cc..4735a323c0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ParserConfiguration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ParserConfiguration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -180,11 +180,6 @@ public void process(ParseResult result, UnicodeEscapeProcessor unicodeProcessor = new UnicodeEscapeProcessor(); preProcessors.add(unicodeProcessor); postProcessors.add(unicodeProcessor); - postProcessors.add((result, configuration) -> { - if (configuration.isLexicalPreservationEnabled()) { - result.ifSuccessful(LexicalPreservingPrinter::setup); - } - }); postProcessors.add((result, configuration) -> { if (configuration.isAttributeComments()) { result.ifSuccessful(resultNode -> result @@ -210,6 +205,11 @@ public void process(ParseResult result, } }) )); + postProcessors.add((result, configuration) -> { + if (configuration.isLexicalPreservationEnabled()) { + result.ifSuccessful(LexicalPreservingPrinter::setup); + } + }); } public boolean isAttributeComments() { diff --git a/javaparser-core/src/main/java/com/github/javaparser/Position.java b/javaparser-core/src/main/java/com/github/javaparser/Position.java index 7b9a67acdd..1e4b6dceb4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/Position.java +++ b/javaparser-core/src/main/java/com/github/javaparser/Position.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -109,6 +109,11 @@ public boolean isAfter(Position position) { } + public boolean isAfterOrEqual(Position position) { + assertNotNull(position); + return isAfter(position) || equals(position); + } + public boolean isBefore(Position position) { assertNotNull(position); if (position.line == Node.ABSOLUTE_END_LINE) return true; @@ -120,6 +125,11 @@ public boolean isBefore(Position position) { return false; } + public boolean isBeforeOrEqual(Position position) { + assertNotNull(position); + return isBefore(position) || equals(position); + } + @Override public int compareTo(Position o) { assertNotNull(o); diff --git a/javaparser-core/src/main/java/com/github/javaparser/Problem.java b/javaparser-core/src/main/java/com/github/javaparser/Problem.java index c0c3422792..a2aca36e7a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/Problem.java +++ b/javaparser-core/src/main/java/com/github/javaparser/Problem.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/Providers.java b/javaparser-core/src/main/java/com/github/javaparser/Providers.java index 6075d0e4cc..06c7493edc 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/Providers.java +++ b/javaparser-core/src/main/java/com/github/javaparser/Providers.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -21,7 +21,12 @@ package com.github.javaparser; -import java.io.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; @@ -45,13 +50,7 @@ public static Provider provider(Reader 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); - } + return new StreamProvider(input, encoding); } public static Provider provider(InputStream input) { diff --git a/javaparser-core/src/main/java/com/github/javaparser/Range.java b/javaparser-core/src/main/java/com/github/javaparser/Range.java index d2859b3077..0b3e553693 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/Range.java +++ b/javaparser-core/src/main/java/com/github/javaparser/Range.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -142,8 +142,9 @@ public Range withEnd(Position end) { * In these cases, the `other` range is not strictly "inside" of this range. */ public boolean contains(Range other) { - return (begin.isBefore(other.begin) || begin.equals(other.begin)) && - (end.isAfter(other.end) || end.equals(other.end)); + boolean beginResult = (begin.isBeforeOrEqual(other.begin)); + boolean endResult = (end.isAfterOrEqual(other.end)); + return beginResult && endResult; } /** @@ -164,7 +165,9 @@ public boolean contains(Position position) { * It means that this has to be larger than other and it has to start before other and end after other. */ public boolean strictlyContains(Range other) { - return begin.isBefore(other.begin) && end.isAfter(other.end); + boolean beginResult = (begin.isBefore(other.begin)); + boolean endResult = (end.isAfter(other.end)); + return beginResult && endResult; } /** diff --git a/javaparser-core/src/main/java/com/github/javaparser/StaticJavaParser.java b/javaparser-core/src/main/java/com/github/javaparser/StaticJavaParser.java index 67e74436f3..4d63fcd920 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/StaticJavaParser.java +++ b/javaparser-core/src/main/java/com/github/javaparser/StaticJavaParser.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/TokenRange.java b/javaparser-core/src/main/java/com/github/javaparser/TokenRange.java index c042d30bf7..f2837b46d3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/TokenRange.java +++ b/javaparser-core/src/main/java/com/github/javaparser/TokenRange.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/TokenTypes.java b/javaparser-core/src/main/java/com/github/javaparser/TokenTypes.java index 5a2a770224..878968ac21 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/TokenTypes.java +++ b/javaparser-core/src/main/java/com/github/javaparser/TokenTypes.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/UnicodeEscapeProcessingProvider.java b/javaparser-core/src/main/java/com/github/javaparser/UnicodeEscapeProcessingProvider.java index 815d05a327..fcb9d6b479 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/UnicodeEscapeProcessingProvider.java +++ b/javaparser-core/src/main/java/com/github/javaparser/UnicodeEscapeProcessingProvider.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/AccessSpecifier.java b/javaparser-core/src/main/java/com/github/javaparser/ast/AccessSpecifier.java index b25e29be0f..b16d7d6952 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/AccessSpecifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/AccessSpecifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/AllFieldsConstructor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/AllFieldsConstructor.java index be37e036aa..18efc78290 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/AllFieldsConstructor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/AllFieldsConstructor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/ArrayCreationLevel.java b/javaparser-core/src/main/java/com/github/javaparser/ast/ArrayCreationLevel.java index 7dd9835076..19c66d1a9f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/ArrayCreationLevel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/ArrayCreationLevel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java b/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java index 059c965d6d..ff3d2bb534 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -134,6 +134,18 @@ public void accept(final VoidVisitor v, final A arg) { v.visit(this, arg); } + /** + * @deprecated getComments was a too generic name and it could be confused with getComment + * or getAllContainedComments + * Use {@link #getAllComments()} instead + */ + @Deprecated + public List getComments() { + List comments = this.getAllContainedComments(); + this.getComment().ifPresent(comments::add); + return comments; + } + /** * Return a list containing all comments declared in this compilation unit. * Including javadocs, line comments and block comments of all types, @@ -145,8 +157,10 @@ public void accept(final VoidVisitor v, final A arg) { * @see com.github.javaparser.ast.comments.LineComment * @see com.github.javaparser.ast.comments.BlockComment */ - public List getComments() { - return this.getAllContainedComments(); + public List getAllComments() { + List comments = this.getAllContainedComments(); + this.getComment().ifPresent(comments::add); + return comments; } /** @@ -234,14 +248,9 @@ public CompilationUnit setImport(int i, ImportDeclaration imports) { */ public CompilationUnit addImport(ImportDeclaration importDeclaration) { if (importDeclaration.isAsterisk()) { - getImports().removeIf(im -> Objects.equals( - getImportPackageName(im).get(), getImportPackageName(importDeclaration).orElse(null))); - } - if (!isImplicitImport(importDeclaration) && getImports().stream() - .noneMatch(im -> im.equals(importDeclaration) || - (im.isAsterisk() && Objects.equals( - getImportPackageName(im).get(), - getImportPackageName(importDeclaration).orElse(null))))) { + getImports().removeIf(im -> Objects.equals(getImportPackageName(im).get(), getImportPackageName(importDeclaration).orElse(null))); + } + if (!isImplicitImport(importDeclaration) && getImports().stream().noneMatch(im -> im.equals(importDeclaration) || (im.isAsterisk() && Objects.equals(getImportPackageName(im).get(), getImportPackageName(importDeclaration).orElse(null))))) { getImports().add(importDeclaration); } return this; @@ -249,10 +258,9 @@ public CompilationUnit addImport(ImportDeclaration importDeclaration) { /** * @param importDeclaration - * @return true, if the import is implicit + * @return true, if the import is implicit */ private boolean isImplicitImport(ImportDeclaration importDeclaration) { - Optional importPackageName = getImportPackageName(importDeclaration); if (importPackageName.isPresent()) { if (parseName(JAVA_LANG).equals(importPackageName.get())) { @@ -272,8 +280,7 @@ private boolean isImplicitImport(ImportDeclaration importDeclaration) { } private static Optional getImportPackageName(ImportDeclaration importDeclaration) { - return (importDeclaration.isAsterisk() ? new Name(importDeclaration.getName(), "*") - : importDeclaration.getName()).getQualifier(); + return (importDeclaration.isAsterisk() ? new Name(importDeclaration.getName(), "*") : importDeclaration.getName()).getQualifier(); } /** @@ -364,8 +371,7 @@ public CompilationUnit addImport(Class clazz) { if (ClassUtils.isPrimitiveOrWrapper(clazz) || JAVA_LANG.equals(clazz.getPackage().getName())) return this; else if (clazz.isAnonymousClass() || clazz.isLocalClass()) - throw new IllegalArgumentException( - clazz.getName() + " is an anonymous or local class therefore it can't be added with addImport"); + throw new IllegalArgumentException(clazz.getName() + " is an anonymous or local class therefore it can't be added with addImport"); return addImport(clazz.getCanonicalName()); } @@ -380,7 +386,7 @@ else if (clazz.isAnonymousClass() || clazz.isLocalClass()) */ public CompilationUnit addImport(String name, boolean isStatic, boolean isAsterisk) { if (name == null) { - return this; + return this; } final StringBuilder i = new StringBuilder("import "); if (isStatic) { diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/DataKey.java b/javaparser-core/src/main/java/com/github/javaparser/ast/DataKey.java index b0570759c4..0d98911b95 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/DataKey.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/DataKey.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/Generated.java b/javaparser-core/src/main/java/com/github/javaparser/ast/Generated.java index d2fc32e4dd..782f3136c7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/Generated.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/Generated.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/ImportDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/ImportDeclaration.java index 0fe3b32e17..1a7192eada 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/ImportDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/ImportDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -8,7 +8,7 @@ * 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 + * 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. diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/Modifier.java b/javaparser-core/src/main/java/com/github/javaparser/ast/Modifier.java index 1bf629deca..20928924d9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/Modifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/Modifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/Node.java b/javaparser-core/src/main/java/com/github/javaparser/ast/Node.java index d8a311eba5..c903d1ce25 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/Node.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/Node.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -170,7 +170,7 @@ public enum Parsedness { private Comment comment; @InternalProperty - private List observers = new ArrayList<>(); + private Set observers = new HashSet<>(); @InternalProperty private Parsedness parsed = PARSED; @@ -213,7 +213,7 @@ public Optional getTokenRange() { public Node setTokenRange(TokenRange tokenRange) { this.tokenRange = tokenRange; - if (tokenRange == null || !(tokenRange.getBegin().getRange().isPresent() && tokenRange.getBegin().getRange().isPresent())) { + if (tokenRange == null || !(tokenRange.getBegin().getRange().isPresent() && tokenRange.getEnd().getRange().isPresent())) { range = null; } else { range = new Range(tokenRange.getBegin().getRange().get().begin, tokenRange.getEnd().getRange().get().end); @@ -710,9 +710,9 @@ public Optional findCompilationUnit() { protected SymbolResolver getSymbolResolver() { return findCompilationUnit().map(cu -> { - if(cu.containsData(SYMBOL_RESOLVER_KEY)) { + if (cu.containsData(SYMBOL_RESOLVER_KEY)) { return cu.getData(SYMBOL_RESOLVER_KEY); - }else{ + } else { throw new IllegalStateException("Symbol resolution not configured: to configure consider setting a SymbolResolver in the ParserConfiguration"); } }).orElseThrow(() -> new IllegalStateException("The node is not inserted in a CompilationUnit")); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/NodeList.java b/javaparser-core/src/main/java/com/github/javaparser/ast/NodeList.java index dffc3acd99..e06be0730f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/NodeList.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/NodeList.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -30,7 +30,9 @@ import com.github.javaparser.metamodel.InternalProperty; import java.util.*; -import java.util.function.*; +import java.util.function.Consumer; +import java.util.function.Predicate; +import java.util.function.UnaryOperator; import java.util.stream.Collector; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -227,6 +229,26 @@ public NodeList addBefore(N node, N beforeThisNode) { } + /** + * @return the first node, or empty if the list is empty. + */ + public Optional getFirst() { + if (isEmpty()) { + return Optional.empty(); + } + return Optional.of(get(0)); + } + + /** + * @return the last node, or empty if the list is empty. + */ + public Optional getLast() { + if (isEmpty()) { + return Optional.empty(); + } + return Optional.of(get(size() - 1)); + } + @Override public Optional getParentNode() { return Optional.ofNullable(parentNode); @@ -481,7 +503,7 @@ public void unregister(AstObserver observer) { @Override public void register(AstObserver observer) { - if(!this.observers.contains(observer)) { + if (!this.observers.contains(observer)) { this.observers.add(observer); } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/PackageDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/PackageDeclaration.java index 44b51c286d..f92cae30d7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/PackageDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/PackageDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java index 80ba10feb8..bdcab15480 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java index 32f4632d9b..512b32a3c2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java index 15a2138a56..6fd315d053 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java index 153d9d05cd..8c0e8b492e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java index d84016d95c..8fe162ff91 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java index e9b2b8af04..e71bb8f008 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java index ccc47eeefc..5c43dd583a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java index 13fd3345ef..5d32a7c8bb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java index b4afc78150..4d9c524be0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java index bc003d0cce..8ac9bde37b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java index 55721d38ae..4b28601560 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/Parameter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/Parameter.java index a12d4e3f4b..cc078a714c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/Parameter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/Parameter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ReceiverParameter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ReceiverParameter.java index b0ec38e841..f152872f1a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ReceiverParameter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ReceiverParameter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java index 07399d3368..c6556ba4e4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/VariableDeclarator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/VariableDeclarator.java index e897ad5b1b..1e5374ccde 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/VariableDeclarator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/VariableDeclarator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java index b12ba2c789..0931e452eb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java index 7201776d52..54a44126f2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/CommentsCollection.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/CommentsCollection.java index 6f366564be..17cfa87964 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/CommentsCollection.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/CommentsCollection.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java index bd8a6e3b32..a8d0ecce81 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java index f5949d8e50..d53c8b2ffa 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java index 8184a91805..2666e497b0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java index d5768ce959..7af236d36e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java index a68528770a..b0a0785c49 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java index 85a96ab2e3..b748214014 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java index 5619f640ac..bca5aec728 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java index 5918b3936f..785ec3d03b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java index d0befce8b1..e1e06e6e4b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java index dad0c96e9e..1b246185b9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java index fb4d5682cb..f2bbb8387a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java index 37a5aa8610..e8c04b01e2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java index e79d63b9ea..9b9782d9b0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java index 1cbc6ae568..4633fff3d4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java index 68466378e2..30f0ee1258 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -108,11 +108,6 @@ public boolean remove(Node node) { return super.remove(node); } - @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator") - public EnclosedExpr removeInner() { - return setInner((Expression) null); - } - @Override @Generated("com.github.javaparser.generator.core.node.CloneGenerator") public EnclosedExpr clone() { diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java index 93c33639f6..54c00184e9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java index c70a3b11be..27f83c0ce9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java index 7ca2013b38..5a620652df 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java index d691d33fe0..032cac9bf3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -20,30 +20,38 @@ */ package com.github.javaparser.ast.expr; +import com.github.javaparser.TokenRange; import com.github.javaparser.ast.AllFieldsConstructor; +import com.github.javaparser.ast.Generated; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; import com.github.javaparser.metamodel.IntegerLiteralExprMetaModel; import com.github.javaparser.metamodel.JavaParserMetaModel; -import com.github.javaparser.TokenRange; -import java.util.function.Consumer; +import java.util.Objects; import java.util.Optional; -import com.github.javaparser.ast.Generated; +import java.util.function.Consumer; +import static com.github.javaparser.utils.Utils.hasUnaryMinusAsParent; /** * All ways to specify an int literal. - *
8934 - *
0x01 - *
022 - *
0B10101010 - *
99999999L + * + *
    + *
  • 8934
  • + *
  • 0x01
  • + *
  • 022
  • + *
  • 0B10101010
  • + *
* * @author Julio Vilmar Gesser */ public class IntegerLiteralExpr extends LiteralStringValueExpr { + public static final String MAX_31_BIT_UNSIGNED_VALUE_AS_STRING = "2147483648"; + + public static final long MAX_31_BIT_UNSIGNED_VALUE_AS_LONG = 2147483648L; + public IntegerLiteralExpr() { this(null, "0"); } @@ -62,6 +70,11 @@ public IntegerLiteralExpr(TokenRange tokenRange, String value) { customInitialization(); } + /** + * @deprecated This function is deprecated in favor of {@link #IntegerLiteralExpr(String)}. Please refer to the + * {@link #asNumber()} function for valid formats and how to construct literals holding negative values. + */ + @Deprecated public IntegerLiteralExpr(final int value) { this(null, String.valueOf(value)); } @@ -88,7 +101,11 @@ public boolean remove(Node node) { /** * @return the literal value as an integer while respecting different number representations + * @deprecated This function has issues with corner cases, such as 2147483648, so please use {@link + * IntegerLiteralExpr#asNumber()}. It will be made private or merged with {@link IntegerLiteralExpr#asNumber()} in + * future releases */ + @Deprecated public int asInt() { String result = value.replaceAll("_", ""); if (result.startsWith("0x") || result.startsWith("0X")) { @@ -103,6 +120,39 @@ public int asInt() { return Integer.parseInt(result); } + /** + * This function returns a representation of the literal value as a number. This will return an integer, except for + * the case when the literal has the value 2147483648. This special literal is only allowed in the + * expression -2147483648 which represents Integer.MIN_VALUE). However 2147483648 (2^31) + * is out of range of int, which is -(2^31) to (2^31)-1 and thus a long must be returned. + * + *

Note, that this function will NOT return a negative number if the literal was specified in decimal, since + * according to the language specification (chapter 3.10.1) an expression such as -1 is represented by + * a unary expression with a minus operator and the literal 1. It is however possible to represent + * negative numbers in a literal directly, i.e. by using the binary or hexadecimal representation. For example + * 0xffff_ffff represents the value -1. + * + * @return the literal value as a number while respecting different number representations + */ + public Number asNumber() { + /* + * we need to handle the special case for the literal 2147483648, which is used to + * represent Integer.MIN_VALUE (-2147483648) as a combination of a UnaryExpr and an + * IntegerLiteralExpr. However 2147483648 cannot be represented in an integer, so we + * need to return a long + */ + if (Objects.equals(value, MAX_31_BIT_UNSIGNED_VALUE_AS_STRING) && hasUnaryMinusAsParent(this)) { + return MAX_31_BIT_UNSIGNED_VALUE_AS_LONG; + } else { + return asInt(); + } + } + + /** + * @deprecated This function is deprecated in favor of {@link #setValue(String)}. Please refer to the {@link + * #asNumber()} function for valid formats and how to construct literals holding negative values. + */ + @Deprecated public IntegerLiteralExpr setInt(int value) { this.value = String.valueOf(value); return this; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java index c3857b9f22..2b673f60fb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java index 4be645d8f0..031334b92f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralStringValueExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralStringValueExpr.java index e860b19484..091885aca7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralStringValueExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralStringValueExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java index 58620e7044..898a85b05d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -20,30 +20,40 @@ */ package com.github.javaparser.ast.expr; +import com.github.javaparser.TokenRange; import com.github.javaparser.ast.AllFieldsConstructor; +import com.github.javaparser.ast.Generated; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.metamodel.LongLiteralExprMetaModel; -import com.github.javaparser.TokenRange; -import java.util.function.Consumer; +import java.math.BigInteger; +import java.util.Objects; import java.util.Optional; -import com.github.javaparser.ast.Generated; +import java.util.function.Consumer; +import static com.github.javaparser.utils.Utils.hasUnaryMinusAsParent; /** * All ways to specify a long literal. - *
8934l - *
0x01L - *
022l - *
0B10101010L - *
99999999L + * + *

    + *
  • 8934l
  • + *
  • 0x01L
  • + *
  • 022l
  • + *
  • 0B10101010L
  • + *
  • 99999999L
  • + *
* * @author Julio Vilmar Gesser */ public class LongLiteralExpr extends LiteralStringValueExpr { + public static final String MAX_63_BIT_UNSIGNED_VALUE_AS_STRING = "9223372036854775808L"; + + public static final BigInteger MAX_63_BIT_UNSIGNED_VALUE_AS_BIG_INTEGER = new BigInteger("9223372036854775808"); + public LongLiteralExpr() { this(null, "0"); } @@ -62,6 +72,11 @@ public LongLiteralExpr(TokenRange tokenRange, String value) { customInitialization(); } + /** + * @deprecated This function is deprecated in favor of {@link #LongLiteralExpr(String)}. Please refer to the {@link + * #asNumber()} function for valid formats and how to construct literals holding negative values. + */ + @Deprecated public LongLiteralExpr(final long value) { this(null, String.valueOf(value)); } @@ -88,7 +103,11 @@ public boolean remove(Node node) { /** * @return the literal value as an long while respecting different number representations + * @deprecated This function has issues with corner cases, such as 9223372036854775808L, so please use {@link + * LongLiteralExpr#asNumber()}. It will be made private or merged with {@link LongLiteralExpr#asNumber()} in future + * releases */ + @Deprecated public long asLong() { String result = value.replaceAll("_", ""); char lastChar = result.charAt(result.length() - 1); @@ -107,6 +126,39 @@ public long asLong() { return Long.parseLong(result); } + /** + * This function returns a representation of the literal value as a number. This will return a long, except for the + * case when the literal has the value 9223372036854775808L. This special literal is only allowed in + * the expression -9223372036854775808L which represents Long.MIN_VALUE). However + * 9223372036854775808 (2^63) is out of range of long, which is -(2^63) to (2^63)-1 and thus a BigInteger must be + * returned. + * + *

Note, that this function will NOT return a negative number if the literal was specified in decimal, since + * according to the language specification (chapter 3.10.1) an expression such as -1L is represented by + * a unary * expression with a minus operator and the literal 1L. It is however possible to represent + * negative * numbers in a literal directly, i.e. by using the binary or hexadecimal representation. For example + * 0xffff_ffff_ffff_ffffL represents the value -1L. + * + * @return the literal value as a number while respecting different number representations + */ + public Number asNumber() { + /* we need to handle the special case for the literal 9223372036854775808L, which is used to + * represent Integer.MIN_VALUE (-9223372036854775808L) as a combination of a UnaryExpr and a + * LongLiteralExpr. However 9223372036854775808L cannot be represented in a long, so we need + * to return a BigInteger + */ + if (Objects.equals(value, MAX_63_BIT_UNSIGNED_VALUE_AS_STRING) && hasUnaryMinusAsParent(this)) { + return MAX_63_BIT_UNSIGNED_VALUE_AS_BIG_INTEGER; + } else { + return asLong(); + } + } + + /** + * @deprecated This function is deprecated in favor of {@link #setValue(String)}. Please refer to the {@link + * #asNumber()} function for valid formats and how to construct literals holding negative values. + */ + @Deprecated public LongLiteralExpr setLong(long value) { this.value = String.valueOf(value); return this; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java index 7d12b982bc..dd5c16807a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MemberValuePair.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MemberValuePair.java index ba957ba9ec..58b3a18938 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MemberValuePair.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MemberValuePair.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java index 657b9b5d0a..6183b204c4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java index a77e607f71..c591bd1e15 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -38,10 +38,8 @@ import com.github.javaparser.metamodel.OptionalProperty; import com.github.javaparser.resolution.Resolvable; import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration; - import java.util.Optional; import java.util.function.Consumer; - import static com.github.javaparser.utils.Utils.assertNonEmpty; import static com.github.javaparser.utils.Utils.assertNotNull; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Name.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Name.java index 31a916b23c..b7541a86ea 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Name.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Name.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java index 048d5368d0..f371cdb2d4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java index c51cf332f3..5ec16d88f3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java index e283a2b504..d2a846a3d8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java index 35222e8169..95c69f9ec9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SimpleName.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SimpleName.java index 5ececcd692..f39443852d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SimpleName.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SimpleName.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java index 5ee1ff7258..2e3b972d08 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java index e073a175bd..1c349e7b71 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java index 9db1ea9de8..6fa3a2e8b7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SwitchExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SwitchExpr.java index 533537ef7f..1ffdb7d83f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SwitchExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SwitchExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TextBlockLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TextBlockLiteralExpr.java index 3462c523a5..d4dd75fced 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TextBlockLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TextBlockLiteralExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -34,7 +34,7 @@ import java.util.Optional; import java.util.function.Consumer; import java.util.stream.Stream; -import static com.github.javaparser.utils.StringEscapeUtils.unescapeJava; +import static com.github.javaparser.utils.StringEscapeUtils.unescapeJavaTextBlock; import static java.util.stream.Collectors.joining; import static java.util.stream.IntStream.range; @@ -163,10 +163,10 @@ public String stripIndent() { } /** - * @return The algorithm ffrom String::translateEscapes in JDK 13. + * @return The algorithm from String::translateEscapes in JDK 13. */ public String translateEscapes() { - return unescapeJava(stripIndent()); + return unescapeJavaTextBlock(stripIndent()); } /** diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java index 229b7c18e0..827648cb29 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java index 12229fb3d9..79543edad5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java index a5cbcb3bb9..55c9df7b75 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java index b15d33ffd1..f221f0f7d6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDeclaration.java index 956f9a8531..722b901d55 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.ast.modules; import com.github.javaparser.ast.AllFieldsConstructor; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDirective.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDirective.java index ae67bf4b90..1761f257c8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDirective.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDirective.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.ast.modules; import com.github.javaparser.ast.AllFieldsConstructor; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsDirective.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsDirective.java index 6858348b8f..aec9fe2a1a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsDirective.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsDirective.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.ast.modules; import com.github.javaparser.ast.AllFieldsConstructor; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleOpensDirective.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleOpensDirective.java index 81fe8b16e6..0cdb58087a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleOpensDirective.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleOpensDirective.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.ast.modules; import com.github.javaparser.ast.AllFieldsConstructor; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesDirective.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesDirective.java index 2c7b289210..681b6ecb89 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesDirective.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesDirective.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.ast.modules; import com.github.javaparser.ast.AllFieldsConstructor; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleRequiresDirective.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleRequiresDirective.java index c931ca4113..4527a0559b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleRequiresDirective.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleRequiresDirective.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.ast.modules; import com.github.javaparser.ast.AllFieldsConstructor; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesDirective.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesDirective.java index 571f56609f..0d13a126eb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesDirective.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesDirective.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.ast.modules; import com.github.javaparser.TokenRange; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithAnnotations.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithAnnotations.java index 1924d8b3e4..503f98f8a7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithAnnotations.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithAnnotations.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithArguments.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithArguments.java index 46570eaf8e..c639336183 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithArguments.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithArguments.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithBlockStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithBlockStmt.java index 2fcf1dee43..eb22b78d1e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithBlockStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithBlockStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithBody.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithBody.java index f2b6dc968b..cea664c77a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithBody.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithBody.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithCondition.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithCondition.java index 7761f9485c..3987d8f911 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithCondition.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithCondition.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithDeclaration.java index 99feb6c768..5e04f0519b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithExpression.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithExpression.java index 1b32ab6c00..647f48227b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithExpression.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithExpression.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithExtends.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithExtends.java index 3208173849..4cfe772079 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithExtends.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithExtends.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -28,9 +28,10 @@ import static com.github.javaparser.StaticJavaParser.parseClassOrInterfaceType; /** - * A node that extends other types. + * A node that explicitly extends other types, using the extends keyword. */ public interface NodeWithExtends { + NodeList getExtendedTypes(); void tryAddImportToParentCompilationUnit(Class clazz); @@ -56,6 +57,7 @@ default N addExtendedType(ClassOrInterfaceType extend) { /** * @deprecated use addExtendedType */ + @Deprecated default N addExtends(Class clazz) { return addExtendedType(clazz); } @@ -63,6 +65,7 @@ default N addExtends(Class clazz) { /** * @deprecated use addExtendedType */ + @Deprecated default N addExtends(String name) { return addExtendedType(name); } @@ -70,7 +73,7 @@ default N addExtends(String name) { /** * Add an "extends" to this and automatically add the import * - * @param clazz the class to extand from + * @param clazz the class to extend from * @return this */ default N addExtendedType(Class clazz) { @@ -89,4 +92,5 @@ default N addExtendedType(String name) { getExtendedTypes().add(parseClassOrInterfaceType(name)); return (N) this; } + } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithIdentifier.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithIdentifier.java index 3018cb2ef3..0634b58c9f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithIdentifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithIdentifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java index a61ea917ab..a62b012115 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithJavadoc.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithJavadoc.java index 19fbab0268..10941e6453 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithJavadoc.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithJavadoc.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithMembers.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithMembers.java index 9b288803d1..6fd6975261 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithMembers.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithMembers.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithModifiers.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithModifiers.java index 78c00efb45..02893b0d4f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithModifiers.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithModifiers.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithName.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithName.java index 36de65864d..75d0b0c2eb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithName.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithName.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalBlockStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalBlockStmt.java index eb14a976b9..8cded1c2e5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalBlockStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalBlockStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalLabel.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalLabel.java index 0ec7ae5acc..ae1bf591a4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalLabel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalLabel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalScope.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalScope.java index c5d78eda45..debdd3ae57 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalScope.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithOptionalScope.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithParameters.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithParameters.java index 37cba56061..e86106f566 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithParameters.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithParameters.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithRange.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithRange.java index 066233bf6c..831e3f2329 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithRange.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithRange.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithScope.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithScope.java index 192fae966b..888d0f4dba 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithScope.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithScope.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithSimpleName.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithSimpleName.java index f8a017dce0..5718528793 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithSimpleName.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithSimpleName.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithStatements.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithStatements.java index cccb750fa6..385d266b1b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithStatements.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithStatements.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithThrownExceptions.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithThrownExceptions.java index eefc101d86..a82a2afa6c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithThrownExceptions.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithThrownExceptions.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTokenRange.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTokenRange.java index b32693b61a..e4f465b4b9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTokenRange.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTokenRange.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTraversableScope.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTraversableScope.java index 97cc3fd241..1bc2d37cb5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTraversableScope.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTraversableScope.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithType.java index 82bc93dff6..9e89fe02d1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTypeArguments.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTypeArguments.java index bd9472b841..10b7445039 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTypeArguments.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTypeArguments.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTypeParameters.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTypeParameters.java index d874ded167..b6f0b125d7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTypeParameters.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithTypeParameters.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithVariables.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithVariables.java index c1b9d2d187..00aec9ce37 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithVariables.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithVariables.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/SwitchNode.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/SwitchNode.java index 309a31ba68..ac688875e0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/SwitchNode.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/SwitchNode.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithAbstractModifier.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithAbstractModifier.java index a3d21e6ee4..93ff4f9e39 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithAbstractModifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithAbstractModifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithAccessModifiers.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithAccessModifiers.java index 7a9a770d96..9cb8923e41 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithAccessModifiers.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithAccessModifiers.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithFinalModifier.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithFinalModifier.java index 07deaf4915..78744d3e1e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithFinalModifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithFinalModifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithPrivateModifier.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithPrivateModifier.java index f83c5047d0..fb841e9cf6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithPrivateModifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithPrivateModifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithProtectedModifier.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithProtectedModifier.java index 2c8cac9084..9424c0aa17 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithProtectedModifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithProtectedModifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithPublicModifier.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithPublicModifier.java index 9ac921d199..a52b1405c7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithPublicModifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithPublicModifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithStaticModifier.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithStaticModifier.java index 6fad69c9e5..409a18936e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithStaticModifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithStaticModifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithStrictfpModifier.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithStrictfpModifier.java index ab1fba085d..3a3bf1fd3a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithStrictfpModifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/modifiers/NodeWithStrictfpModifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/AstObserver.java b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/AstObserver.java index b225cb138b..637796b768 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/AstObserver.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/AstObserver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -64,7 +64,7 @@ enum ListChangeType { * @param index position at which the changed occurred * @param nodeAddedOrRemoved element added or removed */ - void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved); + void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved); - void listReplacement(NodeList observedNode, int index, Node oldNode, Node newNode); + void listReplacement(NodeList observedNode, int index, Node oldNode, Node newNode); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/AstObserverAdapter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/AstObserverAdapter.java index e1926d41f5..0e14b51148 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/AstObserverAdapter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/AstObserverAdapter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -37,12 +37,12 @@ public void parentChange(Node observedNode, Node previousParent, Node newParent) } @Override - public void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { + public void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { // do nothing } @Override - public void listReplacement(NodeList observedNode, int index, Node oldNode, Node newNode) { + public void listReplacement(NodeList observedNode, int index, Node oldNode, Node newNode) { // do nothing } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/Observable.java b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/Observable.java index eb7e261f34..0148df7f3e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/Observable.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/Observable.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/ObservableProperty.java b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/ObservableProperty.java index 9b7efdd010..7e9cb89816 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/ObservableProperty.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/ObservableProperty.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/PropagatingAstObserver.java b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/PropagatingAstObserver.java index f659be8083..5cd335be09 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/PropagatingAstObserver.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/PropagatingAstObserver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -44,7 +44,7 @@ public void concretePropertyChange(Node observedNode, ObservableProperty propert } @Override - public void concreteListChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { + public void concreteListChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { observer.listChange(observedNode, type, index, nodeAddedOrRemoved); } @@ -63,7 +63,7 @@ public final void propertyChange(Node observedNode, ObservableProperty property, } @Override - public final void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { + public final void listChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { if (type == ListChangeType.REMOVAL) { considerRemoving(nodeAddedOrRemoved); } else if (type == ListChangeType.ADDITION) { @@ -73,7 +73,7 @@ public final void listChange(NodeList observedNode, ListChangeType type, int ind } @Override - public void listReplacement(NodeList observedNode, int index, Node oldNode, Node newNode) { + public void listReplacement(NodeList observedNode, int index, Node oldNode, Node newNode) { if (oldNode == newNode) { return; } @@ -86,11 +86,11 @@ public void concretePropertyChange(Node observedNode, ObservableProperty propert // do nothing } - public void concreteListChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { + public void concreteListChange(NodeList observedNode, ListChangeType type, int index, Node nodeAddedOrRemoved) { // do nothing } - public void concreteListReplacement(NodeList observedNode, int index, Node oldValue, Node newValue) { + public void concreteListReplacement(NodeList observedNode, int index, Node oldValue, Node newValue) { // do nothing } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java index 445c976529..aa3ad666e1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java index bff3b57d03..f571f9be60 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java index fd60122aa2..74915752f2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/CatchClause.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/CatchClause.java index 1d0d33b154..f4ca93ada3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/CatchClause.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/CatchClause.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java index b6635067da..2972ebb472 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java index d3ed829cc2..41600f5636 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java index db0d2fd214..cc8b0cc3cf 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java index 56d742be43..cb8fb17352 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java index 499fc8952c..6705bd56a3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForEachStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForEachStmt.java index 9d61364b0a..a2bd217150 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForEachStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForEachStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java index c7423e24db..d854c631f5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java index 94b0b94010..e7cf65fc7a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java index 48ff360964..a7c88c7021 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java index 4fb799eedd..a2051e50e6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java index 2be5ff98bd..ffa4394ef8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java index 822a8699de..e20fdc08be 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntry.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntry.java index db3e606017..a9779703a7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntry.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntry.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java index 81d0331986..07935724e1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java index dbbe057db0..a6e4a11c4d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java index 10ae5d6380..2f5baa6445 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java index f381663cd3..4d6401596b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -247,11 +247,6 @@ public TryStmt removeFinallyBlock() { return setFinallyBlock((BlockStmt) null); } - @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator") - public TryStmt removeTryBlock() { - return setTryBlock((BlockStmt) null); - } - @Override @Generated("com.github.javaparser.generator.core.node.CloneGenerator") public TryStmt clone() { diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/UnparsableStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/UnparsableStmt.java index 1344cbf4e0..eb189f069a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/UnparsableStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/UnparsableStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * 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.TokenRange; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java index a190f8db8f..f3efcc3980 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/YieldStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/YieldStmt.java index 8758fba0ff..cc3218b459 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/YieldStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/YieldStmt.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * 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.TokenRange; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java index 761cd61077..15afc5884f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java index 98ef78a4dd..2d5d032033 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java index f0f0a4029f..68154f7eb5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java index 3f7f31f038..dc05ce488f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java index ba40f00cca..41df1d9a1d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java index 810d021ad5..f3d53d31a4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java index a20e38c651..20366499be 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java index d9a3c382fb..8dd05b57bf 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java index 4dafcad43f..8b4e83f60d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/VarType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/VarType.java index d14e381f6e..505391de9a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/VarType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/VarType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java index 50a3a87241..60f5ae24f4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java index 96fad085b4..aa8909170a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java10Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java10Validator.java index e38f28b0b5..9fd8403b45 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java10Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java10Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java11Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java11Validator.java index bc670c4a30..062a414137 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java11Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java11Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java12Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java12Validator.java index 9bf6647a8b..16f95ad52e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java12Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java12Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java13Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java13Validator.java index 1f58f35a31..2c8965eacd 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java13Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java13Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java14Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java14Validator.java index 87c93a1b31..da889ca35c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java14Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java14Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_0Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_0Validator.java index d3db16b2a8..df11576a4d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_0Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_0Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_1Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_1Validator.java index 098c2b2582..a01b8ab70f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_1Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_1Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_2Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_2Validator.java index b1b7c84375..fa852bae67 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_2Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_2Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_3Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_3Validator.java index fb9c345262..e5ea49cd9e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_3Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_3Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_4Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_4Validator.java index fff2c6b149..42195fb52e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_4Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java1_4Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java5Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java5Validator.java index dd97b0569b..fc1914ada3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java5Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java5Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java6Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java6Validator.java index 797776a0f8..871f0008e4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java6Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java6Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java7Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java7Validator.java index 477cd2dfff..6794115f73 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java7Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java7Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java8Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java8Validator.java index f8e9bb4d2e..42a028e07c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java8Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java8Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java9Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java9Validator.java index e00185c1cd..fbbcd79d9e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java9Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java9Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/ProblemReporter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/ProblemReporter.java index bff5779f8d..15f3a6b604 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/ProblemReporter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/ProblemReporter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/ReservedKeywordValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/ReservedKeywordValidator.java index fb632360cc..16d25a059d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/ReservedKeywordValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/ReservedKeywordValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/SimpleValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/SimpleValidator.java index de19488774..cab40ae284 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/SimpleValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/SimpleValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/SingleNodeTypeValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/SingleNodeTypeValidator.java index 4be2ec8ce7..da83649a27 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/SingleNodeTypeValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/SingleNodeTypeValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/TreeVisitorValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/TreeVisitorValidator.java index a40b170817..443240b1b7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/TreeVisitorValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/TreeVisitorValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/TypedValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/TypedValidator.java index 0a738c4224..f903ce73c5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/TypedValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/TypedValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Validator.java index 3999b7cd29..f108dfdc95 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Validator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Validator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Validators.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Validators.java index 06953941a0..e2dc370197 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Validators.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Validators.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/VisitorValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/VisitorValidator.java index 9cfd2a7ede..823276fa6d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/VisitorValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/VisitorValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/CommonValidators.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/CommonValidators.java index f49439a812..6eb7eed3c9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/CommonValidators.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/CommonValidators.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -75,7 +75,7 @@ public CommonValidators() { for (PropertyMetaModel ppm : mm.getAllPropertyMetaModels()) { if (ppm.isNonEmpty()) { if (ppm.isNodeList()) { - NodeList value = (NodeList) ppm.getValue(node); + NodeList value = (NodeList) ppm.getValue(node); if (value.isEmpty()) { problemReporter.report(node, "%s.%s can not be empty.", mm.getTypeName(), ppm.getName()); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/ModifierValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/ModifierValidator.java index 5ab41b5fc1..42e105d187 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/ModifierValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/ModifierValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/NoBinaryIntegerLiteralsValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/NoBinaryIntegerLiteralsValidator.java index a8e4c7b973..b678323f82 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/NoBinaryIntegerLiteralsValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/NoBinaryIntegerLiteralsValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/NoUnderscoresInIntegerLiteralsValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/NoUnderscoresInIntegerLiteralsValidator.java index 74a93c4cc9..37956849f2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/NoUnderscoresInIntegerLiteralsValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/NoUnderscoresInIntegerLiteralsValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/UnderscoreKeywordValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/UnderscoreKeywordValidator.java index 3767d0a5b8..21fab7023e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/UnderscoreKeywordValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/UnderscoreKeywordValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/VarValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/VarValidator.java index 963def81f9..2d12471da9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/VarValidator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/chunks/VarValidator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java index 4a10ffdaa6..a5ec0492ca 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java index a41a5ab801..7d8b61b125 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java index 98e82bff39..00511f66bb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitor.java index a861dfd9d3..6a5d550bb5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java index c29c453954..09106a2da9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorWithDefaults.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorWithDefaults.java index ec3f0fc6d1..a7c2f30f1c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorWithDefaults.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorWithDefaults.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java index 4701ee359e..30d66ac713 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java index 98b2bedbee..bbd545cd4e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java index 0f12586b8b..ef1eb1b899 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java index ad91fec67f..d7e6692902 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ObjectIdentityEqualsVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ObjectIdentityEqualsVisitor.java index 08e0312138..caa4a398a8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ObjectIdentityEqualsVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ObjectIdentityEqualsVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ObjectIdentityHashCodeVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ObjectIdentityHashCodeVisitor.java index 8780306e2e..284c88f42c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ObjectIdentityHashCodeVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ObjectIdentityHashCodeVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java index 15590d401d..e19ef78343 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/Visitable.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/Visitable.java index 2b076dbbb1..23d173332a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/Visitable.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/Visitable.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitor.java index ffa20c1793..090877c1a0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java index a6d47f2a5f..9db83f45b1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorWithDefaults.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorWithDefaults.java index a3370b8386..c4f40dd9be 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorWithDefaults.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorWithDefaults.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/javadoc/Javadoc.java b/javaparser-core/src/main/java/com/github/javaparser/javadoc/Javadoc.java index 87fb14ed8c..d80b6a3122 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/javadoc/Javadoc.java +++ b/javaparser-core/src/main/java/com/github/javaparser/javadoc/Javadoc.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/javadoc/JavadocBlockTag.java b/javaparser-core/src/main/java/com/github/javaparser/javadoc/JavadocBlockTag.java index 0142f2b8fd..dd465a50f7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/javadoc/JavadocBlockTag.java +++ b/javaparser-core/src/main/java/com/github/javaparser/javadoc/JavadocBlockTag.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocDescription.java b/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocDescription.java index 4f404f1372..6a65e5436c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocDescription.java +++ b/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocDescription.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocDescriptionElement.java b/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocDescriptionElement.java index c52f254635..b32a179c3c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocDescriptionElement.java +++ b/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocDescriptionElement.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocInlineTag.java b/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocInlineTag.java index 17dbfba6ee..5ebbfc9f2b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocInlineTag.java +++ b/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocInlineTag.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocSnippet.java b/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocSnippet.java index 85065266d3..8b4c545f04 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocSnippet.java +++ b/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocSnippet.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationDeclarationMetaModel.java index dde4e03923..4efaa85a44 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationExprMetaModel.java index ec0d9b53d4..4f728a7697 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationMemberDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationMemberDeclarationMetaModel.java index 8fa157a9fa..4ff55656f6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationMemberDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/AnnotationMemberDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayAccessExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayAccessExprMetaModel.java index 8da1f6e546..0f9b2ed920 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayAccessExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayAccessExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayCreationExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayCreationExprMetaModel.java index 626654b126..fa584b8ba3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayCreationExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayCreationExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayCreationLevelMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayCreationLevelMetaModel.java index 53c58911a6..c64285d4ae 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayCreationLevelMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayCreationLevelMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayInitializerExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayInitializerExprMetaModel.java index c4e68c32d8..ffd99d8995 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayInitializerExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayInitializerExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayTypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayTypeMetaModel.java index 80fb7c8471..2071cfb3c6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayTypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ArrayTypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/AssertStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/AssertStmtMetaModel.java index 9d90de7eb0..c628effd05 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/AssertStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/AssertStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/AssignExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/AssignExprMetaModel.java index d92ca84013..1065cb473d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/AssignExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/AssignExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BaseNodeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BaseNodeMetaModel.java index 20fc0365e7..b0db4131a3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BaseNodeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BaseNodeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BinaryExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BinaryExprMetaModel.java index 36d581aa30..78cf654c39 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BinaryExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BinaryExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BlockCommentMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BlockCommentMetaModel.java index 58875daa4c..0e89d21eb5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BlockCommentMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BlockCommentMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BlockStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BlockStmtMetaModel.java index bd0a0706d2..cc492159e9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BlockStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BlockStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BodyDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BodyDeclarationMetaModel.java index db8a34aa7b..8406bdcba0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BodyDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BodyDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BooleanLiteralExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BooleanLiteralExprMetaModel.java index a0b073a8f1..d431279aae 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BooleanLiteralExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BooleanLiteralExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BreakStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BreakStmtMetaModel.java index 5a2e79b20f..982054b366 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/BreakStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/BreakStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CallableDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CallableDeclarationMetaModel.java index 6d2a86460b..5d19122beb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CallableDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CallableDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CastExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CastExprMetaModel.java index f848e63460..fcb65b0555 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CastExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CastExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CatchClauseMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CatchClauseMetaModel.java index 073930254c..357f328c5f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CatchClauseMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CatchClauseMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CharLiteralExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CharLiteralExprMetaModel.java index 4b558bba5f..fccd866cc7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CharLiteralExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CharLiteralExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassExprMetaModel.java index 705053222e..f4aa5f09c4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassOrInterfaceDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassOrInterfaceDeclarationMetaModel.java index 17f632907c..ebe68c58da 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassOrInterfaceDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassOrInterfaceDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassOrInterfaceTypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassOrInterfaceTypeMetaModel.java index a6725e8768..5803c4ba9d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassOrInterfaceTypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ClassOrInterfaceTypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CommentMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CommentMetaModel.java index 7d7e8d1cfc..11a633bb1b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CommentMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CommentMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CompilationUnitMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CompilationUnitMetaModel.java index 9657ac7199..49d9828caf 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CompilationUnitMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CompilationUnitMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ConditionalExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ConditionalExprMetaModel.java index 7bfdc8a805..f306dfeeec 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ConditionalExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ConditionalExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ConstructorDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ConstructorDeclarationMetaModel.java index 8c1b36c9aa..1509932ee8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ConstructorDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ConstructorDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ContinueStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ContinueStmtMetaModel.java index 7f8a98ac00..ce4753ba28 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ContinueStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ContinueStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/DerivedProperty.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/DerivedProperty.java index 5c3f350d4d..98c90a1553 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/DerivedProperty.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/DerivedProperty.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/DoStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/DoStmtMetaModel.java index b7f289d4bc..1508d190f7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/DoStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/DoStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/DoubleLiteralExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/DoubleLiteralExprMetaModel.java index 56e7a24419..5f0b439298 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/DoubleLiteralExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/DoubleLiteralExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/EmptyStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/EmptyStmtMetaModel.java index ae894c6b10..0e2d75006e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/EmptyStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/EmptyStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnclosedExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnclosedExprMetaModel.java index 9a85d15e32..e41a138cd8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnclosedExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnclosedExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnumConstantDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnumConstantDeclarationMetaModel.java index 9123bc0a3b..3d142d68a7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnumConstantDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnumConstantDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnumDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnumDeclarationMetaModel.java index 929333b406..4df37fadb0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnumDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/EnumDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExplicitConstructorInvocationStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExplicitConstructorInvocationStmtMetaModel.java index 4abceae56c..2e25b4dbd4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExplicitConstructorInvocationStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExplicitConstructorInvocationStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExpressionMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExpressionMetaModel.java index eba4d45c03..e7a116a690 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExpressionMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExpressionMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExpressionStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExpressionStmtMetaModel.java index 0c22ae6d4a..6138b92dcf 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExpressionStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ExpressionStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/FieldAccessExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/FieldAccessExprMetaModel.java index 4e661cce45..8fc0dc5fa2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/FieldAccessExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/FieldAccessExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/FieldDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/FieldDeclarationMetaModel.java index d5a2310c20..e1736dcf59 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/FieldDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/FieldDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ForEachStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ForEachStmtMetaModel.java index eb0754d696..4dfecb403c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ForEachStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ForEachStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ForStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ForStmtMetaModel.java index 022eb12d10..c100df887c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ForStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ForStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/IfStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/IfStmtMetaModel.java index bb25641ff3..a606b73bc3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/IfStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/IfStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ImportDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ImportDeclarationMetaModel.java index 9a6091cabf..456788416c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ImportDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ImportDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/InitializerDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/InitializerDeclarationMetaModel.java index 42a9bda078..678bf47bfa 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/InitializerDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/InitializerDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/InstanceOfExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/InstanceOfExprMetaModel.java index ef1beba923..6fc688372d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/InstanceOfExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/InstanceOfExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/IntegerLiteralExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/IntegerLiteralExprMetaModel.java index 40af10d86e..1b3447a4d9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/IntegerLiteralExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/IntegerLiteralExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/InternalProperty.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/InternalProperty.java index 6340a0ea26..d33af4fe7d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/InternalProperty.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/InternalProperty.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/IntersectionTypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/IntersectionTypeMetaModel.java index 116b268258..c727325c1b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/IntersectionTypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/IntersectionTypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java index 0da877583d..8213b81776 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.ArrayList; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavadocCommentMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavadocCommentMetaModel.java index c9f30b31a1..b7046705f2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavadocCommentMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavadocCommentMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LabeledStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LabeledStmtMetaModel.java index 92e1a9a679..b60202b7dc 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LabeledStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LabeledStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LambdaExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LambdaExprMetaModel.java index e482fbcafc..98c9048dc0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LambdaExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LambdaExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LineCommentMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LineCommentMetaModel.java index 0638346140..eead947b74 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LineCommentMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LineCommentMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LiteralExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LiteralExprMetaModel.java index 8584401bcb..ebfa5db1c0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LiteralExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LiteralExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LiteralStringValueExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LiteralStringValueExprMetaModel.java index fc390c894d..966d8595cc 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LiteralStringValueExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LiteralStringValueExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LocalClassDeclarationStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LocalClassDeclarationStmtMetaModel.java index af12c0846c..aaf48d1ed6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LocalClassDeclarationStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LocalClassDeclarationStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LongLiteralExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LongLiteralExprMetaModel.java index 3c06e44e1e..4644d01f3c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/LongLiteralExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/LongLiteralExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MarkerAnnotationExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MarkerAnnotationExprMetaModel.java index 3e0dcf9d00..8e3a84b4e6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MarkerAnnotationExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MarkerAnnotationExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MemberValuePairMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MemberValuePairMetaModel.java index e2522766ac..f8cc47ce63 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MemberValuePairMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MemberValuePairMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodCallExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodCallExprMetaModel.java index 1f1023a033..fec4786610 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodCallExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodCallExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodDeclarationMetaModel.java index d5a5fbdead..29a819a7c9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodReferenceExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodReferenceExprMetaModel.java index d327b5106f..a22a28d7a3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodReferenceExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodReferenceExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModifierMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModifierMetaModel.java index f46764dbb5..4f21587482 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModifierMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModifierMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleDeclarationMetaModel.java index 652a6ef246..f241d2f478 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleDirectiveMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleDirectiveMetaModel.java index 886bfa0110..e545b0bedd 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleDirectiveMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleDirectiveMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleExportsDirectiveMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleExportsDirectiveMetaModel.java index db7ddb0134..ab1c01aa35 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleExportsDirectiveMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleExportsDirectiveMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleOpensDirectiveMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleOpensDirectiveMetaModel.java index 41b27b13c2..981a69f735 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleOpensDirectiveMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleOpensDirectiveMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleProvidesDirectiveMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleProvidesDirectiveMetaModel.java index 0d3fe8a6a4..9d91d99934 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleProvidesDirectiveMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleProvidesDirectiveMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleRequiresDirectiveMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleRequiresDirectiveMetaModel.java index 7771fa264e..22b220768f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleRequiresDirectiveMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleRequiresDirectiveMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleUsesDirectiveMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleUsesDirectiveMetaModel.java index c2f9db7a82..5018ba327e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleUsesDirectiveMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleUsesDirectiveMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NameExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NameExprMetaModel.java index 52ac6bb9ba..91ec623ba3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NameExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NameExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NameMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NameMetaModel.java index 9d2b4c05db..170e33b193 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NameMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NameMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NodeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NodeMetaModel.java index 894b51bbf3..d149d74043 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NodeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NodeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NonEmptyProperty.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NonEmptyProperty.java index 16e05f87ad..9ad79ee8da 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NonEmptyProperty.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NonEmptyProperty.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NormalAnnotationExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NormalAnnotationExprMetaModel.java index 9aa37945ec..ff355e152d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NormalAnnotationExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NormalAnnotationExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NullLiteralExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NullLiteralExprMetaModel.java index 7c514fba98..e6dc1a2028 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/NullLiteralExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/NullLiteralExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ObjectCreationExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ObjectCreationExprMetaModel.java index bd90689efe..a26b89cfb1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ObjectCreationExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ObjectCreationExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/OptionalProperty.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/OptionalProperty.java index 3a25ff2978..b107e2afc2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/OptionalProperty.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/OptionalProperty.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/PackageDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/PackageDeclarationMetaModel.java index 0be55a37ba..308d61c5c8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/PackageDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/PackageDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ParameterMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ParameterMetaModel.java index c0cb48c299..b87f4728e2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ParameterMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ParameterMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/PrimitiveTypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/PrimitiveTypeMetaModel.java index 6e33240042..1c88fcc90a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/PrimitiveTypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/PrimitiveTypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/PropertyMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/PropertyMetaModel.java index 6da1f61792..659d7e3203 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/PropertyMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/PropertyMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReceiverParameterMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReceiverParameterMetaModel.java index 9f9e3d0d07..c1cb6b077c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReceiverParameterMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReceiverParameterMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReferenceTypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReferenceTypeMetaModel.java index dd2effbc2f..132fc43253 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReferenceTypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReferenceTypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReturnStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReturnStmtMetaModel.java index e4acc04b4f..98d1044a7f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReturnStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ReturnStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SimpleNameMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SimpleNameMetaModel.java index 23fa82f4f1..b88b1c19df 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SimpleNameMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SimpleNameMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SingleMemberAnnotationExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SingleMemberAnnotationExprMetaModel.java index 32b7c36c8b..1d0ae70344 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SingleMemberAnnotationExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SingleMemberAnnotationExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/StatementMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/StatementMetaModel.java index 3380ff5264..da0099c8aa 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/StatementMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/StatementMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/StringLiteralExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/StringLiteralExprMetaModel.java index 814167b81f..9951dd8eec 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/StringLiteralExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/StringLiteralExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SuperExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SuperExprMetaModel.java index 8868fd48af..8d987c08f1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SuperExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SuperExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchEntryMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchEntryMetaModel.java index 45fee566f9..f4e98a5703 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchEntryMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchEntryMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchExprMetaModel.java index 4fb7c8c481..7ca859bb98 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchStmtMetaModel.java index af373256af..1a16c12163 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SwitchStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SynchronizedStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SynchronizedStmtMetaModel.java index 539ef6c2b4..4db20139ed 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/SynchronizedStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/SynchronizedStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TextBlockLiteralExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TextBlockLiteralExprMetaModel.java index 537e130286..466339af6a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TextBlockLiteralExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TextBlockLiteralExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ThisExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ThisExprMetaModel.java index 5d4374063e..04e1331a3a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ThisExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ThisExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ThrowStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ThrowStmtMetaModel.java index 1341f019b3..21b87d10b5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ThrowStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ThrowStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TryStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TryStmtMetaModel.java index 91a75a88c7..56526e2972 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TryStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TryStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeDeclarationMetaModel.java index 9a6057162b..4dfd95a41c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeDeclarationMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeExprMetaModel.java index 4dbeb93e18..aa074d3bdc 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeMetaModel.java index 00b6cd319b..8f97736304 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeParameterMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeParameterMetaModel.java index a7dd2ae740..caa5e64ecd 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeParameterMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypeParameterMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnaryExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnaryExprMetaModel.java index 019c2c46f3..1bce061fa3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnaryExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnaryExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnionTypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnionTypeMetaModel.java index ba42941194..3a023f059e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnionTypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnionTypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnknownTypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnknownTypeMetaModel.java index f4707f8427..3989b2c6be 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnknownTypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnknownTypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnparsableStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnparsableStmtMetaModel.java index b2f2b7d0c1..a15581c653 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnparsableStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/UnparsableStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/VarTypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/VarTypeMetaModel.java index 6d3685078a..00c2ae5bd6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/VarTypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/VarTypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/VariableDeclarationExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/VariableDeclarationExprMetaModel.java index adc8698bdd..8aa40f23df 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/VariableDeclarationExprMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/VariableDeclarationExprMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/VariableDeclaratorMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/VariableDeclaratorMetaModel.java index e7c1fb276b..9f7f2e00cf 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/VariableDeclaratorMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/VariableDeclaratorMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/VoidTypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/VoidTypeMetaModel.java index fc1e3ba7b8..0fd4549020 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/VoidTypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/VoidTypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/WhileStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/WhileStmtMetaModel.java index f2ab8c49a1..05c248a0d6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/WhileStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/WhileStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/WildcardTypeMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/WildcardTypeMetaModel.java index f71a0f9227..637d052546 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/WildcardTypeMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/WildcardTypeMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/YieldStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/YieldStmtMetaModel.java index 511c59933b..3f08361c3c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/YieldStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/YieldStmtMetaModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -18,7 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - package com.github.javaparser.metamodel; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java b/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java index 497bf9e2e2..4aab00e980 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/DotPrinter.java b/javaparser-core/src/main/java/com/github/javaparser/printer/DotPrinter.java index 73e63add18..49beeaa313 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/DotPrinter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/DotPrinter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java index 023b8ecfad..9efc0e5e52 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -613,20 +613,34 @@ public void visit(final AssignExpr n, final Void arg) { printOrphanCommentsBeforeThisChildNode(n); printComment(n.getComment(), arg); n.getTarget().accept(this, arg); - printer.print(" "); + if (configuration.isSpaceAroundOperators()) { + printer.print(" "); + } printer.print(n.getOperator().asString()); - printer.print(" "); + if (configuration.isSpaceAroundOperators()) { + printer.print(" "); + } n.getValue().accept(this, arg); } + + + /** + * work in progress for issue-545 + */ + @Override public void visit(final BinaryExpr n, final Void arg) { printOrphanCommentsBeforeThisChildNode(n); printComment(n.getComment(), arg); n.getLeft().accept(this, arg); - printer.print(" "); + if (configuration.isSpaceAroundOperators()) { + printer.print(" "); + } printer.print(n.getOperator().asString()); - printer.print(" "); + if (configuration.isSpaceAroundOperators()) { + printer.print(" "); + } n.getRight().accept(this, arg); } @@ -1164,11 +1178,11 @@ private void printSwitchNode(SwitchNode n, Void arg) { n.getSelector().accept(this, arg); printer.println(") {"); if (n.getEntries() != null) { - printer.indent(); + indentIf(configuration.isIndentCaseInSwitch()); for (final SwitchEntry e : n.getEntries()) { e.accept(this, arg); } - printer.unindent(); + unindentIf(configuration.isIndentCaseInSwitch()); } printer.print("}"); } @@ -1804,5 +1818,12 @@ private void printOrphanCommentsEnding(final Node node) { everything.get(everything.size() - commentsAtEnd + i).accept(this, null); } } - + private void indentIf(boolean expr){ + if(expr) + printer.indent(); + } + private void unindentIf(boolean expr){ + if(expr) + printer.unindent(); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinter.java b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinter.java index 67383b7d7f..28b80ce90b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinterConfiguration.java b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinterConfiguration.java index b7a0ae2fcd..400a8c246c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinterConfiguration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinterConfiguration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -76,8 +76,19 @@ public enum IndentType { private boolean orderImports = false; private boolean printComments = true; private boolean printJavadoc = true; + private boolean spaceAroundOperators = true; private boolean columnAlignParameters = false; private boolean columnAlignFirstMethodChain = false; + /** + * Indent the case when it is true, don't if false + * switch(x) { switch(x) { + * case 1: case 1: + * return y; return y; + * case 2: case 2: + * return z; return x; + *} } + */ + private boolean indentCaseInSwitch = true; private IndentType indentType = SPACES; private int tabWidth = 4; private int indentSize = 4; @@ -137,6 +148,8 @@ public PrettyPrinterConfiguration setIndentType(IndentType indentType) { return this; } + + /** * Get the tab width for pretty aligning. */ @@ -163,6 +176,8 @@ public boolean isPrintComments() { public boolean isIgnoreComments() { return !printComments; } + + public boolean isSpaceAroundOperators() { return spaceAroundOperators; } public boolean isPrintJavadoc() { return printJavadoc; @@ -172,10 +187,13 @@ public boolean isColumnAlignParameters() { return columnAlignParameters; } - public boolean isColumnAlignFirstMethodChain() { - return columnAlignFirstMethodChain; + public boolean isColumnAlignFirstMethodChain() { return columnAlignFirstMethodChain; } + + public boolean isIndentCaseInSwitch() { + return indentCaseInSwitch; } + /** * When true, all comments will be printed, unless printJavadoc is false, then only line and block comments will be * printed. @@ -193,6 +211,14 @@ public PrettyPrinterConfiguration setPrintJavadoc(boolean printJavadoc) { return this; } + /** + * Set if there should be spaces between operators + */ + public PrettyPrinterConfiguration setSpaceAroundOperators(boolean spaceAroundOperators){ + this.spaceAroundOperators = spaceAroundOperators; + return this; + } + public PrettyPrinterConfiguration setColumnAlignParameters(boolean columnAlignParameters) { this.columnAlignParameters = columnAlignParameters; return this; @@ -203,6 +229,11 @@ public PrettyPrinterConfiguration setColumnAlignFirstMethodChain(boolean columnA return this; } + public PrettyPrinterConfiguration setIndentCaseInSwitch(boolean indentInSwitch) { + this.indentCaseInSwitch = indentInSwitch; + return this; + } + public Function> getVisitorFactory() { return visitorFactory; } @@ -236,6 +267,8 @@ public PrettyPrinterConfiguration setOrderImports(boolean orderImports) { return this; } + + public int getMaxEnumConstantsToAlignHorizontally() { return maxEnumConstantsToAlignHorizontally; } diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/Printable.java b/javaparser-core/src/main/java/com/github/javaparser/printer/Printable.java index 082a6fc2cc..8a795cd3f5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/Printable.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/Printable.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/SourcePrinter.java b/javaparser-core/src/main/java/com/github/javaparser/printer/SourcePrinter.java index de53fb49f6..c153ebbaeb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/SourcePrinter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/SourcePrinter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/XmlPrinter.java b/javaparser-core/src/main/java/com/github/javaparser/printer/XmlPrinter.java index e196c449f0..7c9bc5455e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/XmlPrinter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/XmlPrinter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/YamlPrinter.java b/javaparser-core/src/main/java/com/github/javaparser/printer/YamlPrinter.java index 1127501cab..1375e81e61 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/YamlPrinter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/YamlPrinter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmAttribute.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmAttribute.java index 613800b106..daafd13c00 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmAttribute.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmAttribute.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmChar.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmChar.java index d6e4e98eaf..059c3cc9ec 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmChar.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmChar.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmComment.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmComment.java index 6bb4f16695..dbc6cc9231 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmComment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmComment.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmConditional.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmConditional.java index e014ff3c23..4e4b0afb2e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmConditional.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmConditional.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -72,11 +72,11 @@ boolean evaluate(Node node, ObservableProperty property){ return property.getValueAsBooleanAttribute(node); } if (this == IS_EMPTY) { - NodeList value = property.getValueAsMultipleReference(node); + NodeList value = property.getValueAsMultipleReference(node); return value == null || value.isEmpty(); } if (this == IS_NOT_EMPTY) { - NodeList value = property.getValueAsMultipleReference(node); + NodeList value = property.getValueAsMultipleReference(node); return value != null && !value.isEmpty(); } throw new UnsupportedOperationException(name()); diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmElement.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmElement.java index c5f3c13c63..c26f8b00ad 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmElement.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmElement.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmIndent.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmIndent.java index 6d2a5169cc..9170730d21 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmIndent.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmIndent.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmList.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmList.java index a976c5be7d..30a49983f2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmList.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmList.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -8,7 +8,7 @@ * 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 + * 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. @@ -76,7 +76,7 @@ public CsmList(ObservableProperty property, CsmElement separatorPre, CsmElement @Override public void prettyPrint(Node node, SourcePrinter printer) { if (property.isAboutNodes()) { - NodeList nodeList = property.getValueAsMultipleReference(node); + NodeList nodeList = property.getValueAsMultipleReference(node); if (nodeList == null) { return; } @@ -103,7 +103,7 @@ public void prettyPrint(Node node, SourcePrinter printer) { if (!values.isEmpty() && preceeding != null) { preceeding.prettyPrint(node, printer); } - for (Iterator it = values.iterator(); it.hasNext(); ) { + for (Iterator it = values.iterator(); it.hasNext(); ) { if (separatorPre != null && it.hasNext()) { separatorPre.prettyPrint(node, printer); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmMix.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmMix.java index 6b60f437c5..5418e7c6ed 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmMix.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmMix.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmNone.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmNone.java index bb9d0e66a5..5bb932f42d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmNone.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmNone.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmOrphanCommentsEnding.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmOrphanCommentsEnding.java index f7b0f782db..2144c3bff7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmOrphanCommentsEnding.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmOrphanCommentsEnding.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmSequence.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmSequence.java index b532f837ee..a9bb3300d0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmSequence.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmSequence.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmSingleReference.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmSingleReference.java index e84421e0df..a92f003384 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmSingleReference.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmSingleReference.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmString.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmString.java index 1903b960b8..2b66ffcec4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmString.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmString.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmTextBlock.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmTextBlock.java index e4f3719c94..72ab8cb348 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmTextBlock.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmTextBlock.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmToken.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmToken.java index af286e69e3..b261b6757a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmToken.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmToken.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmUnindent.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmUnindent.java index a262aa860b..0234eb156a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmUnindent.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmUnindent.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/PrintingHelper.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/PrintingHelper.java index 8f7b80d9ca..ed08c9d210 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/PrintingHelper.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/PrintingHelper.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Added.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Added.java index 32cabde664..3b321de77c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Added.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Added.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/ChildTextElement.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/ChildTextElement.java index ddf6d8889f..737b9e0bee 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/ChildTextElement.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/ChildTextElement.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Difference.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Difference.java index afda859c63..378dbdcec1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Difference.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Difference.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -466,6 +466,8 @@ private void cleanTheLineOfLeftOverSpace(RemovedGroup removedGroup, Removed remo private void applyKeptDiffElement(Kept kept, TextElement originalElement, boolean originalElementIsChild, boolean originalElementIsToken) { if (originalElement.isComment()) { originalIndex++; + } else if (kept.isChild() && ((CsmChild)kept.getElement()).getChild() instanceof Comment ) { + diffIndex++; } else if (kept.isChild() && originalElementIsChild) { diffIndex++; originalIndex++; diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/DifferenceElement.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/DifferenceElement.java index 8c87f68b08..8d68a3ea82 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/DifferenceElement.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/DifferenceElement.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/DifferenceElementCalculator.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/DifferenceElementCalculator.java index 0f78f7daa0..c479b2f8a9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/DifferenceElementCalculator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/DifferenceElementCalculator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Kept.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Kept.java index 5f15e9bafd..0f8dfae4e9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Kept.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Kept.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/LexicalDifferenceCalculator.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/LexicalDifferenceCalculator.java index 3988c2b4b1..9cc2e2aa55 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/LexicalDifferenceCalculator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/LexicalDifferenceCalculator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -108,7 +108,7 @@ public int hashCode() { } } - List calculateListRemovalDifference(ObservableProperty observableProperty, NodeList nodeList, int index) { + List calculateListRemovalDifference(ObservableProperty observableProperty, NodeList nodeList, int index) { Node container = nodeList.getParentNodeForChildren(); CsmElement element = ConcreteSyntaxModel.forClass(container.getClass()); CalculatedSyntaxModel original = calculatedSyntaxModelForNode(element, container); @@ -116,7 +116,7 @@ List calculateListRemovalDifference(ObservableProperty observ return DifferenceElementCalculator.calculate(original, after); } - List calculateListAdditionDifference(ObservableProperty observableProperty, NodeList nodeList, int index, Node nodeAdded) { + List calculateListAdditionDifference(ObservableProperty observableProperty, NodeList nodeList, int index, Node nodeAdded) { Node container = nodeList.getParentNodeForChildren(); CsmElement element = ConcreteSyntaxModel.forClass(container.getClass()); CalculatedSyntaxModel original = calculatedSyntaxModelForNode(element, container); @@ -124,7 +124,7 @@ List calculateListAdditionDifference(ObservableProperty obser return DifferenceElementCalculator.calculate(original, after); } - List calculateListReplacementDifference(ObservableProperty observableProperty, NodeList nodeList, int index, Node newValue) { + List calculateListReplacementDifference(ObservableProperty observableProperty, NodeList nodeList, int index, Node newValue) { Node container = nodeList.getParentNodeForChildren(); CsmElement element = ConcreteSyntaxModel.forClass(container.getClass()); CalculatedSyntaxModel original = calculatedSyntaxModelForNode(element, container); @@ -195,22 +195,22 @@ private void calculatedSyntaxModelForNode(CsmElement csm, Node node, List nodeList; if (rawValue instanceof Optional) { - Optional optional = (Optional)rawValue; + Optional optional = (Optional)rawValue; if (optional.isPresent()) { if (!(optional.get() instanceof NodeList)) { throw new IllegalStateException("Expected NodeList, found " + optional.get().getClass().getCanonicalName()); } - nodeList = (NodeList) optional.get(); + nodeList = (NodeList) optional.get(); } else { - nodeList = new NodeList(); + nodeList = new NodeList<>(); } } else { if (!(rawValue instanceof NodeList)) { throw new IllegalStateException("Expected NodeList, found " + rawValue.getClass().getCanonicalName()); } - nodeList = (NodeList) rawValue; + nodeList = (NodeList) rawValue; } if (!nodeList.isEmpty()) { calculatedSyntaxModelForNode(csmList.getPreceeding(), node, elements, change); @@ -227,12 +227,12 @@ private void calculatedSyntaxModelForNode(CsmElement csm, Node node, List collection = (Collection) change.getValue(csmList.getProperty(), node); if (!collection.isEmpty()) { calculatedSyntaxModelForNode(csmList.getPreceeding(), node, elements, change); boolean first = true; - for (Iterator it = collection.iterator(); it.hasNext(); ) { + for (Iterator it = collection.iterator(); it.hasNext(); ) { if (!first) { calculatedSyntaxModelForNode(csmList.getSeparatorPre(), node, elements, change); } @@ -334,7 +334,7 @@ CalculatedSyntaxModel calculatedSyntaxModelAfterPropertyChange(CsmElement csm, N } // Visible for testing - CalculatedSyntaxModel calculatedSyntaxModelAfterListRemoval(CsmElement csm, ObservableProperty observableProperty, NodeList nodeList, int index) { + CalculatedSyntaxModel calculatedSyntaxModelAfterListRemoval(CsmElement csm, ObservableProperty observableProperty, NodeList nodeList, int index) { List elements = new LinkedList<>(); Node container = nodeList.getParentNodeForChildren(); calculatedSyntaxModelForNode(csm, container, elements, new ListRemovalChange(observableProperty, index)); @@ -342,7 +342,7 @@ CalculatedSyntaxModel calculatedSyntaxModelAfterListRemoval(CsmElement csm, Obse } // Visible for testing - CalculatedSyntaxModel calculatedSyntaxModelAfterListAddition(CsmElement csm, ObservableProperty observableProperty, NodeList nodeList, int index, Node nodeAdded) { + CalculatedSyntaxModel calculatedSyntaxModelAfterListAddition(CsmElement csm, ObservableProperty observableProperty, NodeList nodeList, int index, Node nodeAdded) { List elements = new LinkedList<>(); Node container = nodeList.getParentNodeForChildren(); calculatedSyntaxModelForNode(csm, container, elements, new ListAdditionChange(observableProperty, index, nodeAdded)); @@ -356,7 +356,7 @@ CalculatedSyntaxModel calculatedSyntaxModelAfterListAddition(Node container, Obs if (!(rawValue instanceof NodeList)) { throw new IllegalStateException("Expected NodeList, found " + rawValue.getClass().getCanonicalName()); } - NodeList nodeList = (NodeList)rawValue; + NodeList nodeList = (NodeList)rawValue; return calculatedSyntaxModelAfterListAddition(csm, observableProperty, nodeList, index, nodeAdded); } @@ -367,12 +367,12 @@ CalculatedSyntaxModel calculatedSyntaxModelAfterListRemoval(Node container, Obse if (!(rawValue instanceof NodeList)) { throw new IllegalStateException("Expected NodeList, found " + rawValue.getClass().getCanonicalName()); } - NodeList nodeList = (NodeList)rawValue; + NodeList nodeList = (NodeList)rawValue; return calculatedSyntaxModelAfterListRemoval(csm, observableProperty, nodeList, index); } // Visible for testing - private CalculatedSyntaxModel calculatedSyntaxModelAfterListReplacement(CsmElement csm, ObservableProperty observableProperty, NodeList nodeList, int index, Node newValue) { + private CalculatedSyntaxModel calculatedSyntaxModelAfterListReplacement(CsmElement csm, ObservableProperty observableProperty, NodeList nodeList, int index, Node newValue) { List elements = new LinkedList<>(); Node container = nodeList.getParentNodeForChildren(); calculatedSyntaxModelForNode(csm, container, elements, new ListReplacementChange(observableProperty, index, newValue)); diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/LexicalPreservingPrinter.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/LexicalPreservingPrinter.java index b38e33165a..876bafd846 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/LexicalPreservingPrinter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/LexicalPreservingPrinter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -56,6 +56,7 @@ import static com.github.javaparser.utils.Utils.assertNotNull; import static com.github.javaparser.utils.Utils.decapitalize; import static java.util.Comparator.*; +import static java.util.stream.Collectors.*; /** * A Lexical Preserving Printer is used to capture all the lexical information while parsing, update them when @@ -93,14 +94,14 @@ public class LexicalPreservingPrinter { public static N setup(N node) { assertNotNull(node); - if(observer == null) { + if (observer == null) { observer = createObserver(); } node.getTokenRange().ifPresent(r -> { storeInitialText(node); // Setup observer - if(!node.isRegistered(observer)) { + if (!node.isRegistered(observer)) { node.registerForSubtree(observer); } }); @@ -116,37 +117,40 @@ private static AstObserver createObserver() { } private static class Observer extends PropagatingAstObserver { + @Override public void concretePropertyChange(Node observedNode, ObservableProperty property, Object oldValue, Object newValue) { - // Not really a change, ignoring - if ((oldValue != null && oldValue.equals(newValue)) || (oldValue == null && newValue == null)) { + if (oldValue == newValue) { + // Not really a change, ignore return; } if (property == ObservableProperty.RANGE || property == ObservableProperty.COMMENTED_NODE) { return; } if (property == ObservableProperty.COMMENT) { - if (!observedNode.getParentNode().isPresent()) { - throw new IllegalStateException(); - } - - NodeText nodeText = getOrCreateNodeText(observedNode.getParentNode().get()); - - if (oldValue == null) { - // Find the position of the comment node and put in front of it the comment and a newline - int index = nodeText.findChild(observedNode); + Optional parentNode = observedNode.getParentNode(); + NodeText nodeText = parentNode + .map(parent -> getOrCreateNodeText(parentNode.get())) + // We're at the root node. + .orElse(getOrCreateNodeText(observedNode)); + if (oldValue == null) { + int index = parentNode.isPresent() ? + // Find the position of the comment node and put in front of it the [...] + nodeText.findChild(observedNode) : + // + 0; // Add the same indent depth of the comment to the following node fixIndentOfMovedNode(nodeText, index); - nodeText.addChild(index, (Comment) newValue); + nodeText.addElement(index, makeCommentToken((Comment) newValue)); nodeText.addToken(index + 1, eolTokenKind(), Utils.EOL); } else if (newValue == null) { if (oldValue instanceof Comment) { - if (((Comment) oldValue).isOrphan()){ + if (((Comment) oldValue).isOrphan()) { nodeText = getOrCreateNodeText(observedNode); } - int index = getIndexOfComment ((Comment) oldValue, nodeText); + int index = getIndexOfComment((Comment) oldValue, nodeText); nodeText.removeElement(index); if (nodeText.getElements().get(index).isNewline()) { nodeText.removeElement(index); @@ -155,19 +159,15 @@ public void concretePropertyChange(Node observedNode, ObservableProperty propert throw new UnsupportedOperationException(); } } else { - if (oldValue instanceof JavadocComment) { - List matchingTokens = findTokenTextElementForComment((JavadocComment) oldValue, nodeText); + List matchingTokens = findTokenTextElementForComment((Comment) oldValue, nodeText); - if (matchingTokens.size() != 1) { - throw new IllegalStateException("The matching comment to be replaced could not be found"); - } - - JavadocComment newJavadocComment = (JavadocComment) newValue; - TokenTextElement matchingElement = matchingTokens.get(0); - nodeText.replace(matchingElement.and(matchingElement.matchByRange()), new TokenTextElement(JAVADOC_COMMENT, "/**" + newJavadocComment.getContent() + "*/")); - } else { - throw new UnsupportedOperationException(); + if (matchingTokens.size() != 1) { + throw new IllegalStateException("The matching comment to be replaced could not be found"); } + + Comment newComment = (Comment) newValue; + TokenTextElement matchingElement = matchingTokens.get(0); + nodeText.replace(matchingElement.and(matchingElement.matchByRange()), makeCommentToken(newComment)); } } NodeText nodeText = getOrCreateNodeText(observedNode); @@ -178,78 +178,88 @@ public void concretePropertyChange(Node observedNode, ObservableProperty propert LEXICAL_DIFFERENCE_CALCULATOR.calculatePropertyChange(nodeText, observedNode, property, oldValue, newValue); } - - private int getIndexOfComment (Comment oldValue, NodeText nodeText) { - int index; - List matchingTokens = findTokenTextElementForComment((Comment) oldValue, nodeText); - - if (!matchingTokens.isEmpty()){ + + private TokenTextElement makeCommentToken(Comment newComment) { + if (newComment.isJavadocComment()) { + return new TokenTextElement(JAVADOC_COMMENT, "/**" + newComment.getContent() + "*/"); + } + if (newComment.isLineComment()) { + return new TokenTextElement(SINGLE_LINE_COMMENT, "//" + newComment.getContent()); + } + if (newComment.isBlockComment()) { + return new TokenTextElement(MULTI_LINE_COMMENT, "/*" + newComment.getContent() + "*/"); + } + throw new UnsupportedOperationException("Unknown type of comment: " + newComment.getClass().getSimpleName()); + + } + + private int getIndexOfComment(Comment oldValue, NodeText nodeText) { + List matchingTokens = findTokenTextElementForComment(oldValue, nodeText); + + if (!matchingTokens.isEmpty()) { TextElement matchingElement = matchingTokens.get(0); - index = nodeText.findElement(matchingElement.and(matchingElement.matchByRange())); - } else { - // If no matching TokenTextElements were found, we try searching through ChildTextElements as well - List matchingChilds = findChildTextElementForComment (oldValue, nodeText); - ChildTextElement matchingChild = matchingChilds.get(0); - index = nodeText.findElement(matchingChild.and(matchingChild.matchByRange())); + return nodeText.findElement(matchingElement.and(matchingElement.matchByRange())); } - - return index; + // If no matching TokenTextElements were found, we try searching through ChildTextElements as well + List matchingChilds = findChildTextElementForComment(oldValue, nodeText); + ChildTextElement matchingChild = matchingChilds.get(0); + return nodeText.findElement(matchingChild.and(matchingChild.matchByRange())); } - - private List findChildTextElementForComment (Comment oldValue, NodeText nodeText) { + + private List findChildTextElementForComment(Comment oldValue, NodeText nodeText) { List matchingChildElements; - + matchingChildElements = nodeText.getElements().stream() .filter(e -> e.isChild()) .map(c -> (ChildTextElement) c) .filter(c -> c.isComment()) - .filter(c -> ((Comment)c.getChild()).getContent().equals(oldValue.getContent())) - .collect(Collectors.toList()); - - if (matchingChildElements.size() > 1) { + .filter(c -> ((Comment) c.getChild()).getContent().equals(oldValue.getContent())) + .collect(toList()); + + if (matchingChildElements.size() > 1) { // Duplicate child nodes found, refine the result matchingChildElements = matchingChildElements.stream() - .filter(t -> isEqualRange(t.getChild().getRange(), oldValue.getRange())) - .collect(Collectors.toList()); + .filter(t -> isEqualRange(t.getChild().getRange(), oldValue.getRange())) + .collect(toList()); } - + if (matchingChildElements.size() != 1) { throw new IllegalStateException("The matching child text element for the comment to be removed could not be found."); } - + return matchingChildElements; } private List findTokenTextElementForComment(Comment oldValue, NodeText nodeText) { List matchingTokens; - + if (oldValue instanceof JavadocComment) { matchingTokens = nodeText.getElements().stream() - .filter(e -> e.isToken(JAVADOC_COMMENT)) - .map(e -> (TokenTextElement) e) - .filter(t -> t.getText().equals("/**" + oldValue.getContent() + "*/")) - .collect(Collectors.toList()); + .filter(e -> e.isToken(JAVADOC_COMMENT)) + .map(e -> (TokenTextElement) e) + .filter(t -> t.getText().equals("/**" + oldValue.getContent() + "*/")) + .collect(toList()); } else if (oldValue instanceof BlockComment) { matchingTokens = nodeText.getElements().stream() - .filter(e -> e.isToken(MULTI_LINE_COMMENT)) - .map(e -> (TokenTextElement) e) - .filter(t -> t.getText().equals("/*" + oldValue.getContent() + "*/")) - .collect(Collectors.toList()); + .filter(e -> e.isToken(MULTI_LINE_COMMENT)) + .map(e -> (TokenTextElement) e) + .filter(t -> t.getText().equals("/*" + oldValue.getContent() + "*/")) + .collect(toList()); } else { matchingTokens = nodeText.getElements().stream() - .filter(e -> e.isToken(SINGLE_LINE_COMMENT)) - .map(e -> (TokenTextElement) e) - .filter(t -> t.getText().trim().equals(("//" + oldValue.getContent()).trim())) - .collect(Collectors.toList()); + .filter(e -> e.isToken(SINGLE_LINE_COMMENT)) + .map(e -> (TokenTextElement) e) + .filter(t -> t.getText().trim().equals(("//" + oldValue.getContent()).trim())) + .collect(toList()); } if (matchingTokens.size() > 1) { // Duplicate comments found, refine the result matchingTokens = matchingTokens.stream() .filter(t -> isEqualRange(t.getToken().getRange(), oldValue.getRange())) - .collect(Collectors.toList()); + .collect(toList()); } - + return matchingTokens; } @@ -264,11 +274,12 @@ private boolean isEqualRange(Optional range1, Optional range2) { /** * This method inserts new space tokens at the given {@code index}. If a new comment is added to the node * at the position of {@code index}, the new comment and the node will have the same indent. + * * @param nodeText The text of the node - * @param index The position where a new comment will be added to + * @param index The position where a new comment will be added to */ private void fixIndentOfMovedNode(NodeText nodeText, int index) { - if(index <= 0) { + if (index <= 0) { return; } @@ -286,7 +297,7 @@ private void fixIndentOfMovedNode(NodeText nodeText, int index) { } @Override - public void concreteListChange(NodeList changedList, AstObserver.ListChangeType type, int index, Node nodeAddedOrRemoved) { + public void concreteListChange(NodeList changedList, ListChangeType type, int index, Node nodeAddedOrRemoved) { NodeText nodeText = getOrCreateNodeText(changedList.getParentNodeForChildren()); final List differenceElements; if (type == AstObserver.ListChangeType.REMOVAL) { @@ -302,7 +313,7 @@ public void concreteListChange(NodeList changedList, AstObserver.ListChangeType } @Override - public void concreteListReplacement(NodeList changedList, int index, Node oldValue, Node newValue) { + public void concreteListReplacement(NodeList changedList, int index, Node oldValue, Node newValue) { NodeText nodeText = getOrCreateNodeText(changedList.getParentNodeForChildren()); List differenceElements = LEXICAL_DIFFERENCE_CALCULATOR.calculateListReplacementDifference(findNodeListName(changedList), changedList, index, newValue); @@ -374,7 +385,7 @@ private static void storeInitialTextForOneNode(Node node, List nodeTo elements.add(new Pair<>(token.getRange().get(), new TokenTextElement(token))); } elements.sort(comparing(e -> e.a.begin)); - node.setData(NODE_TEXT_DATA, new NodeText(elements.stream().map(p -> p.b).collect(Collectors.toList()))); + node.setData(NODE_TEXT_DATA, new NodeText(elements.stream().map(p -> p.b).collect(toList()))); } // @@ -483,7 +494,7 @@ private static void prettyPrintingTextNode(Node node, NodeText nodeText) { return; } if (node instanceof Modifier) { - Modifier modifier = (Modifier)node; + Modifier modifier = (Modifier) node; nodeText.addToken(LexicalDifferenceCalculator.toToken(modifier), modifier.getKeyword().asString()); return; } @@ -503,7 +514,7 @@ private static NodeText interpret(Node node, CsmElement csm, NodeText nodeText) for (CsmElement element : calculatedSyntaxModel.elements) { if (element instanceof CsmIndent) { int indexCurrentElement = calculatedSyntaxModel.elements.indexOf(element); - if(calculatedSyntaxModel.elements.size() > indexCurrentElement && + if (calculatedSyntaxModel.elements.size() > indexCurrentElement && !(calculatedSyntaxModel.elements.get(indexCurrentElement + 1) instanceof CsmUnindent)) { for (int i = 0; i < Difference.STANDARD_INDENTATION_SIZE; i++) { indentation.add(new TokenTextElement(SPACE, " ")); @@ -534,7 +545,7 @@ private static NodeText interpret(Node node, CsmElement csm, NodeText nodeText) } else { // Indentation should probably be dealt with before because an indentation has effects also on the // following lines - if(!(element instanceof CsmIndent) && !(element instanceof CsmUnindent)) { + if (!(element instanceof CsmIndent) && !(element instanceof CsmUnindent)) { throw new UnsupportedOperationException(element.getClass().getSimpleName()); } } @@ -604,7 +615,7 @@ private static boolean isReturningOptionalNodeList(Method m) { return (optionalArgument.getTypeName().startsWith(NodeList.class.getCanonicalName())); } - private static ObservableProperty findNodeListName(NodeList nodeList) { + private static ObservableProperty findNodeListName(NodeList nodeList) { Node parent = nodeList.getParentNodeForChildren(); for (Method m : parent.getClass().getMethods()) { if (m.getParameterCount() == 0 && m.getReturnType().getCanonicalName().equals(NodeList.class.getCanonicalName())) { @@ -613,7 +624,7 @@ private static ObservableProperty findNodeListName(NodeList nodeList) { if (!(raw instanceof NodeList)) { throw new IllegalStateException("Expected NodeList, found " + raw.getClass().getCanonicalName()); } - NodeList result = (NodeList) raw; + NodeList result = (NodeList) raw; if (result == nodeList) { String name = m.getName(); if (name.startsWith("get")) { diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/NodeText.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/NodeText.java index c53bd71155..5c20e9e49b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/NodeText.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/NodeText.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -21,12 +21,10 @@ package com.github.javaparser.printer.lexicalpreservation; -import com.github.javaparser.GeneratedJavaParserConstants; import com.github.javaparser.ast.Node; import java.util.LinkedList; import java.util.List; -import java.util.stream.Collectors; /** * This contains the lexical information for a single node. @@ -37,12 +35,6 @@ class NodeText { public static final int NOT_FOUND = -1; - enum Option { - REMOVE_SPACE_IMMEDIATELY_AFTER, - EXCLUDE_START, - EXCLUDE_END - } - // // Constructors // @@ -104,15 +96,13 @@ int findElement(TextElementMatcher matcher, int from) { int res = tryToFindElement(matcher, from); if (res == NOT_FOUND) { throw new IllegalArgumentException( - String.format("I could not find child '%s' from position %d. Elements: %s", - matcher, from, elements)); - } else { - return res; + String.format("I could not find child '%s' from position %d. Elements: %s", matcher, from, elements)); } + return res; } int tryToFindElement(TextElementMatcher matcher, int from) { - for (int i=from; i { - Optional range1 = this.getRange(); - Optional range2 = textElement.getRange(); - if (range1.isPresent() && range2.isPresent()) { - return range1.get().equals(range2.get()); - } - - return false; - }; + return (TextElement textElement) -> + getRange() + .flatMap(r1 -> textElement.getRange() + .map(r1::equals)) + // We're missing range information. This may happen when a node is manually instantiated. Don't be too harsh on that: + .orElse(true); } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementIteratorsFactory.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementIteratorsFactory.java index 35f93b35d1..59fa9921d8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementIteratorsFactory.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementIteratorsFactory.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementMatcher.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementMatcher.java index e0e36e560b..adb12a5c05 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementMatcher.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementMatcher.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementMatchers.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementMatchers.java index d9679e8334..7e07371f9c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementMatchers.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TextElementMatchers.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TokenTextElement.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TokenTextElement.java index 9c457535a9..750338918d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TokenTextElement.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/TokenTextElement.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/WrappingRangeIterator.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/WrappingRangeIterator.java index cd2a40c729..24e3b415f1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/WrappingRangeIterator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/WrappingRangeIterator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/Change.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/Change.java index 8ea0200eda..12e2ee8762 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/Change.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/Change.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -27,7 +27,7 @@ import com.github.javaparser.utils.Utils; /** - * This represent a change happened to a specific Node. + * This represents a change that has happened to a specific Node. */ public interface Change { diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListAdditionChange.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListAdditionChange.java index 8d542a465b..63a0249832 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListAdditionChange.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListAdditionChange.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -25,10 +25,13 @@ import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.observer.ObservableProperty; +import java.util.Optional; + /** * The Addition of an element to a list. */ public class ListAdditionChange implements Change { + private final ObservableProperty observableProperty; private final int index; private final Node nodeAdded; @@ -42,16 +45,25 @@ public ListAdditionChange(ObservableProperty observableProperty, int index, Node @Override public Object getValue(ObservableProperty property, Node node) { if (property == observableProperty) { - NodeList nodeList = new NodeList<>(); - nodeList.setParentNode(node); Object currentRawValue = new NoChange().getValue(property, node); - if (!(currentRawValue instanceof NodeList)){ + if (currentRawValue instanceof Optional) { + Optional optional = (Optional) currentRawValue; + currentRawValue = optional.orElseGet(null); + } + if (!(currentRawValue instanceof NodeList)) { throw new IllegalStateException("Expected NodeList, found " + currentRawValue.getClass().getCanonicalName()); } - NodeList currentNodeList = (NodeList)(currentRawValue); - nodeList.addAll(currentNodeList); - nodeList.add(index, nodeAdded); - return nodeList; + NodeList currentNodeList = (NodeList) currentRawValue; + + // Note: When adding to a node list children get assigned the list's parent, thus we must set the list's parent before adding children (#2592). + NodeList newNodeList = new NodeList<>(); + newNodeList.setParentNode(currentNodeList.getParentNodeForChildren()); + newNodeList.addAll(currentNodeList); + + // Perform modification -- add to the list + newNodeList.add(index, nodeAdded); + + return newNodeList; } else { return new NoChange().getValue(property, node); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListRemovalChange.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListRemovalChange.java index 716340826f..26f19af227 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListRemovalChange.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListRemovalChange.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -25,10 +25,13 @@ import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.observer.ObservableProperty; +import java.util.Optional; + /** - * The removal of an element in a list. + * The removal of an element from a list. */ public class ListRemovalChange implements Change { + private final ObservableProperty observableProperty; private final int index; @@ -40,17 +43,25 @@ public ListRemovalChange(ObservableProperty observableProperty, int index) { @Override public Object getValue(ObservableProperty property, Node node) { if (property == observableProperty) { - NodeList nodeList = new NodeList<>(); Object currentRawValue = new NoChange().getValue(property, node); - if (!(currentRawValue instanceof NodeList)){ + if (currentRawValue instanceof Optional) { + Optional optional = (Optional) currentRawValue; + currentRawValue = optional.orElseGet(null); + } + if (!(currentRawValue instanceof NodeList)) { throw new IllegalStateException("Expected NodeList, found " + currentRawValue.getClass().getCanonicalName()); } - NodeList currentNodeList = (NodeList)currentRawValue; - // fix #2187 set the parent node in the new list - nodeList.setParentNode(node); - nodeList.addAll(currentNodeList); - nodeList.remove(index); - return nodeList; + NodeList currentNodeList = (NodeList) currentRawValue; + + // Note: When adding to a node list children get assigned the list's parent, thus we must set the list's parent before adding children (#2592). + NodeList newNodeList = new NodeList<>(); + newNodeList.setParentNode(currentNodeList.getParentNodeForChildren()); // fix #2187 set the parent node in the new list + newNodeList.addAll(currentNodeList); + + // Perform modification -- remove an item from the list + newNodeList.remove(index); + + return newNodeList; } else { return new NoChange().getValue(property, node); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListReplacementChange.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListReplacementChange.java index 29d45250cd..b84c3cefc6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListReplacementChange.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/ListReplacementChange.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -31,6 +31,7 @@ * The replacement of an element in a list. */ public class ListReplacementChange implements Change { + private final ObservableProperty observableProperty; private final int index; private final Node newValue; @@ -44,19 +45,25 @@ public ListReplacementChange(ObservableProperty observableProperty, int index, N @Override public Object getValue(ObservableProperty property, Node node) { if (property == observableProperty) { - NodeList nodeList = new NodeList(); Object currentRawValue = new NoChange().getValue(property, node); if (currentRawValue instanceof Optional) { - Optional optional = (Optional)currentRawValue; + Optional optional = (Optional) currentRawValue; currentRawValue = optional.orElseGet(null); } - if (!(currentRawValue instanceof NodeList)){ + if (!(currentRawValue instanceof NodeList)) { throw new IllegalStateException("Expected NodeList, found " + currentRawValue.getClass().getCanonicalName()); } - NodeList currentNodeList = (NodeList)currentRawValue; - nodeList.addAll(currentNodeList); - nodeList.set(index, newValue); - return nodeList; + NodeList currentNodeList = (NodeList) currentRawValue; + + // Note: When adding to a node list children get assigned the list's parent, thus we must set the list's parent before adding children (#2592). + NodeList newNodeList = new NodeList<>(); + newNodeList.setParentNode(currentNodeList.getParentNodeForChildren()); + newNodeList.addAll(currentNodeList); + + // Perform modification -- replace an item in the list + newNodeList.set(index, newValue); + + return newNodeList; } else { return new NoChange().getValue(property, node); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/NoChange.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/NoChange.java index eef9caab78..ef0336af9d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/NoChange.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/NoChange.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/PropertyChange.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/PropertyChange.java index 1eec6c3891..4b10893cf5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/PropertyChange.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/changes/PropertyChange.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -28,10 +28,17 @@ * The change in value of a property. */ public class PropertyChange implements Change { + private final ObservableProperty property; private final Object oldValue; private final Object newValue; + public PropertyChange(ObservableProperty property, Object oldValue, Object newValue) { + this.property = property; + this.oldValue = oldValue; + this.newValue = newValue; + } + public ObservableProperty getProperty() { return property; } @@ -44,12 +51,6 @@ public Object getNewValue() { return newValue; } - public PropertyChange(ObservableProperty property, Object oldValue, Object newValue) { - this.property = property; - this.oldValue = oldValue; - this.newValue = newValue; - } - @Override public Object getValue(ObservableProperty property, Node node) { if (property == this.property) { diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/MethodAmbiguityException.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/MethodAmbiguityException.java index 3fd54fc06a..025ad44e75 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/MethodAmbiguityException.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/MethodAmbiguityException.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/MethodUsage.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/MethodUsage.java index 388f2c0ec3..4e0456efa4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/MethodUsage.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/MethodUsage.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/Resolvable.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/Resolvable.java index 8a681959d0..3ab14c955b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/Resolvable.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/Resolvable.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/SymbolResolver.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/SymbolResolver.java index 783d191679..ee77248581 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/SymbolResolver.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/SymbolResolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/UnsolvedSymbolException.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/UnsolvedSymbolException.java index 2d473d1861..b42c504fa8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/UnsolvedSymbolException.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/UnsolvedSymbolException.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/AssociableToAST.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/AssociableToAST.java index a9c92149e3..f71d9a2236 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/AssociableToAST.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/AssociableToAST.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/HasAccessSpecifier.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/HasAccessSpecifier.java index ce8fd0fe0f..8cb38c41ce 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/HasAccessSpecifier.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/HasAccessSpecifier.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedAnnotationDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedAnnotationDeclaration.java index f91ad3286c..8d6c55d1f7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedAnnotationDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedAnnotationDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedAnnotationMemberDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedAnnotationMemberDeclaration.java index 706d967e0d..1e30f166ac 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedAnnotationMemberDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedAnnotationMemberDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedClassDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedClassDeclaration.java index e9488bbba4..029caa78c2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedClassDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedClassDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedConstructorDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedConstructorDeclaration.java index 984608c1cc..5959f1f835 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedConstructorDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedConstructorDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedDeclaration.java index 27c7c7ef74..b651e573e2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedEnumConstantDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedEnumConstantDeclaration.java index f76f41ef10..ac474c602a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedEnumConstantDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedEnumConstantDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedEnumDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedEnumDeclaration.java index 6af8af7efd..4c5e0be0d9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedEnumDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedEnumDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedFieldDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedFieldDeclaration.java index 87db07c2be..c38ea3faae 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedFieldDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedFieldDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedInterfaceDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedInterfaceDeclaration.java index f8b78dbceb..5cc22165d9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedInterfaceDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedInterfaceDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedMethodDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedMethodDeclaration.java index 8dbd83ecd7..3fc3d801b7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedMethodDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedMethodDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedMethodLikeDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedMethodLikeDeclaration.java index bc8aa8384f..86c5398875 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedMethodLikeDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedMethodLikeDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedParameterDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedParameterDeclaration.java index efaa2e6a05..9d44bc4e0d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedParameterDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedParameterDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedReferenceTypeDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedReferenceTypeDeclaration.java index 4820ec6321..ea74bb9785 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedReferenceTypeDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedReferenceTypeDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeDeclaration.java index a58c6de8eb..15f5a17a1f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeParameterDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeParameterDeclaration.java index f4f0855703..099b3ffe6f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeParameterDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeParameterDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeParametrizable.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeParametrizable.java index 959fe7c00b..9b44acecd2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeParametrizable.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedTypeParametrizable.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedValueDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedValueDeclaration.java index 5bc0a3bb52..69fb33709c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedValueDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/declarations/ResolvedValueDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedArrayType.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedArrayType.java index 52969cd9d0..661b2299ef 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedArrayType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedArrayType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedIntersectionType.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedIntersectionType.java index fe4623a996..b4425658f2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedIntersectionType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedIntersectionType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedLambdaConstraintType.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedLambdaConstraintType.java index edb720a547..7de9616d38 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedLambdaConstraintType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedLambdaConstraintType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedPrimitiveType.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedPrimitiveType.java index 71fb298d52..465ad32965 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedPrimitiveType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedPrimitiveType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedReferenceType.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedReferenceType.java index cbb93efc20..77d4b3b9b9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedReferenceType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedReferenceType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedType.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedType.java index 55b13ba74e..e16b641d99 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedTypeTransformer.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedTypeTransformer.java index 8fbcea5043..68d6d7719d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedTypeTransformer.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedTypeTransformer.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedTypeVariable.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedTypeVariable.java index 96b0f25bab..3eae604197 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedTypeVariable.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedTypeVariable.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedUnionType.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedUnionType.java index cb8640fada..68098b3cd9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedUnionType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedUnionType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedVoidType.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedVoidType.java index 07fe53e44e..f7989c48fc 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedVoidType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedVoidType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedWildcard.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedWildcard.java index 5036936a94..16e2b19aed 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedWildcard.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/ResolvedWildcard.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParameterValueProvider.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParameterValueProvider.java index 2af873c606..c84b3e17bb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParameterValueProvider.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParameterValueProvider.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParametersMap.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParametersMap.java index be90a73fe7..249c40be24 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParametersMap.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParametersMap.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParametrized.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParametrized.java index eb0c9f961d..ec05f7fe73 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParametrized.java +++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/types/parametrization/ResolvedTypeParametrized.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/ClassUtils.java b/javaparser-core/src/main/java/com/github/javaparser/utils/ClassUtils.java index a95fb33432..0dd222a049 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/ClassUtils.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/ClassUtils.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/CodeGenerationUtils.java b/javaparser-core/src/main/java/com/github/javaparser/utils/CodeGenerationUtils.java index 89ea529104..6d7ffd52c3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/CodeGenerationUtils.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/CodeGenerationUtils.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/CollectionStrategy.java b/javaparser-core/src/main/java/com/github/javaparser/utils/CollectionStrategy.java index 494bbc2f53..c24ac14f8f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/CollectionStrategy.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/CollectionStrategy.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/Log.java b/javaparser-core/src/main/java/com/github/javaparser/utils/Log.java index b4165dc526..67062f4061 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/Log.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/Log.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/Pair.java b/javaparser-core/src/main/java/com/github/javaparser/utils/Pair.java index c7d1c79c34..26e10a16e7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/Pair.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/Pair.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/ParserCollectionStrategy.java b/javaparser-core/src/main/java/com/github/javaparser/utils/ParserCollectionStrategy.java index c452d08bba..2a20f70a9a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/ParserCollectionStrategy.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/ParserCollectionStrategy.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/PositionUtils.java b/javaparser-core/src/main/java/com/github/javaparser/utils/PositionUtils.java index 411e9ede13..840b357a3b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/PositionUtils.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/PositionUtils.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -23,6 +23,7 @@ import com.github.javaparser.Position; import com.github.javaparser.Range; +import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; @@ -30,9 +31,8 @@ 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.NodeWithType; -import com.github.javaparser.ast.type.Type; +import java.util.Comparator; import java.util.List; import static java.lang.Integer.signum; @@ -64,10 +64,10 @@ public static boolean areInOrder(Node a, Node b, boolean ignoringAnnotations) { } private static int compare(Node a, Node b, boolean ignoringAnnotations) { - if(a.getRange().isPresent() && !b.getRange().isPresent()) { + if (a.getRange().isPresent() && !b.getRange().isPresent()) { return -1; } - if(!a.getRange().isPresent() && b.getRange().isPresent()) { + if (!a.getRange().isPresent() && b.getRange().isPresent()) { return 1; } if (!a.getRange().isPresent() && !b.getRange().isPresent()) { @@ -107,47 +107,110 @@ public static AnnotationExpr getLastAnnotation(Node node) { } private static int beginLineWithoutConsideringAnnotation(Node node) { - return beginNodeWithoutConsideringAnnotations(node).getRange().get().begin.line; + return firstNonAnnotationNode(node).getRange().get().begin.line; } private static int beginColumnWithoutConsideringAnnotation(Node node) { - return beginNodeWithoutConsideringAnnotations(node).getRange().get().begin.column; + return firstNonAnnotationNode(node).getRange().get().begin.column; } - private static Node beginNodeWithoutConsideringAnnotations(Node node) { - if (node instanceof MethodDeclaration || node instanceof FieldDeclaration) { - NodeWithType casted = (NodeWithType) node; - return casted.getType(); - } else if (node instanceof ClassOrInterfaceDeclaration) { + private static Node firstNonAnnotationNode(Node node) { + // TODO: Consider the remaining "types" of thing that annotations can target ( https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html ) + if (node instanceof ClassOrInterfaceDeclaration) { + // Modifiers appear before the class name -- ClassOrInterfaceDeclaration casted = (ClassOrInterfaceDeclaration) node; - return casted.getName(); + Modifier earliestModifier = casted.getModifiers() + .stream() + .filter(modifier -> modifier.getRange().isPresent()) + .min(Comparator.comparing(o -> o.getRange().get().begin)) + .orElse(null); + if (earliestModifier == null) { + return casted.getName(); + } else { + return earliestModifier; + } + } else if (node instanceof MethodDeclaration) { + // Modifiers appear before the class name -- + MethodDeclaration casted = (MethodDeclaration) node; + Modifier earliestModifier = casted.getModifiers() + .stream() + .filter(modifier -> modifier.getRange().isPresent()) + .min(Comparator.comparing(o -> o.getRange().get().begin)) + .orElse(null); + if (earliestModifier == null) { + return casted.getType(); + } else { + return earliestModifier; + } + } else if (node instanceof FieldDeclaration) { + // Modifiers appear before the class name -- + FieldDeclaration casted = (FieldDeclaration) node; + Modifier earliestModifier = casted.getModifiers() + .stream() + .filter(modifier -> modifier.getRange().isPresent()) + .min(Comparator.comparing(o -> o.getRange().get().begin)) + .orElse(null); + if (earliestModifier == null) { + return casted.getVariable(0).getType(); + } else { + return earliestModifier; + } } else { return node; } } - public static boolean nodeContains(Node container, Node contained, boolean ignoringAnnotations) { - final Range containedRange = contained.getRange().get(); - final Range containerRange = container.getRange().get(); + + /** + * Compare the position of two nodes. Optionally include annotations within the range checks. + * This method takes into account whether the nodes are within the same compilation unit. + *

+ * Note that this performs a "strict contains", where the container must extend beyond the other node in both + * directions (otherwise it would count as an overlap, rather than "contain"). + *

+ * If `ignoringAnnotations` is false, annotations on the container are ignored. For this reason, where + * `container == other`, the raw `other` may extend beyond the sans-annotations `container` thus return false. + */ + public static boolean nodeContains(Node container, Node other, boolean ignoringAnnotations) { + if (!container.getRange().isPresent()) { + throw new IllegalArgumentException("Cannot compare the positions of nodes if container node does not have a range."); + } + if (!other.getRange().isPresent()) { + throw new IllegalArgumentException("Cannot compare the positions of nodes if contained node does not have a range."); + } + +// // FIXME: Not all nodes seem to have the compilation unit available? +// if (!Objects.equals(container.findCompilationUnit(), other.findCompilationUnit())) { +// // Allow the check to complete if they are both within a known CU (i.e. the CUs are the same), +// // ... or both not within a CU (i.e. both are Optional.empty()) +// return false; +// } + + final boolean nodeCanHaveAnnotations = container instanceof NodeWithAnnotations; +// final boolean hasAnnotations = PositionUtils.getLastAnnotation(container) != null; if (!ignoringAnnotations || PositionUtils.getLastAnnotation(container) == null) { - return container.containsWithinRange(contained); + // No special consideration required - perform simple range check. + return container.containsWithinRange(other); } - if (!container.containsWithinRange(contained)) { + + if (!container.containsWithinRange(other)) { 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 > containedRange.begin.line) return false; - if (bl == containedRange.begin.line && bc > containedRange.begin.column) return false; - if (containerRange.end.line < containedRange.end.line) return false; - // TODO < or <= ? - return !(containerRange.end.line == containedRange.end.line && containerRange.end.column < containedRange.end.column); + + if (!nodeCanHaveAnnotations) { + return true; } - return true; + + // If the node is contained, but it comes immediately after the annotations, + // let's not consider it contained (i.e. it must be "strictly contained"). + Node nodeWithoutAnnotations = firstNonAnnotationNode(container); + Range rangeWithoutAnnotations = container.getRange().get() + .withBegin(nodeWithoutAnnotations.getBegin().get()); + return rangeWithoutAnnotations +// .contains(other.getRange().get()); + .strictlyContains(other.getRange().get()); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/ProjectRoot.java b/javaparser-core/src/main/java/com/github/javaparser/utils/ProjectRoot.java index 9d859be6b1..3982cd12df 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/ProjectRoot.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/ProjectRoot.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/SeparatedItemStringBuilder.java b/javaparser-core/src/main/java/com/github/javaparser/utils/SeparatedItemStringBuilder.java index d0e2bc0437..341182ab6b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/SeparatedItemStringBuilder.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/SeparatedItemStringBuilder.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/SourceRoot.java b/javaparser-core/src/main/java/com/github/javaparser/utils/SourceRoot.java index 013c264357..3a0224b02f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/SourceRoot.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/SourceRoot.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/SourceZip.java b/javaparser-core/src/main/java/com/github/javaparser/utils/SourceZip.java index 32ffbe2fe7..0156d11757 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/SourceZip.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/SourceZip.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/StringEscapeUtils.java b/javaparser-core/src/main/java/com/github/javaparser/utils/StringEscapeUtils.java index 1eb65c3ae6..113612edd2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/StringEscapeUtils.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/StringEscapeUtils.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -31,7 +31,7 @@ *

* Unescapes escaped chars in strings. */ -public class StringEscapeUtils { +public final class StringEscapeUtils { private StringEscapeUtils() { } @@ -65,9 +65,9 @@ public static String escapeJava(final String input) { * For example, it will turn a sequence of {@code '\'} and * {@code 'n'} into a newline character, unless the {@code '\'} * is preceded by another {@code '\'}.

- * + *

* This can be replaced by String::translateEscapes in JDK 13 - * + * * @param input the {@code String} to unescape, may be null * @return a new unescaped {@code String}, {@code null} if null string input */ @@ -75,45 +75,53 @@ public static String unescapeJava(final String input) { return UNESCAPE_JAVA.translate(input); } - private static final String[][] JAVA_CTRL_CHARS_UNESCAPE = { + public static String unescapeJavaTextBlock(final String input) { + return UNESCAPE_JAVA_TEXT_BLOCK.translate(input); + } + + private static final LookupTranslator JAVA_CTRL_CHARS_UNESCAPE = new LookupTranslator(new String[][]{ {"\\b", "\b"}, {"\\n", "\n"}, {"\\t", "\t"}, {"\\f", "\f"}, - {"\\r", "\r"} - }; + {"\\r", "\r"}}); - private static final String[][] JAVA_CTRL_CHARS_ESCAPE = { + private static final LookupTranslator JAVA_CTRL_CHARS_ESCAPE = new LookupTranslator(new String[][]{ {"\b", "\\b"}, {"\n", "\\n"}, {"\t", "\\t"}, {"\f", "\\f"}, - {"\r", "\\r"} - }; - - private static final CharSequenceTranslator ESCAPE_JAVA = - new AggregateTranslator( - new LookupTranslator( - new String[][]{ - {"\"", "\\\""}, - {"\\", "\\\\"}, - }), - new LookupTranslator(JAVA_CTRL_CHARS_ESCAPE.clone()) - ); - - private static final CharSequenceTranslator UNESCAPE_JAVA = - new AggregateTranslator( - new OctalUnescaper(), - new UnicodeUnescaper(), - new LookupTranslator(JAVA_CTRL_CHARS_UNESCAPE.clone()), - new LookupTranslator( - new String[][]{ - {"\\\\", "\\"}, - {"\\\"", "\""}, - {"\\'", "'"}, - {"\\", ""} - }) - ); + {"\r", "\\r"}}); + + private static final CharSequenceTranslator ESCAPE_JAVA = new AggregateTranslator( + new LookupTranslator( + new String[][]{ + {"\"", "\\\""}, + {"\\", "\\\\"}, + }), + JAVA_CTRL_CHARS_ESCAPE); + + private static final CharSequenceTranslator UNESCAPE_JAVA = new AggregateTranslator( + new OctalUnescaper(), + new UnicodeUnescaper(), + JAVA_CTRL_CHARS_UNESCAPE, + new LookupTranslator(new String[][]{ + {"\\\\", "\\"}, + {"\\\"", "\""}, + {"\\'", "'"}, + {"\\", ""}})); + + private static final CharSequenceTranslator UNESCAPE_JAVA_TEXT_BLOCK = new AggregateTranslator( + new OctalUnescaper(), + new UnicodeUnescaper(), + JAVA_CTRL_CHARS_UNESCAPE, + new LookupTranslator(new String[][]{ + {"\\\\", "\\"}, + {"\\\"", "\""}, + {"\\'", "'"}, + {"\\", ""}, + {"\\s", " "}, + {"\\\n", ""}})); /** * Adapted from apache commons-lang3 project. @@ -138,7 +146,7 @@ private static abstract class CharSequenceTranslator { * @return int count of codepoints consumed * @throws IOException if and only if the Writer produces an IOException */ - public abstract int translate(CharSequence input, int index, Writer out) throws IOException; + protected abstract int translate(CharSequence input, int index, Writer out) throws IOException; /** * Helper for non-Writer usage. @@ -146,7 +154,7 @@ private static abstract class CharSequenceTranslator { * @param input CharSequence to be translated * @return String output of translation */ - public final String translate(final CharSequence input) { + private String translate(final CharSequence input) { if (input == null) { return null; } @@ -168,7 +176,7 @@ public final String translate(final CharSequence input) { * @param out Writer to translate the text to * @throws IOException if and only if the Writer produces an IOException */ - public final void translate(final CharSequence input, final Writer out) throws IOException { + private void translate(final CharSequence input, final Writer out) throws IOException { if (out == null) { throw new IllegalArgumentException("The Writer must not be null"); } @@ -201,21 +209,6 @@ public final void translate(final CharSequence input, final Writer out) throws I } } } - - /** - * Helper method to create a merger of this translator with another set of - * translators. Useful in customizing the standard functionality. - * - * @param translators CharSequenceTranslator array of translators to merge with this one - * @return CharSequenceTranslator merging this translator with the others - */ - public final CharSequenceTranslator with(final CharSequenceTranslator... translators) { - final CharSequenceTranslator[] newArray = new CharSequenceTranslator[translators.length + 1]; - newArray[0] = this; - System.arraycopy(translators, 0, newArray, 1, translators.length); - return new AggregateTranslator(newArray); - } - } /** @@ -241,7 +234,7 @@ private static class LookupTranslator extends CharSequenceTranslator { * * @param lookup CharSequence[][] table of size [*][2] */ - public LookupTranslator(final CharSequence[]... lookup) { + private LookupTranslator(final CharSequence[]... lookup) { lookupMap = new HashMap<>(); prefixSet = new HashSet<>(); int _shortest = Integer.MAX_VALUE; @@ -267,7 +260,7 @@ public LookupTranslator(final CharSequence[]... lookup) { * {@inheritDoc} */ @Override - public int translate(final CharSequence input, final int index, final Writer out) throws IOException { + protected int translate(final CharSequence input, final int index, final Writer out) throws IOException { // check if translation exists for the input at position index if (prefixSet.contains(input.charAt(index))) { int max = longest; @@ -306,7 +299,7 @@ private static class AggregateTranslator extends CharSequenceTranslator { * * @param translators CharSequenceTranslator array to aggregate */ - public AggregateTranslator(final CharSequenceTranslator... translators) { + private AggregateTranslator(final CharSequenceTranslator... translators) { this.translators = translators == null ? null : translators.clone(); } @@ -316,7 +309,7 @@ public AggregateTranslator(final CharSequenceTranslator... translators) { * {@inheritDoc} */ @Override - public int translate(final CharSequence input, final int index, final Writer out) throws IOException { + protected int translate(final CharSequence input, final int index, final Writer out) throws IOException { for (final CharSequenceTranslator translator : translators) { final int consumed = translator.translate(input, index, out); if (consumed != 0) { @@ -346,7 +339,7 @@ private static class OctalUnescaper extends CharSequenceTranslator { * {@inheritDoc} */ @Override - public int translate(final CharSequence input, final int index, final Writer out) throws IOException { + protected int translate(final CharSequence input, final int index, final Writer out) throws IOException { final int remaining = input.length() - index - 1; // how many characters left, ignoring the first \ final StringBuilder builder = new StringBuilder(); if (input.charAt(index) == '\\' && remaining > 0 && isOctalDigit(input.charAt(index + 1))) { @@ -407,7 +400,7 @@ private static class UnicodeUnescaper extends CharSequenceTranslator { * {@inheritDoc} */ @Override - public int translate(final CharSequence input, final int index, final Writer out) throws IOException { + protected int translate(final CharSequence input, final int index, final Writer out) throws IOException { if (input.charAt(index) == '\\' && index + 1 < input.length() && input.charAt(index + 1) == 'u') { // consume optional additional 'u' chars int i = 2; diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/Utils.java b/javaparser-core/src/main/java/com/github/javaparser/utils/Utils.java index c41afcfff3..e1d96a9507 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/Utils.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/Utils.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -21,6 +21,9 @@ package com.github.javaparser.utils; +import com.github.javaparser.ast.Node; +import com.github.javaparser.ast.expr.UnaryExpr; + import java.io.IOException; import java.io.Reader; import java.nio.file.Files; @@ -293,4 +296,15 @@ public static String trimTrailingSpaces(String line) { return line; } + /** + * Checks, if the parent is a unary expression with a minus operator. Used to check for negative literals. + */ + public static boolean hasUnaryMinusAsParent(Node n) { + return n.getParentNode() + .filter(parent -> parent instanceof UnaryExpr) + .map(parent -> (UnaryExpr) parent) + .map(unaryExpr -> unaryExpr.getOperator() == UnaryExpr.Operator.MINUS) + .orElse(false); + } + } diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorList.java b/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorList.java index 5ef47b4bfc..05c628eba4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorList.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorList.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorMap.java b/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorMap.java index 98faf9ad32..be790952dd 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorMap.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorMap.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorSet.java b/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorSet.java index d61c07a610..d6a07601e5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorSet.java +++ b/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorSet.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/version/Java10PostProcessor.java b/javaparser-core/src/main/java/com/github/javaparser/version/Java10PostProcessor.java index 906c1ff2a8..73367dd063 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/version/Java10PostProcessor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/version/Java10PostProcessor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/version/Java11PostProcessor.java b/javaparser-core/src/main/java/com/github/javaparser/version/Java11PostProcessor.java index e9dd4f09b1..ed4986f598 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/version/Java11PostProcessor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/version/Java11PostProcessor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/version/Java12PostProcessor.java b/javaparser-core/src/main/java/com/github/javaparser/version/Java12PostProcessor.java index 280d39da86..c8b2e7f637 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/version/Java12PostProcessor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/version/Java12PostProcessor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/version/Java13PostProcessor.java b/javaparser-core/src/main/java/com/github/javaparser/version/Java13PostProcessor.java index ce09b8fb59..c0851e1a04 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/version/Java13PostProcessor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/version/Java13PostProcessor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/version/Java14PostProcessor.java b/javaparser-core/src/main/java/com/github/javaparser/version/Java14PostProcessor.java index da23772fa6..f32775c052 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/version/Java14PostProcessor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/version/Java14PostProcessor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/java/com/github/javaparser/version/PostProcessors.java b/javaparser-core/src/main/java/com/github/javaparser/version/PostProcessors.java index 4cebaa3660..cc15f4b6f3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/version/PostProcessors.java +++ b/javaparser-core/src/main/java/com/github/javaparser/version/PostProcessors.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/javacc-support/com/github/javaparser/GeneratedJavaParserBase.java b/javaparser-core/src/main/javacc-support/com/github/javaparser/GeneratedJavaParserBase.java index 9e408cc62e..aeb62edf0d 100644 --- a/javaparser-core/src/main/javacc-support/com/github/javaparser/GeneratedJavaParserBase.java +++ b/javaparser-core/src/main/javacc-support/com/github/javaparser/GeneratedJavaParserBase.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/javacc-support/com/github/javaparser/GeneratedJavaParserTokenManagerBase.java b/javaparser-core/src/main/javacc-support/com/github/javaparser/GeneratedJavaParserTokenManagerBase.java index 6c68581eb6..3b79846ccf 100644 --- a/javaparser-core/src/main/javacc-support/com/github/javaparser/GeneratedJavaParserTokenManagerBase.java +++ b/javaparser-core/src/main/javacc-support/com/github/javaparser/GeneratedJavaParserTokenManagerBase.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/javacc-support/com/github/javaparser/ModifierHolder.java b/javaparser-core/src/main/javacc-support/com/github/javaparser/ModifierHolder.java index 5ea4c9c46d..23230c6266 100644 --- a/javaparser-core/src/main/javacc-support/com/github/javaparser/ModifierHolder.java +++ b/javaparser-core/src/main/javacc-support/com/github/javaparser/ModifierHolder.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/javacc-support/com/github/javaparser/RangedList.java b/javaparser-core/src/main/javacc-support/com/github/javaparser/RangedList.java index 3cea649208..e23cf20f93 100644 --- a/javaparser-core/src/main/javacc-support/com/github/javaparser/RangedList.java +++ b/javaparser-core/src/main/javacc-support/com/github/javaparser/RangedList.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-core/src/main/javacc-support/com/github/javaparser/TokenBase.java b/javaparser-core/src/main/javacc-support/com/github/javaparser/TokenBase.java index b025c825c9..5f36b5bc75 100644 --- a/javaparser-core/src/main/javacc-support/com/github/javaparser/TokenBase.java +++ b/javaparser-core/src/main/javacc-support/com/github/javaparser/TokenBase.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007-2010 Júlio Vilmar Gesser. - * Copyright (C) 2011, 2013-2019 The JavaParser Team. + * Copyright (C) 2011, 2013-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/pom.xml b/javaparser-symbol-solver-core/pom.xml index 3d6806c155..3b833a36cb 100644 --- a/javaparser-symbol-solver-core/pom.xml +++ b/javaparser-symbol-solver-core/pom.xml @@ -3,7 +3,7 @@ javaparser-parent com.github.javaparser - 3.15.8-SNAPSHOT + 3.15.19-SNAPSHOT 4.0.0 @@ -33,18 +33,13 @@ com.github.javaparser - javaparser-symbol-solver-logic + javaparser-core ${project.version} org.javassist javassist - - com.github.javaparser - javaparser-symbol-solver-model - ${project.version} - com.google.guava guava diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/JavaSymbolSolver.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/JavaSymbolSolver.java index dd3c6db3b1..8404b491af 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/JavaSymbolSolver.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/JavaSymbolSolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/SourceFileInfoExtractor.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/SourceFileInfoExtractor.java index eaccb6d274..03f23c498e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/SourceFileInfoExtractor.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/SourceFileInfoExtractor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -51,7 +51,7 @@ import java.util.List; import static com.github.javaparser.StaticJavaParser.parse; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; import static java.util.Comparator.comparing; /** @@ -121,7 +121,7 @@ private void solve(Node node) { if (node instanceof ClassOrInterfaceDeclaration) { solveTypeDecl((ClassOrInterfaceDeclaration) node); } else if (node instanceof Expression) { - Node parentNode = requireParentNode(node); + Node parentNode = demandParentNode(node); if (parentNode instanceof ImportDeclaration || parentNode instanceof Expression || parentNode instanceof MethodDeclaration || diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/Context.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/Context.java index d3f91b49ff..e8acc647fb 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/Context.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/Context.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/MethodUsageResolutionCapability.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/MethodUsageResolutionCapability.java index dcb9f54565..c3ce36dbd0 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/MethodUsageResolutionCapability.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/MethodUsageResolutionCapability.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/TypeVariableResolutionCapability.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/TypeVariableResolutionCapability.java index 87c7796393..a7dab94506 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/TypeVariableResolutionCapability.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/core/resolution/TypeVariableResolutionCapability.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/declarations/common/MethodDeclarationCommonLogic.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/declarations/common/MethodDeclarationCommonLogic.java index 463590408f..f350352e3f 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/declarations/common/MethodDeclarationCommonLogic.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/declarations/common/MethodDeclarationCommonLogic.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -23,6 +23,7 @@ import com.github.javaparser.resolution.MethodUsage; import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration; +import com.github.javaparser.resolution.declarations.ResolvedParameterDeclaration; import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration; import com.github.javaparser.resolution.types.ResolvedType; import com.github.javaparser.resolution.types.ResolvedTypeVariable; @@ -60,9 +61,15 @@ public MethodUsage resolveTypeVariables(Context context, List para // and then we replace them in the return type // Map determinedTypeParameters = new HashMap<>(); InferenceContext inferenceContext = new InferenceContext(MyObjectProvider.INSTANCE); - for (int i = 0; i < methodDeclaration.getNumberOfParams() - (methodDeclaration.hasVariadicParameter() ? 1 : 0); i++) { - ResolvedType formalParamType = methodDeclaration.getParam(i).getType(); + for (int i = 0; i < methodDeclaration.getNumberOfParams(); i++) { + ResolvedParameterDeclaration formalParamDecl = methodDeclaration.getParam(i); + ResolvedType formalParamType = formalParamDecl.getType(); ResolvedType actualParamType = parameterTypes.get(i); + + if (formalParamDecl.isVariadic() && !actualParamType.isArray()) { + formalParamType = formalParamType.asArrayType().getComponentType(); + } + inferenceContext.addPair(formalParamType, actualParamType); } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparser/Navigator.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparser/Navigator.java index 9e4825ee54..b0a46db2b2 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparser/Navigator.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparser/Navigator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -30,12 +30,13 @@ import com.github.javaparser.ast.stmt.ReturnStmt; import com.github.javaparser.ast.stmt.SwitchStmt; -import java.util.List; import java.util.Optional; /** * This class can be used to easily retrieve nodes from a JavaParser AST. * + * Note that methods with the prefix `demand` indicate that if the search value is not found, an exception will be thrown. + * * @author Federico Tomassetti */ public final class Navigator { @@ -44,53 +45,6 @@ private Navigator() { // prevent instantiation } - public static Node requireParentNode(Node node) { - return node.getParentNode().orElseThrow(() -> new IllegalStateException("Parent not found, the node does not appear to be inserted in a correct AST")); - } - - /** - * Looks among the type declared in the Compilation Unit for one having the specified name. - * The name can be qualified with respect to the compilation unit. For example, if the compilation - * unit is in package a.b; and it contains two top level classes named C and D, with class E being defined inside D - * then the qualifiedName that can be resolved are "C", "D", and "D.E". - */ - public static Optional> findType(CompilationUnit cu, String qualifiedName) { - if (cu.getTypes().isEmpty()) { - return Optional.empty(); - } - - final String typeName = getOuterTypeName(qualifiedName); - Optional> type = cu.getTypes().stream().filter((t) -> t.getName().getId().equals(typeName)).findFirst(); - - final String innerTypeName = getInnerTypeName(qualifiedName); - if (type.isPresent() && !innerTypeName.isEmpty()) { - return findType(type.get(), innerTypeName); - } - return type; - } - - /** - * Looks among the type declared in the TypeDeclaration for one having the specified name. - * The name can be qualified with respect to the TypeDeclaration. For example, if the class declarationd defines class D - * and class D contains an internal class named E then the qualifiedName that can be resolved are "D", and "D.E". - */ - public static Optional> findType(TypeDeclaration td, String qualifiedName) { - final String typeName = getOuterTypeName(qualifiedName); - - Optional> type = Optional.empty(); - for (Node n : td.getMembers()) { - if (n instanceof TypeDeclaration && ((TypeDeclaration) n).getName().getId().equals(typeName)) { - type = Optional.of((TypeDeclaration) n); - break; - } - } - final String innerTypeName = getInnerTypeName(qualifiedName); - if (type.isPresent() && !innerTypeName.isEmpty()) { - return findType(type.get(), innerTypeName); - } - return type; - } - public static ClassOrInterfaceDeclaration demandClass(CompilationUnit cu, String qualifiedName) { ClassOrInterfaceDeclaration cd = demandClassOrInterface(cu, qualifiedName); if (cd.isInterface()) { @@ -99,42 +53,10 @@ public static ClassOrInterfaceDeclaration demandClass(CompilationUnit cu, String return cd; } - public static ClassOrInterfaceDeclaration demandInterface(CompilationUnit cu, String qualifiedName) { - ClassOrInterfaceDeclaration cd = demandClassOrInterface(cu, qualifiedName); - if (!cd.isInterface()) { - throw new IllegalStateException("Type is not an interface"); - } - return cd; - } - - public static EnumDeclaration demandEnum(CompilationUnit cu, String qualifiedName) { - Optional> res = findType(cu, qualifiedName); - if (!res.isPresent()) { - throw new IllegalStateException("No type found"); - } - if (!(res.get() instanceof EnumDeclaration)) { - throw new IllegalStateException("Type is not an enum"); - } - return (EnumDeclaration) res.get(); - } - - public static MethodDeclaration demandMethod(TypeDeclaration cd, String name) { - MethodDeclaration found = null; - for (BodyDeclaration bd : cd.getMembers()) { - if (bd instanceof MethodDeclaration) { - MethodDeclaration md = (MethodDeclaration) bd; - if (md.getNameAsString().equals(name)) { - if (found != null) { - throw new IllegalStateException("Ambiguous getName"); - } - found = md; - } - } - } - if (found == null) { - throw new IllegalStateException("No method called " + name); - } - return found; + public static ClassOrInterfaceDeclaration demandClassOrInterface(CompilationUnit compilationUnit, String qualifiedName) { + return findType(compilationUnit, qualifiedName) + .map(res -> res.toClassOrInterfaceDeclaration().orElseThrow(() -> new IllegalStateException("Type is not a class or an interface, it is " + res.getClass().getCanonicalName()))) + .orElseThrow(() -> new IllegalStateException("No type named '" + qualifiedName + "'found")); } /** @@ -143,9 +65,10 @@ public static MethodDeclaration demandMethod(TypeDeclaration cd, String name) * * @param td The type declaration to search in. Note that only classes and enums have constructors. * @param index The index of the desired constructor. - * @return The desired ConstructorDeclaration if it was found, and {@code null} otherwise. + * @return The desired ConstructorDeclaration if it was found, else an exception is thrown. */ public static ConstructorDeclaration demandConstructor(TypeDeclaration td, int index) { + // TODO: Refactor to use `td.findAll(ConstructorDeclaration.class);` - potential difference re: searching only immediate children? ConstructorDeclaration found = null; int i = 0; for (BodyDeclaration bd : td.getMembers()) { @@ -164,6 +87,17 @@ public static ConstructorDeclaration demandConstructor(TypeDeclaration td, in return found; } + public static EnumDeclaration demandEnum(CompilationUnit cu, String qualifiedName) { + Optional> res = findType(cu, qualifiedName); + if (!res.isPresent()) { + throw new IllegalStateException("No type found"); + } + if (!(res.get() instanceof EnumDeclaration)) { + throw new IllegalStateException("Type is not an enum"); + } + return (EnumDeclaration) res.get(); + } + public static VariableDeclarator demandField(ClassOrInterfaceDeclaration cd, String name) { for (BodyDeclaration bd : cd.getMembers()) { if (bd instanceof FieldDeclaration) { @@ -178,69 +112,158 @@ public static VariableDeclarator demandField(ClassOrInterfaceDeclaration cd, Str throw new IllegalStateException("No field with given name"); } - public static Optional findNameExpression(Node node, String name) { - return node.findFirst(NameExpr.class, n -> n.getNameAsString().equals(name)); + public static ClassOrInterfaceDeclaration demandInterface(CompilationUnit cu, String qualifiedName) { + ClassOrInterfaceDeclaration cd = demandClassOrInterface(cu, qualifiedName); + if (!cd.isInterface()) { + throw new IllegalStateException("Type is not an interface"); + } + return cd; } - public static Optional findSimpleName(Node node, String name) { - return node.findFirst(SimpleName.class, n -> n.asString().equals(name)); + public static MethodDeclaration demandMethod(TypeDeclaration cd, String name) { + MethodDeclaration found = null; + for (BodyDeclaration bd : cd.getMembers()) { + if (bd instanceof MethodDeclaration) { + MethodDeclaration md = (MethodDeclaration) bd; + if (md.getNameAsString().equals(name)) { + if (found != null) { + throw new IllegalStateException("Ambiguous getName"); + } + found = md; + } + } + } + if (found == null) { + throw new IllegalStateException("No method called " + name); + } + return found; } + public static N demandNodeOfGivenClass(Node node, Class clazz) { + return node.findFirst(clazz).orElseThrow(IllegalArgumentException::new); + } - public static Optional findMethodCall(Node node, String methodName) { - return node.findFirst(MethodCallExpr.class, n -> n.getNameAsString().equals(methodName)); + public static Node demandParentNode(Node node) { + return node.getParentNode().orElseThrow(() -> new IllegalStateException("Parent not found, the node does not appear to be inserted in a correct AST")); + } + + public static ReturnStmt demandReturnStmt(MethodDeclaration method) { + return demandNodeOfGivenClass(method, ReturnStmt.class); + } + + public static SwitchStmt demandSwitch(Node node) { + return findSwitchHelper(node).orElseThrow(IllegalArgumentException::new); } public static Optional demandVariableDeclaration(Node node, String name) { return node.findFirst(VariableDeclarator.class, n -> n.getNameAsString().equals(name)); } - public static ClassOrInterfaceDeclaration demandClassOrInterface(CompilationUnit compilationUnit, String qualifiedName) { - return findType(compilationUnit, qualifiedName) - .map(res -> res.toClassOrInterfaceDeclaration().orElseThrow(() -> new IllegalStateException("Type is not a class or an interface, it is " + res.getClass().getCanonicalName()))) - .orElseThrow(() -> new IllegalStateException("No type named '" + qualifiedName + "'found")); + public static Optional findMethodCall(Node node, String methodName) { + return node.findFirst(MethodCallExpr.class, n -> n.getNameAsString().equals(methodName)); } - // TODO should be demand or requireSwitch - public static SwitchStmt findSwitch(Node node) { - return findSwitchHelper(node).orElseThrow(IllegalArgumentException::new); + public static Optional findNameExpression(Node node, String name) { + return node.findFirst(NameExpr.class, n -> n.getNameAsString().equals(name)); } + /** + * @deprecated Use {@link #demandNodeOfGivenClass(Node, Class)} + */ + @Deprecated public static N findNodeOfGivenClass(Node node, Class clazz) { - return node.findFirst(clazz).orElseThrow(IllegalArgumentException::new); + return demandNodeOfGivenClass(node, clazz); } - // TODO should be demand or require... + /** + * @deprecated Use {@link #demandReturnStmt(MethodDeclaration)} + */ + @Deprecated public static ReturnStmt findReturnStmt(MethodDeclaration method) { - return findNodeOfGivenClass(method, ReturnStmt.class); + return demandReturnStmt(method); } - /// - /// Private methods - /// - - private static String getOuterTypeName(String qualifiedName) { - return qualifiedName.split("\\.", 2)[0]; + public static Optional findSimpleName(Node node, String name) { + return node.findFirst(SimpleName.class, n -> n.asString().equals(name)); } - private static String getInnerTypeName(String qualifiedName) { - if (qualifiedName.contains(".")) { - return qualifiedName.split("\\.", 2)[1]; - } - return ""; + /** + * @deprecated Use {@link #demandSwitch(Node)} + */ + @Deprecated + public static SwitchStmt findSwitch(Node node) { + return demandSwitch(node); } private static Optional findSwitchHelper(Node node) { - // TODO can be replaced by findFirst with the correct algorithm. if (node instanceof SwitchStmt) { return Optional.of((SwitchStmt) node); } - for (Node child : node.getChildNodes()) { - Optional resChild = findSwitchHelper(child); - if (resChild.isPresent()) { - return resChild; + + return node.findFirst(SwitchStmt.class); + } + + /** + * Looks among the type declared in the Compilation Unit for one having the specified name. + * The name can be qualified with respect to the compilation unit. For example, if the compilation + * unit is in package a.b; and it contains two top level classes named C and D, with class E being defined inside D + * then the qualifiedName that can be resolved are "C", "D", and "D.E". + */ + public static Optional> findType(CompilationUnit cu, String qualifiedName) { + if (cu.getTypes().isEmpty()) { + return Optional.empty(); + } + + final String typeName = getOuterTypeName(qualifiedName); + Optional> type = cu.getTypes().stream().filter((t) -> t.getName().getId().equals(typeName)).findFirst(); + + final String innerTypeName = getInnerTypeName(qualifiedName); + if (type.isPresent() && !innerTypeName.isEmpty()) { + return findType(type.get(), innerTypeName); + } + return type; + } + + /** + * Looks among the type declared in the TypeDeclaration for one having the specified name. + * The name can be qualified with respect to the TypeDeclaration. For example, if the class declaration defines + * class D and class D contains an internal class named E then the qualifiedName that can be resolved are "D", and + * "D.E". + */ + public static Optional> findType(TypeDeclaration td, String qualifiedName) { + final String typeName = getOuterTypeName(qualifiedName); + + Optional> type = Optional.empty(); + for (Node n : td.getMembers()) { + if (n instanceof TypeDeclaration && ((TypeDeclaration) n).getName().getId().equals(typeName)) { + type = Optional.of((TypeDeclaration) n); + break; } } - return Optional.empty(); + final String innerTypeName = getInnerTypeName(qualifiedName); + if (type.isPresent() && !innerTypeName.isEmpty()) { + return findType(type.get(), innerTypeName); + } + return type; + } + + private static String getInnerTypeName(String qualifiedName) { + if (qualifiedName.contains(".")) { + return qualifiedName.split("\\.", 2)[1]; + } + return ""; + } + + private static String getOuterTypeName(String qualifiedName) { + return qualifiedName.split("\\.", 2)[0]; } + + /** + * @deprecated Use {@link #demandParentNode(Node)} + */ + @Deprecated + public static Node requireParentNode(Node node) { + return demandParentNode(node); + } + } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparser/package-info.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparser/package-info.java index 141024e238..cbeea03613 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparser/package-info.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparser/package-info.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/DefaultVisitorAdapter.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/DefaultVisitorAdapter.java index 688fc72c33..0467b5174d 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/DefaultVisitorAdapter.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/DefaultVisitorAdapter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/JavaParserFacade.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/JavaParserFacade.java index 937ba60734..a7f1b58f42 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/JavaParserFacade.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/JavaParserFacade.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -52,7 +52,7 @@ import java.util.*; import java.util.stream.Collectors; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; import static com.github.javaparser.symbolsolver.model.resolution.SymbolReference.*; /** @@ -144,35 +144,44 @@ public SymbolReference solve(ExplicitConstructor } public SymbolReference solve(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt, boolean solveLambdas) { - List argumentTypes = new LinkedList<>(); - List placeholders = new LinkedList<>(); - - solveArguments(explicitConstructorInvocationStmt, explicitConstructorInvocationStmt.getArguments(), solveLambdas, argumentTypes, placeholders); - - Optional optAncestor = explicitConstructorInvocationStmt.findAncestor(ClassOrInterfaceDeclaration.class); - if (!optAncestor.isPresent()) { + // Constructor invocation must exist within a class (not interface). + Optional optAncestorClassOrInterfaceNode = explicitConstructorInvocationStmt.findAncestor(ClassOrInterfaceDeclaration.class); + if (!optAncestorClassOrInterfaceNode.isPresent()) { return unsolved(ResolvedConstructorDeclaration.class); } - ClassOrInterfaceDeclaration classNode = optAncestor.get(); + + ClassOrInterfaceDeclaration classOrInterfaceNode = optAncestorClassOrInterfaceNode.get(); + ResolvedReferenceTypeDeclaration resolvedClassNode = classOrInterfaceNode.resolve(); + if (!resolvedClassNode.isClass()) { + throw new IllegalStateException("Expected to be a class -- cannot call this() or super() within an interface."); + } + ResolvedTypeDeclaration typeDecl = null; - if (!explicitConstructorInvocationStmt.isThis()) { - ResolvedType classDecl = JavaParserFacade.get(typeSolver).convert(classNode.getExtendedTypes(0), classNode); - if (classDecl.isReferenceType()) { - typeDecl = classDecl.asReferenceType().getTypeDeclaration(); - } + if (explicitConstructorInvocationStmt.isThis()) { + // this() + typeDecl = resolvedClassNode.asReferenceType(); } else { - SymbolReference sr = JavaParserFactory.getContext(classNode, typeSolver).solveType(classNode.getNameAsString()); - if (sr.isSolved()) { - typeDecl = sr.getCorrespondingDeclaration(); + // super() + ResolvedReferenceType superClass = resolvedClassNode.asClass().getSuperClass(); + if (superClass != null) { + typeDecl = superClass.getTypeDeclaration(); } } if (typeDecl == null) { return unsolved(ResolvedConstructorDeclaration.class); } + + // Solve each of the arguments being passed into this constructor invocation. + List argumentTypes = new LinkedList<>(); + List placeholders = new LinkedList<>(); + solveArguments(explicitConstructorInvocationStmt, explicitConstructorInvocationStmt.getArguments(), solveLambdas, argumentTypes, placeholders); + + // Determine which constructor is referred to, and return it. SymbolReference res = ConstructorResolutionLogic.findMostApplicable(((ResolvedClassDeclaration) typeDecl).getConstructors(), argumentTypes, typeSolver); for (LambdaArgumentTypePlaceholder placeholder : placeholders) { placeholder.setMethod(res); } + return res; } @@ -237,7 +246,7 @@ private void solveArguments(Node node, NodeList args, boolean solveL } else { try { argumentTypes.add(JavaParserFacade.get(typeSolver).getType(parameterValue, solveLambdas)); - } catch (com.github.javaparser.resolution.UnsolvedSymbolException e) { + } catch (UnsolvedSymbolException e) { throw e; } catch (Exception e) { throw new RuntimeException(String.format("Unable to calculate the type of a parameter of a method call. Method call: %s, Parameter: %s", @@ -386,7 +395,7 @@ protected MethodUsage toMethodUsage(MethodReferenceExpr methodReferenceExpr) { throw new UnsupportedOperationException(); } TypeExpr typeExpr = (TypeExpr) methodReferenceExpr.getScope(); - if (!(typeExpr.getType() instanceof com.github.javaparser.ast.type.ClassOrInterfaceType)) { + if (!(typeExpr.getType() instanceof ClassOrInterfaceType)) { throw new UnsupportedOperationException(typeExpr.getType().getClass().getCanonicalName()); } ClassOrInterfaceType classOrInterfaceType = (ClassOrInterfaceType) typeExpr.getType(); @@ -475,17 +484,56 @@ private ResolvedType getTypeConcrete(Node node, boolean solveLambdas) { return node.accept(typeExtractor, solveLambdas); } - protected com.github.javaparser.ast.body.TypeDeclaration findContainingTypeDecl(Node node) { + /** + * Where a node has an interface/class/enum declaration as its ancestor, return the nearest one. + *

+ * NOTE: See {@link #findContainingTypeDeclOrObjectCreationExpr} if wanting to include anonymous inner classes. + *

+ * For example, these all return X: + * {@code public interface X { ... node here ... }} + * {@code public class X { ... node here ... }} + * {@code public enum X { ... node here ... }} + * + * @param node The Node whose ancestors will be traversed, + * @return The first class/interface/enum declaration in the Node's ancestry. + */ + protected TypeDeclaration findContainingTypeDecl(Node node) { if (node instanceof ClassOrInterfaceDeclaration) { return (ClassOrInterfaceDeclaration) node; } if (node instanceof EnumDeclaration) { return (EnumDeclaration) node; } - return findContainingTypeDecl(requireParentNode(node)); + return findContainingTypeDecl(demandParentNode(node)); } + /** + * Where a node has an interface/class/enum declaration -- or an object creation expression (anonymous inner class) + * -- as its ancestor, return the nearest one. + *

+ * NOTE: See {@link #findContainingTypeDecl} if wanting to not include anonymous inner classes. + *

+ * For example, these all return X: + *

    + *
  • {@code public interface X { ... node here ... }}
  • + *
  • {@code public class X { ... node here ... }}
  • + *
  • {@code public enum X { ... node here ... }}
  • + *
  • {@code
    +     *     new ActionListener() {
    +     *          ... node here ...
    +     *          public void actionPerformed(ActionEvent e) {
    +     *               ... or node here ...
    +     *          }
    +     *     }
    +     *     }
  • + *
+ *

+ * + * @param node The Node whose ancestors will be traversed, + * @return The first class/interface/enum declaration -- or object creation expression (anonymous inner class) -- in + * the Node's ancestry. + */ protected Node findContainingTypeDeclOrObjectCreationExpr(Node node) { if (node instanceof ClassOrInterfaceDeclaration) { return node; @@ -493,7 +541,7 @@ protected Node findContainingTypeDeclOrObjectCreationExpr(Node node) { if (node instanceof EnumDeclaration) { return node; } - Node parent = requireParentNode(node); + Node parent = demandParentNode(node); if (parent instanceof ObjectCreationExpr && !((ObjectCreationExpr) parent).getArguments().contains(node)) { return parent; } @@ -504,14 +552,14 @@ public ResolvedType convertToUsageVariableType(VariableDeclarator var) { return get(typeSolver).convertToUsage(var.getType(), var); } - public ResolvedType convertToUsage(com.github.javaparser.ast.type.Type type, Node context) { + public ResolvedType convertToUsage(Type type, Node context) { if (type.isUnknownType()) { throw new IllegalArgumentException("Inferred lambda parameter type"); } return convertToUsage(type, JavaParserFactory.getContext(context, typeSolver)); } - public ResolvedType convertToUsage(com.github.javaparser.ast.type.Type type) { + public ResolvedType convertToUsage(Type type) { return convertToUsage(type, type); } @@ -524,7 +572,7 @@ private String qName(ClassOrInterfaceType classOrInterfaceType) { return name; } - protected ResolvedType convertToUsage(com.github.javaparser.ast.type.Type type, Context context) { + protected ResolvedType convertToUsage(Type type, Context context) { if (context == null) { throw new NullPointerException("Context should not be null"); } @@ -550,8 +598,8 @@ protected ResolvedType convertToUsage(com.github.javaparser.ast.type.Type type, } else { return new ReferenceTypeImpl((ResolvedReferenceTypeDeclaration) typeDeclaration, typeParameters, typeSolver); } - } else if (type instanceof com.github.javaparser.ast.type.PrimitiveType) { - return ResolvedPrimitiveType.byName(((com.github.javaparser.ast.type.PrimitiveType) type).getType().name()); + } else if (type instanceof PrimitiveType) { + return ResolvedPrimitiveType.byName(((PrimitiveType) type).getType().name()); } else if (type instanceof WildcardType) { WildcardType wildcardType = (WildcardType) type; if (wildcardType.getExtendedType().isPresent() && !wildcardType.getSuperType().isPresent()) { @@ -563,10 +611,10 @@ protected ResolvedType convertToUsage(com.github.javaparser.ast.type.Type type, } else { throw new UnsupportedOperationException(wildcardType.toString()); } - } else if (type instanceof com.github.javaparser.ast.type.VoidType) { + } else if (type instanceof VoidType) { return ResolvedVoidType.INSTANCE; - } else if (type instanceof com.github.javaparser.ast.type.ArrayType) { - com.github.javaparser.ast.type.ArrayType jpArrayType = (com.github.javaparser.ast.type.ArrayType) type; + } else if (type instanceof ArrayType) { + ArrayType jpArrayType = (ArrayType) type; return new ResolvedArrayType(convertToUsage(jpArrayType.getComponentType(), context)); } else if (type instanceof UnionType) { UnionType unionType = (UnionType) type; @@ -590,7 +638,7 @@ public ResolvedType convert(Type type, Node node) { return convert(type, JavaParserFactory.getContext(node, typeSolver)); } - public ResolvedType convert(com.github.javaparser.ast.type.Type type, Context context) { + public ResolvedType convert(Type type, Context context) { return convertToUsage(type, context); } @@ -644,10 +692,10 @@ public ResolvedType getTypeOfThisIn(Node node) { JavaParserAnonymousClassDeclaration anonymousDeclaration = new JavaParserAnonymousClassDeclaration((ObjectCreationExpr) node, typeSolver); return new ReferenceTypeImpl(anonymousDeclaration, typeSolver); } - return getTypeOfThisIn(requireParentNode(node)); + return getTypeOfThisIn(demandParentNode(node)); } - public ResolvedReferenceTypeDeclaration getTypeDeclaration(com.github.javaparser.ast.body.TypeDeclaration typeDeclaration) { + public ResolvedReferenceTypeDeclaration getTypeDeclaration(TypeDeclaration typeDeclaration) { return JavaParserFactory.toTypeDeclaration(typeDeclaration, typeSolver); } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/JavaParserFactory.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/JavaParserFactory.java index 96996892be..ff39483428 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/JavaParserFactory.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/JavaParserFactory.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -38,7 +38,7 @@ import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; import com.github.javaparser.symbolsolver.resolution.SymbolDeclarator; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -48,6 +48,8 @@ public class JavaParserFactory { public static Context getContext(Node node, TypeSolver typeSolver) { if (node == null) { throw new NullPointerException("Node should not be null"); + } else if (node instanceof AnnotationDeclaration) { + return new AnnotationDeclarationContext((AnnotationDeclaration) node, typeSolver); } else if (node instanceof BlockStmt) { return new BlockStmtContext((BlockStmt) node, typeSolver); } else if (node instanceof CompilationUnit) { @@ -99,11 +101,11 @@ public static Context getContext(Node node, TypeSolver typeSolver) { return getContext(node.getParentNode().get().getParentNode().get(), typeSolver); } } - final Node parentNode = requireParentNode(node); + final Node parentNode = demandParentNode(node); if (parentNode instanceof ObjectCreationExpr && (node == ((ObjectCreationExpr) parentNode).getType() || ((ObjectCreationExpr) parentNode).getArguments().contains(node))) { - return getContext(requireParentNode(parentNode), typeSolver); + return getContext(demandParentNode(parentNode), typeSolver); } if (parentNode == null) { throw new IllegalStateException("The AST node does not appear to be inserted in a propert AST, therefore we cannot resolve symbols correctly"); diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/LambdaArgumentTypePlaceholder.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/LambdaArgumentTypePlaceholder.java index 10b57dcb94..ed8eebea68 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/LambdaArgumentTypePlaceholder.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/LambdaArgumentTypePlaceholder.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/TypeExtractor.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/TypeExtractor.java index c7aeeb642c..0f559d8379 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/TypeExtractor.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/TypeExtractor.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -60,7 +60,7 @@ import java.util.List; import java.util.Optional; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; import static com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveGenericTypes; public class TypeExtractor extends DefaultVisitorAdapter { @@ -75,12 +75,12 @@ public TypeExtractor(TypeSolver typeSolver, JavaParserFacade facade) { @Override public ResolvedType visit(VariableDeclarator node, Boolean solveLambdas) { - if (requireParentNode(node) instanceof FieldDeclaration) { + if (demandParentNode(node) instanceof FieldDeclaration) { return facade.convertToUsageVariableType(node); - } else if (requireParentNode(node) instanceof VariableDeclarationExpr) { + } else if (demandParentNode(node) instanceof VariableDeclarationExpr) { return facade.convertToUsageVariableType(node); } - throw new UnsupportedOperationException(requireParentNode(node).getClass().getCanonicalName()); + throw new UnsupportedOperationException(demandParentNode(node).getClass().getCanonicalName()); } @Override @@ -350,7 +350,26 @@ public ResolvedType visit(ThisExpr node, Boolean solveLambdas) { @Override public ResolvedType visit(SuperExpr node, Boolean solveLambdas) { - ResolvedTypeDeclaration typeOfNode = facade.getTypeDeclaration(facade.findContainingTypeDecl(node)); + // If 'super' is prefixed by a class eg. MyClass.this + if (node.getTypeName().isPresent()) { + String className = node.getTypeName().get().asString(); + SymbolReference resolvedTypeNameRef = JavaParserFactory.getContext(node, typeSolver).solveType(className); + if (resolvedTypeNameRef.isSolved()) { + // Cfr JLS $15.12.1 + ResolvedTypeDeclaration resolvedTypeName = resolvedTypeNameRef.getCorrespondingDeclaration(); + if (resolvedTypeName.isInterface()) { + return new ReferenceTypeImpl(resolvedTypeName.asInterface(), typeSolver); + } else if (resolvedTypeName.isClass()) { + return resolvedTypeName.asClass().getSuperClass(); + } else { + throw new UnsupportedOperationException(node.getClass().getCanonicalName()); + } + } else { + throw new UnsolvedSymbolException(className); + } + } + + ResolvedTypeDeclaration typeOfNode = facade.getTypeDeclaration(facade.findContainingTypeDeclOrObjectCreationExpr(node)); if (typeOfNode instanceof ResolvedClassDeclaration) { return ((ResolvedClassDeclaration) typeOfNode).getSuperClass(); } else { @@ -388,12 +407,12 @@ public ResolvedType visit(VariableDeclarationExpr node, Boolean solveLambdas) { @Override public ResolvedType visit(LambdaExpr node, Boolean solveLambdas) { - if (requireParentNode(node) instanceof MethodCallExpr) { - MethodCallExpr callExpr = (MethodCallExpr) requireParentNode(node); + if (demandParentNode(node) instanceof MethodCallExpr) { + MethodCallExpr callExpr = (MethodCallExpr) demandParentNode(node); int pos = JavaParserSymbolDeclaration.getParamPos(node); SymbolReference refMethod = facade.solve(callExpr); if (!refMethod.isSolved()) { - throw new com.github.javaparser.resolution.UnsolvedSymbolException(requireParentNode(node).toString(), callExpr.getName().getId()); + throw new com.github.javaparser.resolution.UnsolvedSymbolException(demandParentNode(node).toString(), callExpr.getName().getId()); } Log.trace("getType on lambda expr %s", ()-> refMethod.getCorrespondingDeclaration().getName()); if (solveLambdas) { @@ -499,12 +518,12 @@ public ResolvedType visit(LambdaExpr node, Boolean solveLambdas) { @Override public ResolvedType visit(MethodReferenceExpr node, Boolean solveLambdas) { - if (requireParentNode(node) instanceof MethodCallExpr) { - MethodCallExpr callExpr = (MethodCallExpr) requireParentNode(node); + if (demandParentNode(node) instanceof MethodCallExpr) { + MethodCallExpr callExpr = (MethodCallExpr) demandParentNode(node); int pos = JavaParserSymbolDeclaration.getParamPos(node); SymbolReference refMethod = facade.solve(callExpr, false); if (!refMethod.isSolved()) { - throw new com.github.javaparser.resolution.UnsolvedSymbolException(requireParentNode(node).toString(), callExpr.getName().getId()); + throw new com.github.javaparser.resolution.UnsolvedSymbolException(demandParentNode(node).toString(), callExpr.getName().getId()); } Log.trace("getType on method reference expr %s", ()-> refMethod.getCorrespondingDeclaration().getName()); if (solveLambdas) { diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AbstractJavaParserContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AbstractJavaParserContext.java index 20936a013a..39e13df3da 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AbstractJavaParserContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AbstractJavaParserContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -47,7 +47,7 @@ import java.util.Collections; import java.util.Optional; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; import static java.util.Collections.singletonList; /** @@ -128,7 +128,7 @@ public final Context getParent() { if (found) { Node notMethod = parent; while (notMethod instanceof MethodCallExpr) { - notMethod = requireParentNode(notMethod); + notMethod = demandParentNode(notMethod); } return JavaParserFactory.getContext(notMethod, typeSolver); } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AbstractMethodLikeDeclarationContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AbstractMethodLikeDeclarationContext.java index 4c883f0ad2..6c1afec3ee 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AbstractMethodLikeDeclarationContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AbstractMethodLikeDeclarationContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AnnotationDeclarationContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AnnotationDeclarationContext.java new file mode 100644 index 0000000000..9ceca544b6 --- /dev/null +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AnnotationDeclarationContext.java @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2015-2016 Federico Tomassetti + * Copyright (C) 2017-2020 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.symbolsolver.javaparsermodel.contexts; + +import com.github.javaparser.ast.body.AnnotationDeclaration; +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.ResolvedType; +import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnnotationDeclaration; +import com.github.javaparser.symbolsolver.model.resolution.SymbolReference; +import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; + +import java.util.List; + +/** + * @author Takeshi D. Itoh + */ +public class AnnotationDeclarationContext extends AbstractJavaParserContext { + + private JavaParserTypeDeclarationAdapter javaParserTypeDeclarationAdapter; + + public AnnotationDeclarationContext(AnnotationDeclaration wrappedNode, TypeSolver typeSolver) { + super(wrappedNode, typeSolver); + this.javaParserTypeDeclarationAdapter = new JavaParserTypeDeclarationAdapter(wrappedNode, typeSolver, + getDeclaration(), this); + } + + @Override + public SymbolReference solveSymbol(String name) { + if (typeSolver == null) throw new IllegalArgumentException(); + + if (this.getDeclaration().hasField(name)) { + return SymbolReference.solved(this.getDeclaration().getField(name)); + } + + // then to parent + return getParent().solveSymbol(name); + } + + @Override + public SymbolReference solveType(String name) { + return javaParserTypeDeclarationAdapter.solveType(name); + } + + @Override + public SymbolReference solveMethod(String name, List argumentsTypes, boolean staticOnly) { + return javaParserTypeDeclarationAdapter.solveMethod(name, argumentsTypes, staticOnly); + } + + /// + /// Private methods + /// + + private ResolvedReferenceTypeDeclaration getDeclaration() { + return new JavaParserAnnotationDeclaration(this.wrappedNode, typeSolver); + } +} diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AnonymousClassDeclarationContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AnonymousClassDeclarationContext.java index eca6dc1cc1..e690c20269 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AnonymousClassDeclarationContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/AnonymousClassDeclarationContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/BlockStmtContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/BlockStmtContext.java index 2b3406ea3b..6c6e87bf4e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/BlockStmtContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/BlockStmtContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/CatchClauseContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/CatchClauseContext.java index 302d17de7c..874642f5b5 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/CatchClauseContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/CatchClauseContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ClassOrInterfaceDeclarationContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ClassOrInterfaceDeclarationContext.java index 737b0dd9b4..e62482fc9a 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ClassOrInterfaceDeclarationContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ClassOrInterfaceDeclarationContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/CompilationUnitContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/CompilationUnitContext.java index b875028aa6..61f5779462 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/CompilationUnitContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/CompilationUnitContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -125,7 +125,7 @@ public SymbolReference solveType(String name) { // interface in this compilation unit called "A". for (TypeDeclaration type : wrappedNode.getTypes()) { if (type.getName().getId().equals(name) - || type.getFullyQualifiedName().map(qualified -> qualified.equals(name)).orElse(false)) { + || type.getFullyQualifiedName().map(qualified -> qualified.equals(name)).orElse(false)) { if (type instanceof ClassOrInterfaceDeclaration) { return SymbolReference.solved(JavaParserFacade.get(typeSolver).getTypeDeclaration((ClassOrInterfaceDeclaration) type)); } else if (type instanceof AnnotationDeclaration) { @@ -137,6 +137,7 @@ public SymbolReference solveType(String name) { } } } + // Look for member classes/interfaces of types in this compilation unit. For instance, if the given name is // "A.B", there may be a class or interface in this compilation unit called "A" which has another member // class or interface called "B". Since the type that we're looking for can be nested arbitrarily deeply @@ -145,15 +146,15 @@ public SymbolReference solveType(String name) { if (name.indexOf('.') > -1) { SymbolReference ref = null; SymbolReference outerMostRef = - solveType(name.substring(0, name.indexOf("."))); + solveType(name.substring(0, name.indexOf("."))); if (outerMostRef != null && outerMostRef.isSolved() && - outerMostRef.getCorrespondingDeclaration() instanceof JavaParserClassDeclaration) { + outerMostRef.getCorrespondingDeclaration() instanceof JavaParserClassDeclaration) { ref = ((JavaParserClassDeclaration) outerMostRef.getCorrespondingDeclaration()) - .solveType(name.substring(name.indexOf(".") + 1)); + .solveType(name.substring(name.indexOf(".") + 1)); } else if (outerMostRef != null && outerMostRef.isSolved() && - outerMostRef.getCorrespondingDeclaration() instanceof JavaParserInterfaceDeclaration) { + outerMostRef.getCorrespondingDeclaration() instanceof JavaParserInterfaceDeclaration) { ref = ((JavaParserInterfaceDeclaration) outerMostRef.getCorrespondingDeclaration()) - .solveType(name.substring(name.indexOf(".") + 1)); + .solveType(name.substring(name.indexOf(".") + 1)); } if (ref != null && ref.isSolved()) { return ref; @@ -161,53 +162,53 @@ public SymbolReference solveType(String name) { } } - // Look in current package - if (this.wrappedNode.getPackageDeclaration().isPresent()) { - String qName = this.wrappedNode.getPackageDeclaration().get().getName().toString() + "." + name; - SymbolReference ref = typeSolver.tryToSolveType(qName); - if (ref != null && ref.isSolved()) { - return SymbolReference.adapt(ref, ResolvedTypeDeclaration.class); - } - } else { - // look for classes in the default package - String qName = name; - SymbolReference ref = typeSolver.tryToSolveType(qName); - if (ref != null && ref.isSolved()) { - return SymbolReference.adapt(ref, ResolvedTypeDeclaration.class); - } - } - + // Inspect imports for matches, prior to inspecting other classes within the package (per issue #1526) if (wrappedNode.getImports() != null) { int dotPos = name.indexOf('.'); String prefix = null; if (dotPos > -1) { prefix = name.substring(0, dotPos); } - // look into type imports + // look into single type imports for (ImportDeclaration importDecl : wrappedNode.getImports()) { if (!importDecl.isAsterisk()) { String qName = importDecl.getNameAsString(); boolean defaultPackage = !importDecl.getName().getQualifier().isPresent(); boolean found = !defaultPackage && importDecl.getName().getIdentifier().equals(name); - if (!found) { - if (prefix != null) { - found = qName.endsWith("." + prefix); - if (found) { - qName = qName + name.substring(dotPos); - } + if (!found && prefix != null) { + found = qName.endsWith("." + prefix); + if (found) { + qName = qName + name.substring(dotPos); } } if (found) { SymbolReference ref = typeSolver.tryToSolveType(qName); if (ref != null && ref.isSolved()) { return SymbolReference.adapt(ref, ResolvedTypeDeclaration.class); - } else { - return SymbolReference.unsolved(ResolvedTypeDeclaration.class); } } } } - // look into type imports on demand + } + + // Look in current package + if (this.wrappedNode.getPackageDeclaration().isPresent()) { + String qName = this.wrappedNode.getPackageDeclaration().get().getName().toString() + "." + name; + SymbolReference ref = typeSolver.tryToSolveType(qName); + if (ref != null && ref.isSolved()) { + return SymbolReference.adapt(ref, ResolvedTypeDeclaration.class); + } + } else { + // look for classes in the default package + String qName = name; + SymbolReference ref = typeSolver.tryToSolveType(qName); + if (ref != null && ref.isSolved()) { + return SymbolReference.adapt(ref, ResolvedTypeDeclaration.class); + } + } + + // look into asterisk imports on demand + if (wrappedNode.getImports() != null) { for (ImportDeclaration importDecl : wrappedNode.getImports()) { if (importDecl.isAsterisk()) { String qName = importDecl.getNameAsString() + "." + name; @@ -271,8 +272,8 @@ public SymbolReference solveMethod(String name, List< String importString = importDecl.getNameAsString(); if (this.wrappedNode.getPackageDeclaration().isPresent() - && this.wrappedNode.getPackageDeclaration().get().getName().getIdentifier().equals(packageName(importString)) - && this.wrappedNode.getTypes().stream().anyMatch(it -> it.getName().getIdentifier().equals(toSimpleName(importString)))) { + && this.wrappedNode.getPackageDeclaration().get().getName().getIdentifier().equals(packageName(importString)) + && this.wrappedNode.getTypes().stream().anyMatch(it -> it.getName().getIdentifier().equals(toSimpleName(importString)))) { // We are using a static import on a type defined in this file. It means the value was not found at // a lower level so this will fail return SymbolReference.unsolved(ResolvedMethodDeclaration.class); @@ -313,9 +314,9 @@ public List fieldsExposedToChild(Node child) { String typeName = typeNameAsNode.asString(); ResolvedReferenceTypeDeclaration typeDeclaration = typeSolver.solveType(typeName); res.addAll(typeDeclaration.getAllFields().stream() - .filter(f -> f.isStatic()) - .filter(f -> importDeclaration.isAsterisk() || importDeclaration.getName().getIdentifier().equals(f.getName())) - .collect(Collectors.toList())); + .filter(f -> f.isStatic()) + .filter(f -> importDeclaration.isAsterisk() || importDeclaration.getName().getIdentifier().equals(f.getName())) + .collect(Collectors.toList())); } } return res; @@ -342,4 +343,5 @@ private String getMember(String qName) { String memberName = qName.substring(index + 1); return memberName; } + } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ConstructorContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ConstructorContext.java index 443d0104d0..aa55a5f745 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ConstructorContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ConstructorContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ContextHelper.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ContextHelper.java index b1a384b9d5..86360c1ca7 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ContextHelper.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ContextHelper.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/EnumDeclarationContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/EnumDeclarationContext.java index ce0c9e8c77..2538783086 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/EnumDeclarationContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/EnumDeclarationContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/FieldAccessContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/FieldAccessContext.java index 480e5406c7..f8b6b634d6 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/FieldAccessContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/FieldAccessContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -38,7 +38,7 @@ import java.util.List; import java.util.Optional; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -59,17 +59,17 @@ public SymbolReference solveSymbol(String na return new SymbolSolver(typeSolver).solveSymbolInType(typeOfThis.asReferenceType().getTypeDeclaration(), name); } } - return JavaParserFactory.getContext(requireParentNode(wrappedNode), typeSolver).solveSymbol(name); + return JavaParserFactory.getContext(demandParentNode(wrappedNode), typeSolver).solveSymbol(name); } @Override public SymbolReference solveType(String name) { - return JavaParserFactory.getContext(requireParentNode(wrappedNode), typeSolver).solveType(name); + return JavaParserFactory.getContext(demandParentNode(wrappedNode), typeSolver).solveType(name); } @Override public SymbolReference solveMethod(String name, List parameterTypes, boolean staticOnly) { - return JavaParserFactory.getContext(requireParentNode(wrappedNode), typeSolver).solveMethod(name, parameterTypes, false); + return JavaParserFactory.getContext(demandParentNode(wrappedNode), typeSolver).solveMethod(name, parameterTypes, false); } @Override diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ForEachStatementContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ForEachStatementContext.java index e9bc88b1ad..d873eecc7d 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ForEachStatementContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ForEachStatementContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -35,7 +35,7 @@ import java.util.Collections; import java.util.List; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; public class ForEachStatementContext extends AbstractJavaParserContext { @@ -52,7 +52,7 @@ public SymbolReference solveSymbol(String na if (variableDeclarator.getName().getId().equals(name)) { return SymbolReference.solved(JavaParserSymbolDeclaration.localVar(variableDeclarator, typeSolver)); } else { - if (requireParentNode(wrappedNode) instanceof BlockStmt) { + if (demandParentNode(wrappedNode) instanceof BlockStmt) { return StatementContext.solveInBlock(name, typeSolver, wrappedNode); } else { return getParent().solveSymbol(name); diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ForStatementContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ForStatementContext.java index b3d3d707f9..ac94266a2c 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ForStatementContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ForStatementContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -39,7 +39,7 @@ import java.util.LinkedList; import java.util.List; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; public class ForStatementContext extends AbstractJavaParserContext { @@ -62,7 +62,7 @@ public SymbolReference solveSymbol(String na } } - if (requireParentNode(wrappedNode) instanceof NodeWithStatements) { + if (demandParentNode(wrappedNode) instanceof NodeWithStatements) { return StatementContext.solveInBlock(name, typeSolver, wrappedNode); } else { return getParent().solveSymbol(name); diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/JavaParserTypeDeclarationAdapter.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/JavaParserTypeDeclarationAdapter.java index 95eebf6d85..b517ca0084 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/JavaParserTypeDeclarationAdapter.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/JavaParserTypeDeclarationAdapter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/LambdaExprContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/LambdaExprContext.java index 51269dc173..f4bfcfa8a1 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/LambdaExprContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/LambdaExprContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -49,7 +49,7 @@ import java.util.*; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -67,8 +67,8 @@ public Optional solveSymbolAsValue(String name) { int index = 0; for (ResolvedValueDeclaration decl : sb.getSymbolDeclarations()) { if (decl.getName().equals(name)) { - if (requireParentNode(wrappedNode) instanceof MethodCallExpr) { - MethodCallExpr methodCallExpr = (MethodCallExpr) requireParentNode(wrappedNode); + if (demandParentNode(wrappedNode) instanceof MethodCallExpr) { + MethodCallExpr methodCallExpr = (MethodCallExpr) demandParentNode(wrappedNode); MethodUsage methodUsage = JavaParserFacade.get(typeSolver).solveMethodAsUsage(methodCallExpr); int i = pos(methodCallExpr, wrappedNode); ResolvedType lambdaType = methodUsage.getParamTypes().get(i); @@ -108,8 +108,8 @@ public Optional solveSymbolAsValue(String name) { } else{ return Optional.empty(); } - } else if (requireParentNode(wrappedNode) instanceof VariableDeclarator) { - VariableDeclarator variableDeclarator = (VariableDeclarator) requireParentNode(wrappedNode); + } else if (demandParentNode(wrappedNode) instanceof VariableDeclarator) { + VariableDeclarator variableDeclarator = (VariableDeclarator) demandParentNode(wrappedNode); ResolvedType t = JavaParserFacade.get(typeSolver).convertToUsageVariableType(variableDeclarator); Optional functionalMethod = FunctionalInterfaceLogic.getFunctionalMethod(t); if (functionalMethod.isPresent()) { @@ -133,8 +133,8 @@ public Optional solveSymbolAsValue(String name) { } else { throw new UnsupportedOperationException(); } - } else if (requireParentNode(wrappedNode) instanceof ReturnStmt) { - ReturnStmt returnStmt = (ReturnStmt) requireParentNode(wrappedNode); + } else if (demandParentNode(wrappedNode) instanceof ReturnStmt) { + ReturnStmt returnStmt = (ReturnStmt) demandParentNode(wrappedNode); Optional optDeclaration = returnStmt.findAncestor(MethodDeclaration.class); if (optDeclaration.isPresent()) { ResolvedType t = JavaParserFacade.get(typeSolver).convertToUsage(optDeclaration.get().asMethodDeclaration().getType()); diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodCallExprContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodCallExprContext.java index 901470925a..7a5bb2bc2f 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodCallExprContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodCallExprContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodContext.java index 16efc5adba..ac12605e49 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodReferenceExprContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodReferenceExprContext.java index 9d4bd9daf6..b43c10b450 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodReferenceExprContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodReferenceExprContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -47,7 +47,7 @@ import java.util.Map; import java.util.Optional; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; public class MethodReferenceExprContext extends AbstractJavaParserContext { @@ -103,8 +103,8 @@ public SymbolReference solveMethod(String name, List< /// private List inferArgumentTypes() { - if (requireParentNode(wrappedNode) instanceof MethodCallExpr) { - MethodCallExpr methodCallExpr = (MethodCallExpr) requireParentNode(wrappedNode); + if (demandParentNode(wrappedNode) instanceof MethodCallExpr) { + MethodCallExpr methodCallExpr = (MethodCallExpr) demandParentNode(wrappedNode); MethodUsage methodUsage = JavaParserFacade.get(typeSolver).solveMethodAsUsage(methodCallExpr); int pos = pos(methodCallExpr, wrappedNode); ResolvedType lambdaType = methodUsage.getParamTypes().get(pos); @@ -140,8 +140,8 @@ private List inferArgumentTypes() { } else { throw new UnsupportedOperationException(); } - } else if (requireParentNode(wrappedNode) instanceof VariableDeclarator) { - VariableDeclarator variableDeclarator = (VariableDeclarator) requireParentNode(wrappedNode); + } else if (demandParentNode(wrappedNode) instanceof VariableDeclarator) { + VariableDeclarator variableDeclarator = (VariableDeclarator) demandParentNode(wrappedNode); ResolvedType t = JavaParserFacade.get(typeSolver).convertToUsageVariableType(variableDeclarator); Optional functionalMethod = FunctionalInterfaceLogic.getFunctionalMethod(t); if (functionalMethod.isPresent()) { @@ -166,8 +166,8 @@ private List inferArgumentTypes() { } else { throw new UnsupportedOperationException(); } - } else if (requireParentNode(wrappedNode) instanceof ReturnStmt) { - ReturnStmt returnStmt = (ReturnStmt) requireParentNode(wrappedNode); + } else if (demandParentNode(wrappedNode) instanceof ReturnStmt) { + ReturnStmt returnStmt = (ReturnStmt) demandParentNode(wrappedNode); Optional optDeclaration = returnStmt.findAncestor(MethodDeclaration.class); if (optDeclaration.isPresent()) { ResolvedType t = JavaParserFacade.get(typeSolver).convertToUsage(optDeclaration.get().asMethodDeclaration().getType()); diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ObjectCreationContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ObjectCreationContext.java index f6bcc84780..651aab1278 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ObjectCreationContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/ObjectCreationContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -37,7 +37,7 @@ import java.util.List; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -64,21 +64,21 @@ public SymbolReference solveType(String name) { throw new UnsolvedSymbolException("Unable to solve qualified object creation expression in the context of expression of type " + scopeType.describe()); } // find first parent node that is not an object creation expression to avoid stack overflow errors, see #1711 - Node parentNode = requireParentNode(wrappedNode); + Node parentNode = demandParentNode(wrappedNode); while (parentNode instanceof ObjectCreationExpr) { - parentNode = requireParentNode(parentNode); + parentNode = demandParentNode(parentNode); } return JavaParserFactory.getContext(parentNode, typeSolver).solveType(name); } @Override public SymbolReference solveSymbol(String name) { - return JavaParserFactory.getContext(requireParentNode(wrappedNode), typeSolver).solveSymbol(name); + return JavaParserFactory.getContext(demandParentNode(wrappedNode), typeSolver).solveSymbol(name); } @Override public SymbolReference solveMethod(String name, List argumentsTypes, boolean staticOnly) { - return JavaParserFactory.getContext(requireParentNode(wrappedNode), typeSolver).solveMethod(name, argumentsTypes, false); + return JavaParserFactory.getContext(demandParentNode(wrappedNode), typeSolver).solveMethod(name, argumentsTypes, false); } } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/StatementContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/StatementContext.java index ba2325634d..6a0cb9647e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/StatementContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/StatementContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -39,7 +39,7 @@ import java.util.List; import java.util.Optional; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -51,10 +51,10 @@ public StatementContext(N wrappedNode, TypeSolver typeSolver) { } public static SymbolReference solveInBlock(String name, TypeSolver typeSolver, Statement stmt) { - if (!(requireParentNode(stmt) instanceof NodeWithStatements)) { + if (!(demandParentNode(stmt) instanceof NodeWithStatements)) { throw new IllegalArgumentException(); } - NodeWithStatements blockStmt = (NodeWithStatements) requireParentNode(stmt); + NodeWithStatements blockStmt = (NodeWithStatements) demandParentNode(stmt); int position = -1; for (int i = 0; i < blockStmt.getStatements().size(); i++) { if (blockStmt.getStatements().get(i).equals(stmt)) { @@ -73,14 +73,14 @@ public static SymbolReference solveInBlock(S } // if nothing is found we should ask the parent context - return JavaParserFactory.getContext(requireParentNode(stmt), typeSolver).solveSymbol(name); + return JavaParserFactory.getContext(demandParentNode(stmt), typeSolver).solveSymbol(name); } public static Optional solveInBlockAsValue(String name, TypeSolver typeSolver, Statement stmt) { - if (!(requireParentNode(stmt) instanceof NodeWithStatements)) { + if (!(demandParentNode(stmt) instanceof NodeWithStatements)) { throw new IllegalArgumentException(); } - NodeWithStatements blockStmt = (NodeWithStatements) requireParentNode(stmt); + NodeWithStatements blockStmt = (NodeWithStatements) demandParentNode(stmt); int position = -1; for (int i = 0; i < blockStmt.getStatements().size(); i++) { if (blockStmt.getStatements().get(i).equals(stmt)) { @@ -99,7 +99,7 @@ public static Optional solveInBlockAsValue(String name, TypeSolver typeSo } // if nothing is found we should ask the parent context - return JavaParserFactory.getContext(requireParentNode(stmt), typeSolver).solveSymbolAsValue(name); + return JavaParserFactory.getContext(demandParentNode(stmt), typeSolver).solveSymbolAsValue(name); } @Override @@ -113,19 +113,19 @@ public Optional solveSymbolAsValue(String name) { } // we should look in all the statements preceding, treating them as SymbolDeclarators - if (requireParentNode(wrappedNode) instanceof com.github.javaparser.ast.body.MethodDeclaration) { + if (demandParentNode(wrappedNode) instanceof com.github.javaparser.ast.body.MethodDeclaration) { return getParent().solveSymbolAsValue(name); } - if (requireParentNode(wrappedNode) instanceof LambdaExpr) { + if (demandParentNode(wrappedNode) instanceof LambdaExpr) { return getParent().solveSymbolAsValue(name); } - if (requireParentNode(wrappedNode) instanceof IfStmt) { + if (demandParentNode(wrappedNode) instanceof IfStmt) { return getParent().solveSymbolAsValue(name); } - if (!(requireParentNode(wrappedNode) instanceof NodeWithStatements)) { + if (!(demandParentNode(wrappedNode) instanceof NodeWithStatements)) { return getParent().solveSymbolAsValue(name); } - NodeWithStatements nodeWithStmt = (NodeWithStatements) requireParentNode(wrappedNode); + NodeWithStatements nodeWithStmt = (NodeWithStatements) demandParentNode(wrappedNode); int position = -1; for (int i = 0; i < nodeWithStmt.getStatements().size(); i++) { if (nodeWithStmt.getStatements().get(i).equals(wrappedNode)) { @@ -159,19 +159,19 @@ public SymbolReference solveSymbol(String na } // we should look in all the statements preceding, treating them as SymbolDeclarators - if (requireParentNode(wrappedNode) instanceof com.github.javaparser.ast.body.MethodDeclaration) { + if (demandParentNode(wrappedNode) instanceof com.github.javaparser.ast.body.MethodDeclaration) { return getParent().solveSymbol(name); } - if (requireParentNode(wrappedNode) instanceof com.github.javaparser.ast.body.ConstructorDeclaration) { + if (demandParentNode(wrappedNode) instanceof com.github.javaparser.ast.body.ConstructorDeclaration) { return getParent().solveSymbol(name); } - if (requireParentNode(wrappedNode) instanceof LambdaExpr) { + if (demandParentNode(wrappedNode) instanceof LambdaExpr) { return getParent().solveSymbol(name); } - if (!(requireParentNode(wrappedNode) instanceof NodeWithStatements)) { + if (!(demandParentNode(wrappedNode) instanceof NodeWithStatements)) { return getParent().solveSymbol(name); } - NodeWithStatements nodeWithStmt = (NodeWithStatements) requireParentNode(wrappedNode); + NodeWithStatements nodeWithStmt = (NodeWithStatements) demandParentNode(wrappedNode); int position = -1; for (int i = 0; i < nodeWithStmt.getStatements().size(); i++) { if (nodeWithStmt.getStatements().get(i).equals(wrappedNode)) { diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/SwitchEntryContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/SwitchEntryContext.java index c79ce8e584..147f8a04b8 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/SwitchEntryContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/SwitchEntryContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -36,7 +36,7 @@ import java.util.List; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -49,7 +49,7 @@ public SwitchEntryContext(SwitchEntry wrappedNode, TypeSolver typeSolver) { @Override public SymbolReference solveSymbol(String name) { - SwitchStmt switchStmt = (SwitchStmt) requireParentNode(wrappedNode); + SwitchStmt switchStmt = (SwitchStmt) demandParentNode(wrappedNode); ResolvedType type = JavaParserFacade.get(typeSolver).getType(switchStmt.getSelector()); if (type.isReferenceType() && type.asReferenceType().getTypeDeclaration().isEnum()) { if (type instanceof ReferenceTypeImpl) { diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/TryWithResourceContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/TryWithResourceContext.java index 8d65836c3c..b12a70b6d6 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/TryWithResourceContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/TryWithResourceContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -42,7 +42,7 @@ import java.util.Optional; import java.util.stream.Collectors; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; public class TryWithResourceContext extends AbstractJavaParserContext { @@ -63,7 +63,7 @@ public Optional solveSymbolAsValue(String name) { } } - if (requireParentNode(wrappedNode) instanceof BlockStmt) { + if (demandParentNode(wrappedNode) instanceof BlockStmt) { return StatementContext.solveInBlockAsValue(name, typeSolver, wrappedNode); } else { return getParent().solveSymbolAsValue(name); @@ -82,7 +82,7 @@ public SymbolReference solveSymbol(String na } } - if (requireParentNode(wrappedNode) instanceof BlockStmt) { + if (demandParentNode(wrappedNode) instanceof BlockStmt) { return StatementContext.solveInBlock(name, typeSolver, wrappedNode); } else { return getParent().solveSymbol(name); diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/VariableDeclarationExprContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/VariableDeclarationExprContext.java index 618084a962..b0c131c506 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/VariableDeclarationExprContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/VariableDeclarationExprContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/VariableDeclaratorContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/VariableDeclaratorContext.java index 8764625aa1..483e810b53 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/VariableDeclaratorContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/VariableDeclaratorContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/AstResolutionUtils.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/AstResolutionUtils.java index 05bc161ac2..599137f4d2 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/AstResolutionUtils.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/AstResolutionUtils.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -82,6 +82,14 @@ static String getClassName(String base, Node container) { } else { return b + "." + cn; } + } else if (container instanceof com.github.javaparser.ast.body.AnnotationDeclaration) { + String b = getClassName(base, container.getParentNode().orElse(null)); + String cn = ((com.github.javaparser.ast.body.AnnotationDeclaration) container).getName().getId(); + if (b.isEmpty()) { + return cn; + } else { + return b + "." + cn; + } } else if (container != null) { return getClassName(base, container.getParentNode().orElse(null)); } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/DefaultConstructorDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/DefaultConstructorDeclaration.java index a03e8596ec..49864fc101 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/DefaultConstructorDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/DefaultConstructorDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnnotationDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnnotationDeclaration.java index 04e989e6de..45b7094f8f 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnnotationDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnnotationDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -28,7 +28,9 @@ import com.github.javaparser.resolution.types.ResolvedType; import com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration; import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; +import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Optional; @@ -50,7 +52,9 @@ public JavaParserAnnotationDeclaration(AnnotationDeclaration wrappedNode, TypeSo @Override public List getAncestors(boolean acceptIncompleteList) { - throw new UnsupportedOperationException(); + List ancestors = new ArrayList<>(); + ancestors.add(new ReferenceTypeImpl(typeSolver.solveType("java.lang.annotation.Annotation"), typeSolver)); + return ancestors; } @Override diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnnotationMemberDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnnotationMemberDeclaration.java index 16166d7d89..23fd5e20c9 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnnotationMemberDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnnotationMemberDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -25,6 +25,9 @@ import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.resolution.declarations.ResolvedAnnotationMemberDeclaration; import com.github.javaparser.resolution.types.ResolvedType; +import com.github.javaparser.symbolsolver.core.resolution.Context; +import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade; +import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory; import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; /** @@ -51,11 +54,15 @@ public Expression getDefaultValue() { @Override public ResolvedType getType() { - throw new UnsupportedOperationException(); + return JavaParserFacade.get(typeSolver).convert(wrappedNode.getType(), getContext()); } @Override public String getName() { return wrappedNode.getNameAsString(); } + + private Context getContext() { + return JavaParserFactory.getContext(wrappedNode, typeSolver); + } } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnonymousClassDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnonymousClassDeclaration.java index b29a869328..83492f3ea4 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnonymousClassDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserAnonymousClassDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserClassDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserClassDeclaration.java index 2baf26c7c3..f2459db53d 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserClassDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserClassDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -83,9 +83,7 @@ public boolean equals(Object o) { JavaParserClassDeclaration that = (JavaParserClassDeclaration) o; - if (!wrappedNode.equals(that.wrappedNode)) return false; - - return true; + return wrappedNode.equals(that.wrappedNode); } @Override @@ -96,8 +94,8 @@ public int hashCode() { @Override public String toString() { return "JavaParserClassDeclaration{" + - "wrappedNode=" + wrappedNode + - '}'; + "wrappedNode=" + wrappedNode + + '}'; } /// @@ -241,11 +239,7 @@ public boolean canBeAssignedTo(ResolvedReferenceTypeDeclaration other) { return true; } ResolvedClassDeclaration superclass = (ResolvedClassDeclaration) getSuperClass().getTypeDeclaration(); - if (superclass != null) { - // We want to avoid infinite recursion in case of Object having Object as ancestor - if (Object.class.getCanonicalName().equals(superclass.getQualifiedName())) { - return true; - } + if (superclass != null && superclass != this) { if (superclass.canBeAssignedTo(other)) { return true; } @@ -416,6 +410,8 @@ private ResolvedReferenceType toReferenceType(ClassOrInterfaceType classOrInterf className = classOrInterfaceType.getScope().get().toString() + "." + className; } SymbolReference ref = solveType(className); + + // If unable to solve by the class name alone, attempt to qualify it. if (!ref.isSolved()) { Optional localScope = classOrInterfaceType.getScope(); if (localScope.isPresent()) { @@ -423,15 +419,21 @@ private ResolvedReferenceType toReferenceType(ClassOrInterfaceType classOrInterf ref = solveType(localName); } } + + // If still unable to resolve, throw an exception. if (!ref.isSolved()) { throw new UnsolvedSymbolException(classOrInterfaceType.getName().getId()); } + if (!classOrInterfaceType.getTypeArguments().isPresent()) { return new ReferenceTypeImpl(ref.getCorrespondingDeclaration().asReferenceType(), typeSolver); } + List superClassTypeParameters = classOrInterfaceType.getTypeArguments().get() - .stream().map(ta -> new LazyType(v -> JavaParserFacade.get(typeSolver).convert(ta, ta))) - .collect(Collectors.toList()); + .stream() + .map(ta -> new LazyType(v -> JavaParserFacade.get(typeSolver).convert(ta, ta))) + .collect(Collectors.toList()); + return new ReferenceTypeImpl(ref.getCorrespondingDeclaration().asReferenceType(), superClassTypeParameters, typeSolver); } } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserConstructorDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserConstructorDeclaration.java index 4c14dc1e86..9be898cca5 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserConstructorDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserConstructorDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumConstantDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumConstantDeclaration.java index 7e1c7d92a5..25ca5ca751 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumConstantDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumConstantDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -27,7 +27,7 @@ import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -44,7 +44,7 @@ public JavaParserEnumConstantDeclaration(com.github.javaparser.ast.body.EnumCons @Override public ResolvedType getType() { - return new ReferenceTypeImpl(new JavaParserEnumDeclaration((EnumDeclaration) requireParentNode(wrappedNode), typeSolver), typeSolver); + return new ReferenceTypeImpl(new JavaParserEnumDeclaration((EnumDeclaration) demandParentNode(wrappedNode), typeSolver), typeSolver); } @Override diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumDeclaration.java index cf667ac9d7..1752e8fd3f 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserEnumDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -392,7 +392,7 @@ public Optional toAst() { @Override public AccessSpecifier accessSpecifier() { - throw new UnsupportedOperationException(); + return wrappedNode.getAccessSpecifier(); } @Override diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserFieldDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserFieldDeclaration.java index 40796db63d..acd7b402ba 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserFieldDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserFieldDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -23,7 +23,6 @@ import com.github.javaparser.ast.AccessSpecifier; import com.github.javaparser.ast.Modifier; -import com.github.javaparser.ast.body.EnumConstantDeclaration; import com.github.javaparser.ast.body.TypeDeclaration; import com.github.javaparser.ast.body.VariableDeclarator; import com.github.javaparser.resolution.declarations.ResolvedFieldDeclaration; @@ -34,7 +33,7 @@ import java.util.Optional; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -51,10 +50,10 @@ public JavaParserFieldDeclaration(VariableDeclarator variableDeclarator, TypeSol } this.variableDeclarator = variableDeclarator; this.typeSolver = typeSolver; - if (!(requireParentNode(variableDeclarator) instanceof com.github.javaparser.ast.body.FieldDeclaration)) { - throw new IllegalStateException(requireParentNode(variableDeclarator).getClass().getCanonicalName()); + if (!(demandParentNode(variableDeclarator) instanceof com.github.javaparser.ast.body.FieldDeclaration)) { + throw new IllegalStateException(demandParentNode(variableDeclarator).getClass().getCanonicalName()); } - this.wrappedNode = (com.github.javaparser.ast.body.FieldDeclaration) requireParentNode(variableDeclarator); + this.wrappedNode = (com.github.javaparser.ast.body.FieldDeclaration) demandParentNode(variableDeclarator); } @Override diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration.java index 619200bed0..28c27aa2cb 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserMethodDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserMethodDeclaration.java index f93b72de92..a536d49f1e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserMethodDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserMethodDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -22,7 +22,6 @@ package com.github.javaparser.symbolsolver.javaparsermodel.declarations; import com.github.javaparser.ast.AccessSpecifier; -import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.body.MethodDeclaration; import com.github.javaparser.ast.expr.ObjectCreationExpr; @@ -43,7 +42,7 @@ import java.util.Optional; import java.util.stream.Collectors; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -68,11 +67,11 @@ public String toString() { @Override public ResolvedReferenceTypeDeclaration declaringType() { - if (requireParentNode(wrappedNode) instanceof ObjectCreationExpr) { - ObjectCreationExpr parentNode = (ObjectCreationExpr) requireParentNode(wrappedNode); + if (demandParentNode(wrappedNode) instanceof ObjectCreationExpr) { + ObjectCreationExpr parentNode = (ObjectCreationExpr) demandParentNode(wrappedNode); return new JavaParserAnonymousClassDeclaration(parentNode, typeSolver); } - return JavaParserFactory.toTypeDeclaration(requireParentNode(wrappedNode), typeSolver); + return JavaParserFactory.toTypeDeclaration(demandParentNode(wrappedNode), typeSolver); } @Override diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserParameterDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserParameterDeclaration.java index 82191ed23a..bcf225bb42 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserParameterDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserParameterDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserSymbolDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserSymbolDeclaration.java index 9d3487b6b4..a3f1b514a0 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserSymbolDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserSymbolDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -37,7 +37,7 @@ import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory; import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * This should not be used to represent fields of parameters. @@ -72,7 +72,7 @@ public static JavaParserSymbolDeclaration localVar(VariableDeclarator variableDe public static int getParamPos(Parameter parameter) { int pos = 0; - for (Node node : requireParentNode(parameter).getChildNodes()) { + for (Node node : demandParentNode(parameter).getChildNodes()) { if (node == parameter) { return pos; } else if (node instanceof Parameter) { @@ -83,8 +83,8 @@ public static int getParamPos(Parameter parameter) { } public static int getParamPos(Node node) { - if (requireParentNode(node) instanceof MethodCallExpr) { - MethodCallExpr call = (MethodCallExpr) requireParentNode(node); + if (demandParentNode(node) instanceof MethodCallExpr) { + MethodCallExpr call = (MethodCallExpr) demandParentNode(node); for (int i = 0; i < call.getArguments().size(); i++) { if (call.getArguments().get(i) == node) return i; } @@ -125,9 +125,9 @@ public boolean isType() { public ResolvedType getType() { if (wrappedNode instanceof Parameter) { Parameter parameter = (Parameter) wrappedNode; - if (requireParentNode(wrappedNode) instanceof LambdaExpr) { + if (demandParentNode(wrappedNode) instanceof LambdaExpr) { int pos = getParamPos(parameter); - ResolvedType lambdaType = JavaParserFacade.get(typeSolver).getType(requireParentNode(wrappedNode)); + ResolvedType lambdaType = JavaParserFacade.get(typeSolver).getType(demandParentNode(wrappedNode)); // TODO understand from the context to which method this corresponds //MethodDeclaration methodDeclaration = JavaParserFacade.get(typeSolver).getMethodCalled @@ -147,9 +147,9 @@ public ResolvedType getType() { } } else if (wrappedNode instanceof VariableDeclarator) { VariableDeclarator variableDeclarator = (VariableDeclarator) wrappedNode; - if (requireParentNode(wrappedNode) instanceof VariableDeclarationExpr) { + if (demandParentNode(wrappedNode) instanceof VariableDeclarationExpr) { return JavaParserFacade.get(typeSolver).convert(variableDeclarator.getType(), JavaParserFactory.getContext(wrappedNode, typeSolver)); - } else if (requireParentNode(wrappedNode) instanceof FieldDeclaration) { + } else if (demandParentNode(wrappedNode) instanceof FieldDeclaration) { return JavaParserFacade.get(typeSolver).convert(variableDeclarator.getType(), JavaParserFactory.getContext(wrappedNode, typeSolver)); } } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeAdapter.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeAdapter.java index 4c533687b6..fc466eda23 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeAdapter.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeAdapter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -23,6 +23,7 @@ import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; +import com.github.javaparser.ast.body.AnnotationDeclaration; import com.github.javaparser.ast.body.BodyDeclaration; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; import com.github.javaparser.ast.body.EnumDeclaration; @@ -132,6 +133,8 @@ public SymbolReference solveType(String name) { } } else if (internalType instanceof EnumDeclaration) { return SymbolReference.solved(new JavaParserEnumDeclaration((com.github.javaparser.ast.body.EnumDeclaration) internalType, typeSolver)); + } else if (internalType instanceof AnnotationDeclaration) { + return SymbolReference.solved(new JavaParserAnnotationDeclaration((com.github.javaparser.ast.body.AnnotationDeclaration) internalType, typeSolver)); } else { throw new UnsupportedOperationException(); } @@ -144,6 +147,8 @@ public SymbolReference solveType(String name) { } } else if (internalType instanceof EnumDeclaration) { return new SymbolSolver(typeSolver).solveTypeInType(new JavaParserEnumDeclaration((com.github.javaparser.ast.body.EnumDeclaration) internalType, typeSolver), name.substring(prefix.length())); + } else if (internalType instanceof AnnotationDeclaration) { + return SymbolReference.solved(new JavaParserAnnotationDeclaration((com.github.javaparser.ast.body.AnnotationDeclaration) internalType, typeSolver)); } else { throw new UnsupportedOperationException(); } diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeParameter.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeParameter.java index 105f1b1043..25e535b92c 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeParameter.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeParameter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -41,7 +41,7 @@ import java.util.Set; import java.util.stream.Collectors; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -120,7 +120,7 @@ public String getContainerId() { @Override public ResolvedTypeParametrizable getContainer() { - Node parentNode = requireParentNode(wrappedNode); + Node parentNode = demandParentNode(wrappedNode); if (parentNode instanceof com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) { com.github.javaparser.ast.body.ClassOrInterfaceDeclaration jpTypeDeclaration = (com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) parentNode; return JavaParserFacade.get(typeSolver).getTypeDeclaration(jpTypeDeclaration); diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeVariableDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeVariableDeclaration.java index 6ba1e2aad0..b728aa0ccf 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeVariableDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserTypeVariableDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserVariableDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserVariableDeclaration.java index ae35c57def..bae56d82d3 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserVariableDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserVariableDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -28,7 +28,7 @@ import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade; import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; -import static com.github.javaparser.symbolsolver.javaparser.Navigator.requireParentNode; +import static com.github.javaparser.symbolsolver.javaparser.Navigator.demandParentNode; /** * @author Federico Tomassetti @@ -45,10 +45,10 @@ public JavaParserVariableDeclaration(VariableDeclarator variableDeclarator, Type } this.variableDeclarator = variableDeclarator; this.typeSolver = typeSolver; - if (!(requireParentNode(variableDeclarator) instanceof VariableDeclarationExpr)) { - throw new IllegalStateException(requireParentNode(variableDeclarator).getClass().getCanonicalName()); + if (!(demandParentNode(variableDeclarator) instanceof VariableDeclarationExpr)) { + throw new IllegalStateException(demandParentNode(variableDeclarator).getClass().getCanonicalName()); } - this.wrappedNode = (VariableDeclarationExpr) requireParentNode(variableDeclarator); + this.wrappedNode = (VariableDeclarationExpr) demandParentNode(variableDeclarator); } @Override diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/AbstractSymbolDeclarator.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/AbstractSymbolDeclarator.java index c6279af5f4..99bcb0450e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/AbstractSymbolDeclarator.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/AbstractSymbolDeclarator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/FieldSymbolDeclarator.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/FieldSymbolDeclarator.java index 5927c7f942..74a72012d0 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/FieldSymbolDeclarator.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/FieldSymbolDeclarator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/NoSymbolDeclarator.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/NoSymbolDeclarator.java index 9790a8f225..0ce3daa123 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/NoSymbolDeclarator.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/NoSymbolDeclarator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/ParameterSymbolDeclarator.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/ParameterSymbolDeclarator.java index 0c8fd2992e..7ac9adae31 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/ParameterSymbolDeclarator.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/ParameterSymbolDeclarator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/VariableSymbolDeclarator.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/VariableSymbolDeclarator.java index b8c73d4690..04bf3e0521 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/VariableSymbolDeclarator.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarators/VariableSymbolDeclarator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/package-info.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/package-info.java index 443223d27d..df936a1709 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/package-info.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/package-info.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistAnnotationDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistAnnotationDeclaration.java index 98708c8a16..f4c7f1f515 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistAnnotationDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistAnnotationDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistAnnotationMemberDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistAnnotationMemberDeclaration.java index 70fa147fa4..8cc654b932 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistAnnotationMemberDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistAnnotationMemberDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistClassDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistClassDeclaration.java index 505bd11b90..2a50ec7cca 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistClassDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistClassDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistConstructorDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistConstructorDeclaration.java index ff285c45b0..f6265dadbe 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistConstructorDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistConstructorDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumConstantDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumConstantDeclaration.java index 329ec6a582..e9db25eb14 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumConstantDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumConstantDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumDeclaration.java index 1a26b5ce7f..6a21b5fdf6 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistEnumDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistFactory.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistFactory.java index ed7cdb8299..90d2170923 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistFactory.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistFactory.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistFieldDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistFieldDeclaration.java index 326c6b0b82..a4ec4407ea 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistFieldDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistFieldDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistInterfaceDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistInterfaceDeclaration.java index 0d1e86b5fd..16480a811f 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistInterfaceDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistInterfaceDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistMethodDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistMethodDeclaration.java index 1519ffa3c4..2b87c65a5f 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistMethodDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistMethodDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistParameterDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistParameterDeclaration.java index 8ad2a39d48..a92214faef 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistParameterDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistParameterDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistTypeDeclarationAdapter.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistTypeDeclarationAdapter.java index b7fb979a06..f81add57d8 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistTypeDeclarationAdapter.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistTypeDeclarationAdapter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistTypeParameter.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistTypeParameter.java index d326273f97..253c5583b0 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistTypeParameter.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistTypeParameter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistUtils.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistUtils.java index 4974cae07e..f5723f2fa6 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistUtils.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/JavassistUtils.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/package-info.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/package-info.java index 426c31878a..d2faa8937d 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/package-info.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javassistmodel/package-info.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractClassDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractClassDeclaration.java similarity index 98% rename from javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractClassDeclaration.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractClassDeclaration.java index fd03fc5565..6b1e366653 100644 --- a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractClassDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractClassDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java similarity index 97% rename from javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java index e08b3a0d9b..e2e3e9d8d8 100644 --- a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/ConfilictingGenericTypesException.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/ConfilictingGenericTypesException.java similarity index 96% rename from javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/ConfilictingGenericTypesException.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/ConfilictingGenericTypesException.java index aa0855c100..e159585b51 100644 --- a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/ConfilictingGenericTypesException.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/ConfilictingGenericTypesException.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/FunctionalInterfaceLogic.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/FunctionalInterfaceLogic.java similarity index 98% rename from javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/FunctionalInterfaceLogic.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/FunctionalInterfaceLogic.java index 23ce545796..9331ce578f 100644 --- a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/FunctionalInterfaceLogic.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/FunctionalInterfaceLogic.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceContext.java similarity index 99% rename from javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceContext.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceContext.java index 2957efa4dd..931730a33b 100644 --- a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceContext.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceContext.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceVariableType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceVariableType.java similarity index 99% rename from javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceVariableType.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceVariableType.java index 38c4196581..e85fa228fb 100644 --- a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceVariableType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/InferenceVariableType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/MethodResolutionCapability.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/MethodResolutionCapability.java similarity index 96% rename from javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/MethodResolutionCapability.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/MethodResolutionCapability.java index c23d15d2f9..20783e1994 100644 --- a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/MethodResolutionCapability.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/MethodResolutionCapability.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/ObjectProvider.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/ObjectProvider.java similarity index 95% rename from javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/ObjectProvider.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/ObjectProvider.java index 544ce4889c..ce67f75672 100644 --- a/javaparser-symbol-solver-logic/src/main/java/com/github/javaparser/symbolsolver/logic/ObjectProvider.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/ObjectProvider.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/resolution/SymbolReference.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/resolution/SymbolReference.java similarity index 98% rename from javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/resolution/SymbolReference.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/resolution/SymbolReference.java index 6162ce95c7..952ebb0d23 100644 --- a/javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/resolution/SymbolReference.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/resolution/SymbolReference.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/resolution/TypeSolver.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/resolution/TypeSolver.java similarity index 98% rename from javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/resolution/TypeSolver.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/resolution/TypeSolver.java index d2e5424f4e..7379bb5b02 100644 --- a/javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/resolution/TypeSolver.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/resolution/TypeSolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/resolution/Value.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/resolution/Value.java similarity index 97% rename from javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/resolution/Value.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/resolution/Value.java index 64966852dc..9359f1de1e 100644 --- a/javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/resolution/Value.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/resolution/Value.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/LazyType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/LazyType.java index f2a3d83628..be319f6f9d 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/LazyType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/LazyType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/NullType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/NullType.java similarity index 97% rename from javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/NullType.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/NullType.java index b20ec51934..dac282ef7e 100644 --- a/javaparser-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/NullType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/NullType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/ReferenceTypeImpl.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/ReferenceTypeImpl.java index e8a0a16536..9e4319f503 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/ReferenceTypeImpl.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/model/typesystem/ReferenceTypeImpl.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/MyObjectProvider.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/MyObjectProvider.java index c9e26aea31..f79fdf71e7 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/MyObjectProvider.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/MyObjectProvider.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionAnnotationDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionAnnotationDeclaration.java index 20e5664d75..ceef11fa8e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionAnnotationDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionAnnotationDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionAnnotationMemberDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionAnnotationMemberDeclaration.java index 4aaa48997b..893bd953cd 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionAnnotationMemberDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionAnnotationMemberDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassAdapter.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassAdapter.java index 4ca683f667..0c7566659b 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassAdapter.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassAdapter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassDeclaration.java index 1451a27eeb..b093a7ecd6 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionClassDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionConstructorDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionConstructorDeclaration.java index f4342f4036..51e1b98dda 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionConstructorDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionConstructorDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumConstantDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumConstantDeclaration.java index 25d6f8fc80..af013d74ce 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumConstantDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumConstantDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumDeclaration.java index f6d5d53552..b5bea9e76a 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionEnumDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionFactory.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionFactory.java index 9ce9a8727e..c4b2ee855f 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionFactory.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionFactory.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionFieldDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionFieldDeclaration.java index f6b5e010ef..c1062430ec 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionFieldDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionFieldDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionInterfaceDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionInterfaceDeclaration.java index aebaa50ceb..71c36e39e8 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionInterfaceDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionInterfaceDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodDeclaration.java index 0a56798413..e37b7901b0 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodResolutionLogic.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodResolutionLogic.java index 2c7833596d..90128bc800 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodResolutionLogic.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionMethodResolutionLogic.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionParameterDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionParameterDeclaration.java index 7e0eb617da..729d240a60 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionParameterDeclaration.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionParameterDeclaration.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionTypeParameter.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionTypeParameter.java index 3922dae538..76b37230ff 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionTypeParameter.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/ReflectionTypeParameter.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/ClassComparator.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/ClassComparator.java index ff247ba6ba..fcd19ff81e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/ClassComparator.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/ClassComparator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/MethodComparator.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/MethodComparator.java index 1062b69ec2..2544c9bbec 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/MethodComparator.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/MethodComparator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/ParameterComparator.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/ParameterComparator.java index 525dd48b95..16e18897a5 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/ParameterComparator.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/comparators/ParameterComparator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/package-info.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/package-info.java index bff7acae76..fc75fbc5a5 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/package-info.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/reflectionmodel/package-info.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/ConstructorResolutionLogic.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/ConstructorResolutionLogic.java index fd7b1f01f9..9cf1da8f05 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/ConstructorResolutionLogic.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/ConstructorResolutionLogic.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/MethodResolutionLogic.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/MethodResolutionLogic.java index 98ea4be520..3fa872837a 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/MethodResolutionLogic.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/MethodResolutionLogic.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/SymbolDeclarator.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/SymbolDeclarator.java index 055aeee124..9a696adb45 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/SymbolDeclarator.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/SymbolDeclarator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/SymbolSolver.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/SymbolSolver.java index bdb1280078..ff4de2be49 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/SymbolSolver.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/SymbolSolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameCategory.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameCategory.java index a7c39c6acb..33562c8913 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameCategory.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameCategory.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameLogic.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameLogic.java index eeaced9bd9..e1e039d404 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameLogic.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameLogic.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameRole.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameRole.java index a1d7b20755..228c230968 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameRole.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/naming/NameRole.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Bound.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Bound.java index 19d8d99ec5..b7336b31c8 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Bound.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Bound.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/BoundSet.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/BoundSet.java index b837ce58fa..90f40401c2 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/BoundSet.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/BoundSet.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ConstraintFormula.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ConstraintFormula.java index 32e8bb1294..f9812f9573 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ConstraintFormula.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ConstraintFormula.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ConstraintFormulaSet.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ConstraintFormulaSet.java index be5633b025..d568f84a25 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ConstraintFormulaSet.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ConstraintFormulaSet.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ControlFlowLogic.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ControlFlowLogic.java index a34d730c4f..b56431491f 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ControlFlowLogic.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ControlFlowLogic.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ExpressionHelper.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ExpressionHelper.java index f521f900ea..49a274c66f 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ExpressionHelper.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ExpressionHelper.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InferenceVariable.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InferenceVariable.java index 676b85cdb6..44960cee36 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InferenceVariable.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InferenceVariable.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InferenceVariableSubstitution.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InferenceVariableSubstitution.java index da3d4d628e..42fc05dd79 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InferenceVariableSubstitution.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InferenceVariableSubstitution.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Instantiation.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Instantiation.java index f4efdf758b..e941c317f9 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Instantiation.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Instantiation.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InstantiationSet.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InstantiationSet.java index 71c01b70d0..6bf491037e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InstantiationSet.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/InstantiationSet.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/MethodType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/MethodType.java index bb6ee5430f..8d4b26d28e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/MethodType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/MethodType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ProperLowerBound.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ProperLowerBound.java index 11ba8da27c..f2551367dd 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ProperLowerBound.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ProperLowerBound.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ProperUpperBound.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ProperUpperBound.java index 91576f8138..a229f481ba 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ProperUpperBound.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ProperUpperBound.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Substitution.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Substitution.java index 53a2ba3fef..2f6959b461 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Substitution.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/Substitution.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeHelper.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeHelper.java index bdb0e56d81..df90c3b81e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeHelper.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeHelper.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeInference.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeInference.java index 95d47791e2..8a81c51a75 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeInference.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeInference.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeInferenceCache.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeInferenceCache.java index 909bfdd549..9594f18ae2 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeInferenceCache.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeInferenceCache.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/CapturesBound.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/CapturesBound.java index fcd1546940..a9ae2906e3 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/CapturesBound.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/CapturesBound.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/FalseBound.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/FalseBound.java index f1f3b121c6..1221ae11cb 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/FalseBound.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/FalseBound.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SameAsBound.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SameAsBound.java index d70b1ed205..61022d7f0c 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SameAsBound.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SameAsBound.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SubtypeOfBound.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SubtypeOfBound.java index f824bc0eaa..a845cf9ac5 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SubtypeOfBound.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/SubtypeOfBound.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/ThrowsBound.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/ThrowsBound.java index 29d559e2fd..88fce70177 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/ThrowsBound.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/bounds/ThrowsBound.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/ExpressionCompatibleWithType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/ExpressionCompatibleWithType.java index 084d8fef6e..ad7fa850b7 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/ExpressionCompatibleWithType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/ExpressionCompatibleWithType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/LambdaThrowsCompatibleWithType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/LambdaThrowsCompatibleWithType.java index 4a806f09ed..1a3dadf80e 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/LambdaThrowsCompatibleWithType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/LambdaThrowsCompatibleWithType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/MethodReferenceThrowsCompatibleWithType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/MethodReferenceThrowsCompatibleWithType.java index b81a650005..caae0adc01 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/MethodReferenceThrowsCompatibleWithType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/MethodReferenceThrowsCompatibleWithType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeCompatibleWithType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeCompatibleWithType.java index 42d93446ef..53609cbd54 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeCompatibleWithType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeCompatibleWithType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeContainedByType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeContainedByType.java index 6e13819f1a..af6db75665 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeContainedByType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeContainedByType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeSameAsType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeSameAsType.java index ae2c076732..218c30e0a7 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeSameAsType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeSameAsType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeSubtypeOfType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeSubtypeOfType.java index a6dd68b601..a002730e3a 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeSubtypeOfType.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/TypeSubtypeOfType.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/AarTypeSolver.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/AarTypeSolver.java index 24bc631384..6965a2e475 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/AarTypeSolver.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/AarTypeSolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ClassLoaderTypeSolver.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ClassLoaderTypeSolver.java index ac9fb1fdea..c94cbfb515 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ClassLoaderTypeSolver.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ClassLoaderTypeSolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/CombinedTypeSolver.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/CombinedTypeSolver.java index b69b34c3c5..3e27b2c0ac 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/CombinedTypeSolver.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/CombinedTypeSolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JarTypeSolver.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JarTypeSolver.java index 2a19d72cbe..e324afd5d4 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JarTypeSolver.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JarTypeSolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -46,6 +46,7 @@ */ public class JarTypeSolver implements TypeSolver { + @Deprecated private static JarTypeSolver instance; private TypeSolver parent; @@ -68,6 +69,13 @@ public JarTypeSolver(InputStream jarInputStream) throws IOException { addPathToJar(jarInputStream); } + /** + * Suitable for being called only once. If called multiple times, it will cause an IllegalStateException per #2547 . + * + * @deprecated Use of this static method / singleton pattern is strongly discouraged and will be removed (#2547). + * Instead, a new instance should be created for each jar (consistent with the other type solvers e.g. AarTypeSolver, JavaParserTypeSolver, ClassLoaderTypeSolver). + */ + @Deprecated public static JarTypeSolver getJarTypeSolver(String pathToJar) throws IOException { if (instance == null) { instance = new JarTypeSolver(pathToJar); diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JavaParserTypeSolver.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JavaParserTypeSolver.java index 1d2255dc7e..79ca2c2183 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JavaParserTypeSolver.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JavaParserTypeSolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * @@ -61,9 +61,10 @@ public class JavaParserTypeSolver implements TypeSolver { private TypeSolver parent; - private final Cache> parsedFiles = CacheBuilder.newBuilder().softValues().build(); - private final Cache> parsedDirectories = CacheBuilder.newBuilder().softValues().build(); - private final Cache> foundTypes = CacheBuilder.newBuilder().softValues().build(); + private final Cache> parsedFiles; + private final Cache> parsedDirectories; + private final Cache> foundTypes; + private static final int CACHE_SIZE_UNSET = -1; public JavaParserTypeSolver(File srcDir) { this(srcDir.toPath()); @@ -73,6 +74,10 @@ public JavaParserTypeSolver(String srcDir) { this(new File(srcDir)); } + public JavaParserTypeSolver(Path srcDir) { + this(srcDir, new ParserConfiguration().setLanguageLevel(BLEEDING_EDGE)); + } + public JavaParserTypeSolver(File srcDir, ParserConfiguration parserConfiguration) { this(srcDir.toPath(), parserConfiguration); } @@ -82,17 +87,33 @@ public JavaParserTypeSolver(String srcDir, ParserConfiguration parserConfigurati } public JavaParserTypeSolver(Path srcDir, ParserConfiguration parserConfiguration) { + this(srcDir, parserConfiguration, CACHE_SIZE_UNSET); + } + + private Cache BuildCache(long cacheSizeLimit) { + CacheBuilder cacheBuilder = CacheBuilder.newBuilder().softValues(); + if (cacheSizeLimit != CACHE_SIZE_UNSET) { + cacheBuilder.maximumSize(cacheSizeLimit); + } + return cacheBuilder.build(); + } + + /** + * @param srcDir is the source code directory for the type solver. + * @param parserConfiguration is the configuration the solver should use when inspecting source code files. + * @param cacheSizeLimit is an optional size limit to the internal caches used by this solver. + * Be advised that setting the size too low might lead to noticeable performance degradation. + * However, using a size limit is advised when solving symbols in large code sources. In such cases, internal caches might consume large amounts of heap space. + */ + public JavaParserTypeSolver(Path srcDir, ParserConfiguration parserConfiguration, long cacheSizeLimit) { if (!Files.exists(srcDir) || !Files.isDirectory(srcDir)) { throw new IllegalStateException("SrcDir does not exist or is not a directory: " + srcDir); } this.srcDir = srcDir; javaParser = new JavaParser(parserConfiguration); - } - - public JavaParserTypeSolver(Path srcDir) { - this(srcDir, - new ParserConfiguration() - .setLanguageLevel(BLEEDING_EDGE)); + parsedFiles = BuildCache(cacheSizeLimit); + parsedDirectories = BuildCache(cacheSizeLimit); + foundTypes = BuildCache(cacheSizeLimit); } @Override @@ -155,7 +176,7 @@ private List parseDirectory(Path srcDirectory, boolean recursiv try { return parsedDirectories.get(srcDirectory.toAbsolutePath(), () -> { List units = new ArrayList<>(); - if(Files.exists(srcDirectory)) { + if (Files.exists(srcDirectory)) { try (DirectoryStream srcDirectoryStream = Files.newDirectoryStream(srcDirectory)) { srcDirectoryStream .forEach(file -> { @@ -177,8 +198,6 @@ private List parseDirectory(Path srcDirectory, boolean recursiv @Override public SymbolReference tryToSolveType(String name) { - // TODO support enums - // TODO support interfaces try { return foundTypes.get(name, () -> { SymbolReference result = tryToSolveTypeUncached(name); diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/MemoryTypeSolver.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/MemoryTypeSolver.java index 5a0b399a0d..ae996c63ca 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/MemoryTypeSolver.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/MemoryTypeSolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ReflectionTypeSolver.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ReflectionTypeSolver.java index 7535f28ce1..124e931e10 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ReflectionTypeSolver.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ReflectionTypeSolver.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/SymbolSolverCollectionStrategy.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/SymbolSolverCollectionStrategy.java index 645ab0e350..c88645ab97 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/SymbolSolverCollectionStrategy.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/SymbolSolverCollectionStrategy.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 Federico Tomassetti - * Copyright (C) 2017-2019 The JavaParser Team. + * Copyright (C) 2017-2020 The JavaParser Team. * * This file is part of JavaParser. * diff --git a/javaparser-symbol-solver-logic/.gitignore b/javaparser-symbol-solver-logic/.gitignore deleted file mode 100644 index 8f22fa7338..0000000000 --- a/javaparser-symbol-solver-logic/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -build -/.classpath -/.project -.settings diff --git a/javaparser-symbol-solver-logic/pom.xml b/javaparser-symbol-solver-logic/pom.xml deleted file mode 100644 index 9cfa349273..0000000000 --- a/javaparser-symbol-solver-logic/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - javaparser-parent - com.github.javaparser - 3.15.8-SNAPSHOT - - 4.0.0 - - javaparser-symbol-solver-logic - jar - A Symbol Solver for Java, built on top of JavaParser (logic) - - - - GNU Lesser General Public License - http://www.gnu.org/licenses/lgpl-3.0.html - repo - - - Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - A business-friendly OSS license - - - - - 1.8 - ${maven.build.timestamp} - - - - - com.github.javaparser - javaparser-symbol-solver-model - ${project.version} - - - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - com.github.javaparser.symbolsolver.logic - - - - - - - - diff --git a/javaparser-symbol-solver-model/.gitignore b/javaparser-symbol-solver-model/.gitignore deleted file mode 100644 index 50d10e2891..0000000000 --- a/javaparser-symbol-solver-model/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -*.class - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.ear - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* -.idea -target -build -/.classpath -/.project -.settings diff --git a/javaparser-symbol-solver-model/pom.xml b/javaparser-symbol-solver-model/pom.xml deleted file mode 100644 index 7ba16b843f..0000000000 --- a/javaparser-symbol-solver-model/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - javaparser-parent - com.github.javaparser - 3.15.8-SNAPSHOT - - 4.0.0 - - javaparser-symbol-solver-model - jar - A Symbol Solver for Java, built on top of JavaParser (model) - - - - GNU Lesser General Public License - http://www.gnu.org/licenses/lgpl-3.0.html - repo - - - Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - A business-friendly OSS license - - - - - 1.8 - ${maven.build.timestamp} - - - - - com.github.javaparser - javaparser-core - ${project.version} - - - org.javassist - javassist - - - com.google.guava - guava - - - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - com.github.javaparser.symbolsolver.model - - - - - - - - - - diff --git a/javaparser-symbol-solver-testing/pom.xml b/javaparser-symbol-solver-testing/pom.xml index edcd43e0a7..8683f8fe31 100644 --- a/javaparser-symbol-solver-testing/pom.xml +++ b/javaparser-symbol-solver-testing/pom.xml @@ -3,7 +3,7 @@ javaparser-parent com.github.javaparser - 3.15.8-SNAPSHOT + 3.15.19-SNAPSHOT 4.0.0 @@ -121,20 +121,10 @@ org.junit-pioneer junit-pioneer - - com.github.javaparser - javaparser-symbol-solver-logic - ${project.version} - org.mockito mockito-core - - com.github.javaparser - javaparser-symbol-solver-model - ${project.version} - com.github.javaparser javaparser-symbol-solver-core diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1370Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1370Test.java new file mode 100644 index 0000000000..f3aaf27a34 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1370Test.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2015-2016 Federico Tomassetti + * Copyright (C) 2017-2020 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.symbolsolver; + +import com.github.javaparser.JavaParser; +import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.expr.MethodCallExpr; +import com.github.javaparser.ast.visitor.VoidVisitorAdapter; +import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade; +import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; +import org.junit.jupiter.api.Test; + +/** + * Solving generic types that are of type java.lang.Object + * @see https://github.com/javaparser/javaparser/issues/1370 + */ +public class Issue1370Test { + + @Test + public void test() { + final String source = String.join(System.lineSeparator(), + "package graph;", + "class Vertex {", + " private final Data data;", + " public Vertex(Data data) { this.data = data; }", + " public Data getData() { return this.data; }", + "}", + "", + "public class Application {", + " public static void main(String[] args) {", + " System.out.println(new Vertex<>(42).getData().equals(42));", + " }", + "}"); + + final JavaParserFacade facade = JavaParserFacade.get(new ReflectionTypeSolver(false)); + + StaticJavaParser.parse(source).accept(new VoidVisitorAdapter() { + @Override + public void visit(final MethodCallExpr n, final Void arg) { + super.visit(n, arg); + + try { + System.out.printf("Node: %s, solved Type: %s%n", n, facade.solve(n)); + } catch (RuntimeException e) { + e.printStackTrace(); + } + } + }, null); + } +} diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1485Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1485Test.java index d04c34085e..34ff8aad3c 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1485Test.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1485Test.java @@ -34,6 +34,7 @@ import org.junit.jupiter.api.Test; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -54,7 +55,7 @@ void issue1485withoutSpecifyingJARs() throws IOException { javaParser.getParserConfiguration().setSymbolResolver(new JavaSymbolSolver(typeSolver)); CompilationUnit unit = javaParser.parse(ParseStart.COMPILATION_UNIT, - new StreamProvider(Files.newInputStream(file))).getResult().get(); + new StreamProvider(Files.newInputStream(file), StandardCharsets.UTF_8)).getResult().get(); MethodCallExpr methodCallExpr = unit.findFirst(MethodCallExpr.class, m -> m.getName().getIdentifier().equals("println")).get(); ResolvedMethodDeclaration resolvedMethodDeclaration = methodCallExpr.resolve(); diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1511Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1511Test.java new file mode 100644 index 0000000000..448b4da343 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1511Test.java @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2015-2016 Federico Tomassetti + * Copyright (C) 2017-2020 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.symbolsolver; + +import com.github.javaparser.JavaParser; +import com.github.javaparser.ParserConfiguration; +import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt; +import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration; +import com.github.javaparser.resolution.types.ResolvedReferenceType; +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.jupiter.api.Test; + +import java.io.FileNotFoundException; +import java.nio.file.Path; + +import static com.github.javaparser.symbolsolver.AbstractSymbolResolutionTest.adaptPath; +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * IndexOutOfBoundsException when attempting to resolve super() #1511 + * + * @see https://github.com/javaparser/javaparser/issues/1511 + */ +public class Issue1511Test { + + @Test + public void test() throws FileNotFoundException { + + Path dir = adaptPath("src/test/resources/issue1511"); + Path file = adaptPath("src/test/resources/issue1511/A.java"); + + // configure symbol solver + CombinedTypeSolver typeSolver = new CombinedTypeSolver(); + typeSolver.add(new ReflectionTypeSolver()); + typeSolver.add(new JavaParserTypeSolver(dir.toFile())); + JavaSymbolSolver symbolSolver = new JavaSymbolSolver(typeSolver); + StaticJavaParser.getConfiguration().setSymbolResolver(symbolSolver); + + // get compilation unit & extract explicit constructor invocation statement + CompilationUnit cu = StaticJavaParser.parse(file.toFile()); + ExplicitConstructorInvocationStmt ecis = cu.getPrimaryType().orElseThrow(IllegalStateException::new) + .asClassOrInterfaceDeclaration().getMember(0) + .asConstructorDeclaration().getBody().getStatement(0) + .asExplicitConstructorInvocationStmt(); + + // attempt to resolve explicit constructor invocation statement + ResolvedConstructorDeclaration rcd = ecis.resolve(); //.resolveInvokedConstructor(); // <-- exception occurs + } + + + @Test + public void exploratory_resolveAndGetSuperClass() { + + ParserConfiguration configuration = new ParserConfiguration(); + configuration.setSymbolResolver(new JavaSymbolSolver(new ReflectionTypeSolver())); + JavaParser javaParser = new JavaParser(configuration); + + CompilationUnit foo = javaParser.parse("class A {}").getResult().orElseThrow(IllegalStateException::new); + ResolvedReferenceType a = foo.getClassByName("A").orElseThrow(IllegalStateException::new).resolve().asClass().getSuperClass(); + System.out.println("a = " + a); + + assertEquals("java.lang.Object", a.getQualifiedName()); + } + +} diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1526Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1526Test.java new file mode 100644 index 0000000000..48db1361e8 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1526Test.java @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2015-2016 Federico Tomassetti + * Copyright (C) 2017-2020 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.symbolsolver; + +import com.github.javaparser.JavaParser; +import com.github.javaparser.ParseResult; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.expr.MethodCallExpr; +import com.github.javaparser.resolution.UnsolvedSymbolException; +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.github.javaparser.symbolsolver.utils.LeanParserConfiguration; +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.nio.file.Path; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assumptions.assumeTrue; + + +/** + * CompilationUnitContext.solveType(String name, TypeSolver typeSolver) checks package and imports in wrong order. + * @see https://github.com/javaparser/javaparser/issues/1526 + */ +public class Issue1526Test extends AbstractSymbolResolutionTest { + + private final Path testRoot = adaptPath("src/test/resources/issue1526"); + private final Path rootCompiles = testRoot.resolve("compiles"); + private final Path rootErrors = testRoot.resolve("errors"); + + @Test + public void givenImport_whenCompiles_expectPass() throws IOException { + Path root = rootCompiles; + Path file = rootCompiles.resolve("a/b/c/ExampleClass.java"); + + assertDoesNotThrow(() -> { + doTest(root, file); + }); + } + + @Test + public void givenImportCommentOut_whenCompiles_expectFail() throws IOException { + Path root = rootErrors; + Path file = rootErrors.resolve("a/b/c/ExampleClass.java"); + + assertThrows(UnsolvedSymbolException.class, () -> { + doTest(root, file); + }); + } + + private void doTest(Path root, Path file) throws IOException { + CombinedTypeSolver typeSolver = new CombinedTypeSolver(); + typeSolver.add(new ReflectionTypeSolver()); + typeSolver.add(new JavaParserTypeSolver(root, new LeanParserConfiguration())); + + JavaParser javaParser = new JavaParser(); + javaParser.getParserConfiguration().setSymbolResolver(new JavaSymbolSolver(typeSolver)); + + ParseResult cu = javaParser.parse(file); + assumeTrue(cu.isSuccessful(), "the file should compile -- errors are expected when attempting to resolve."); + + cu.getResult().get().findAll(MethodCallExpr.class) + .forEach(methodCallExpr -> { + System.out.println(methodCallExpr); + methodCallExpr.resolve(); + methodCallExpr.calculateResolvedType(); + }); + } + +} diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1574Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1574Test.java new file mode 100644 index 0000000000..4d8de3ad6d --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue1574Test.java @@ -0,0 +1,90 @@ +package com.github.javaparser.symbolsolver; + +import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.Node; +import com.github.javaparser.ast.comments.Comment; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.List; +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; + +public class Issue1574Test { + private static final String LINE_FILE = "src/test/resources/issue1574/Comment.java"; + private static final String BLOCK_FILE = "src/test/resources/issue1574/BlockComment.java"; + private static final String ORPHAN_FILE = "src/test/resources/issue1574/ClassWithOrphanComments.java"; + @Test + void removeAllCommentsBeforePackageLine() throws Exception{ + CompilationUnit cu = StaticJavaParser.parse(new File(LINE_FILE)); + for(Comment child: cu.getComments()){ + child.remove(); + } + assertEquals(0,cu.getComments().size()); + assertFalse(cu.getComment().isPresent()); + } + @Test + void removeAllCommentsBeforePackageBlock() throws Exception{ + CompilationUnit cu = StaticJavaParser.parse(new File(BLOCK_FILE)); + for(Comment child: cu.getComments()){ + child.remove(); + } + assertEquals(0,cu.getComments().size()); + assertFalse(cu.getComment().isPresent()); + } + @Test + void getAllContainedCommentBeforePackageDeclarationLine() throws Exception{ + CompilationUnit cu = StaticJavaParser.parse(new File(LINE_FILE)); + List comments = cu.getAllContainedComments(); + assertEquals(2,comments.size()); + + } + @Test + void getAllContainedCommentBeforePackageDeclarationBlock() throws Exception{ + CompilationUnit cu = StaticJavaParser.parse(new File(BLOCK_FILE)); + List comments = cu.getAllContainedComments(); + assertEquals(2,comments.size()); + + } + @Test + void getAllCommentBeforePackageDeclarationOrphan() throws Exception{ + CompilationUnit cu = StaticJavaParser.parse(new File(ORPHAN_FILE)); + List comments = cu.getAllContainedComments(); + assertEquals(6,comments.size()); + + } + @Test + void getOrphanComments() throws Exception{ + CompilationUnit cu = StaticJavaParser.parse(new File(LINE_FILE)); + List comments = cu.getOrphanComments(); + //The 2 first should be orphan comment while the third will be associated to the package + assertEquals(1,comments.size()); + + + } + @Test + void getOrphanCommentsBlock() throws Exception{ + CompilationUnit cu = StaticJavaParser.parse(new File(BLOCK_FILE)); + List comments = cu.getOrphanComments(); + //The 2 first should be orphan comment while the third will be associated to the package + assertEquals(1,comments.size()); + + } + @Test + void getAllCommentBeforePackageDeclarationLine() throws Exception{ + CompilationUnit cu = StaticJavaParser.parse(new File(LINE_FILE)); + List comments = cu.getComments(); + assertEquals(3,comments.size()); + + } + @Test + void getAllCommentBeforePackageDeclarationBlock() throws Exception{ + CompilationUnit cu = StaticJavaParser.parse(new File(BLOCK_FILE)); + List comments = cu.getComments(); + assertEquals(3,comments.size()); + } + +} diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2362Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2362Test.java index a0fbee1cd3..79ed44da6d 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2362Test.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2362Test.java @@ -24,6 +24,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -55,7 +56,7 @@ void issue2362() throws IOException { JavaParser javaParser = new JavaParser(pc); CompilationUnit unit = javaParser.parse(ParseStart.COMPILATION_UNIT, - new StreamProvider(Files.newInputStream(file))).getResult().get(); + new StreamProvider(Files.newInputStream(file), StandardCharsets.UTF_8)).getResult().get(); ObjectCreationExpr oce = unit.findFirst(ObjectCreationExpr.class).get(); assertEquals(oce.resolve().getSignature(), "InnerClass(int)"); diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2367Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2367Test.java index f1522a0c4a..5d3c6283f6 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2367Test.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2367Test.java @@ -24,6 +24,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -52,7 +53,7 @@ void issue2367() throws IOException { javaParser.getParserConfiguration().setSymbolResolver(new JavaSymbolSolver(typeSolver)); CompilationUnit unit = javaParser.parse(ParseStart.COMPILATION_UNIT, - new StreamProvider(Files.newInputStream(file))).getResult().get(); + new StreamProvider(Files.newInputStream(file), StandardCharsets.UTF_8)).getResult().get(); NameExpr nameExpr = unit.findFirst(NameExpr.class, m -> m.getName().getIdentifier().equals("privateField")).get(); ResolvedValueDeclaration resolvedValueDeclaration = nameExpr.resolve(); diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2592Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2592Test.java new file mode 100644 index 0000000000..bff61052af --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2592Test.java @@ -0,0 +1,67 @@ +package com.github.javaparser.symbolsolver; + +import com.github.javaparser.StaticJavaParser; +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.SimpleName; +import com.github.javaparser.printer.lexicalpreservation.LexicalPreservingPrinter; +import org.junit.jupiter.api.Test; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertTrue; + + +public class Issue2592Test { + + @Test + public void testLPP() { + +// // Either do this before parsing, or manually pass the node to `LexicalPreservingPrinter.setup(node);` +// StaticJavaParser.getConfiguration().setLexicalPreservationEnabled(true); + + String s = "public class A {" + + " public void m(final int a_original, int b) {" + + " }" + + "} "; + CompilationUnit cu = StaticJavaParser.parse(s); + Optional md = cu.findFirst(MethodDeclaration.class); + //all parameters have parent nodes here + assertTrue(md.get().getParameters().stream().allMatch(p -> p.getParentNode().isPresent())); + + //this seems to be doing nasty things to parent nodes (after a change happens) + LexicalPreservingPrinter.setup(cu); + + //all parameters have parent nodes here + System.out.println(""); + md.get().getParameters().forEach(p -> System.out.println(p + " parent " + p.getParentNode().isPresent())); + assertTrue(md.get().getParameters().stream().allMatch(p -> p.getParentNode().isPresent())); + + + //add a third parameter + md.get().addParameter("String", "c_brand_new"); + + //seems like we can add a parameter fine (and all of the parents still assigned) + assertTrue(md.get().getParameters().stream().allMatch(p -> p.getParentNode().isPresent())); + + + System.out.println(""); + md.get().getParameters().forEach(p -> System.out.println(p + " parent " + p.getParentNode().isPresent())); + Parameter p1 = md.get().getParameter(0); + Parameter p2 = new Parameter(p1.getModifiers(), p1.getType(), new SimpleName("a_renamed")); + + //here we replace a parameter + boolean isReplaced = md.get().replace(p1, p2); + assertTrue(isReplaced); //the replacement seemed to work + System.out.println(""); + System.out.println(cu.toString()); //this looks right + + + //...however when we replaced the parent nodes (for the replaced node AND the added node (after the replaced node) now null + System.out.println(""); + md.get().getParameters().forEach(p -> System.out.println(p + " parent " + p.getParentNode().isPresent())); + assertTrue(md.get().getParameters().stream().allMatch(p -> p.getParentNode().isPresent())); + } + +} diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2602Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2602Test.java new file mode 100644 index 0000000000..4c92cbd82c --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue2602Test.java @@ -0,0 +1,79 @@ +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.ast.CompilationUnit; +import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; +import com.github.javaparser.ast.body.TypeDeclaration; +import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration; +import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade; +import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration; +import com.github.javaparser.symbolsolver.resolution.typesolvers.MemoryTypeSolver; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static com.github.javaparser.Providers.provider; +import static org.junit.jupiter.api.Assertions.*; + +public class Issue2602Test extends AbstractSymbolResolutionTest { + + private JavaParser javaParser; + private CompilationUnit cu; + private MemoryTypeSolver typeSolver; + private ParserConfiguration configuration; + + + @BeforeEach + public void setUp() { + typeSolver = new MemoryTypeSolver(); + configuration = new ParserConfiguration().setSymbolResolver(new JavaSymbolSolver(typeSolver)); + + javaParser = new JavaParser(configuration); + + //language=JAVA + String src = "package java.lang;" + + " class Object {}\n" + + "\n" + + "class A extends Object {}\n" + + "\n" + + "class B extends Object {}\n"; + + + ParseResult parseResult = javaParser.parse( + ParseStart.COMPILATION_UNIT, + provider(src) + ); + + + System.out.println("parseResult = " + parseResult); + parseResult.getProblems().forEach(problem -> System.out.println("problem.getVerboseMessage() = " + problem.getVerboseMessage())); + + assertTrue(parseResult.isSuccessful()); + assertEquals(0, parseResult.getProblems().size(), "Expected zero errors when attempting to parse the input code."); + assertTrue(parseResult.getResult().isPresent(), "Must have a parse result to run this test."); + + this.cu = parseResult.getResult().get(); + + JavaParserFacade javaParserFacade = JavaParserFacade.get(this.typeSolver); + + for (TypeDeclaration t : this.cu.getTypes()) { + JavaParserClassDeclaration classDecl = new JavaParserClassDeclaration((ClassOrInterfaceDeclaration) t, this.typeSolver); + + this.typeSolver.addDeclaration((String) t.getFullyQualifiedName().get(), classDecl); + } + } + + + @Test + public void doTest_checkForRecursionWhen_java_lang_Object_IsA_JavaParserClassDeclaration() { + + ResolvedReferenceTypeDeclaration thisDeclaration = typeSolver.solveType("java.lang.A"); + ResolvedReferenceTypeDeclaration secondDeclaration = typeSolver.solveType("java.lang.B"); + + assertFalse(thisDeclaration.canBeAssignedTo(secondDeclaration), "Both types should not be assignable"); + } + + +} diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue300Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue300Test.java index a60dd3a27f..855e183e7a 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue300Test.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue300Test.java @@ -50,7 +50,7 @@ void fieldAccessIssue() throws IOException { Path pathToSourceFile = adaptPath("src/test/resources/issue300/Issue300.java"); CompilationUnit cu = parse(pathToSourceFile); - final FieldAccessExpr fieldAccess = Navigator.findNodeOfGivenClass(cu, FieldAccessExpr.class); + final FieldAccessExpr fieldAccess = Navigator.demandNodeOfGivenClass(cu, FieldAccessExpr.class); assertNotNull(fieldAccess); TypeSolver typeSolver = new CombinedTypeSolver( diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347Test.java index c030f5de44..8bacb781a1 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347Test.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347Test.java @@ -57,7 +57,7 @@ void resolvingReferenceToEnumDeclarationInSameFile() { " Foo myFooField;\n" + "}"; CompilationUnit cu = parse(code); - FieldDeclaration fieldDeclaration = Navigator.findNodeOfGivenClass(cu, FieldDeclaration.class); + FieldDeclaration fieldDeclaration = Navigator.demandNodeOfGivenClass(cu, FieldDeclaration.class); ResolvedType fieldType = javaParserFacade.getType(fieldDeclaration); assertTrue(fieldType.isReferenceType()); assertTrue(fieldType.asReferenceType().getTypeDeclaration().isEnum()); diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue546Test.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue546Test.java new file mode 100644 index 0000000000..564fc10de6 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue546Test.java @@ -0,0 +1,44 @@ +package com.github.javaparser.symbolsolver; + +import com.github.javaparser.ast.stmt.Statement; +import com.github.javaparser.printer.PrettyPrinter; +import com.github.javaparser.printer.PrettyPrinterConfiguration; +import org.junit.jupiter.api.Test; + +import static com.github.javaparser.StaticJavaParser.parseStatement; +import static com.github.javaparser.utils.Utils.EOL; +import static com.github.javaparser.utils.Utils.normalizeEolInTextBlock; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class Issue546Test { + @Test + void switchWithTabs() { + Statement cu = parseStatement("switch(x){ case 1: return y; case 2: return z;}"); + + String printed = new PrettyPrinter(new PrettyPrinterConfiguration()) + .print(cu); + assertEqualsNoEol("switch(x) {\n" + + " case 1:\n" + + " return y;\n" + + " case 2:\n" + + " return z;\n" + + "}", printed); + } + @Test + void switchWithoutTabs() { + Statement cu = parseStatement("switch(x){ case 1: return y; case 2: return z;}"); + + String printed = new PrettyPrinter(new PrettyPrinterConfiguration().setIndentCaseInSwitch(false)) + .print(cu); + assertEqualsNoEol("switch(x) {\n" + + "case 1:\n" + + " return y;\n" + + "case 2:\n" + + " return z;\n" + + "}", printed); + } + + public static void assertEqualsNoEol(String expected, String actual) { + assertEquals(normalizeEolInTextBlock(expected, EOL), actual); + } +} 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 index 77cafbc85a..222e5906d9 100644 --- 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 @@ -25,10 +25,7 @@ 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.declarations.ResolvedMethodLikeDeclaration; +import com.github.javaparser.resolution.declarations.*; import com.github.javaparser.resolution.types.ResolvedPrimitiveType; import com.github.javaparser.resolution.types.ResolvedReferenceType; import com.github.javaparser.symbolsolver.AbstractSymbolResolutionTest; @@ -905,4 +902,37 @@ void testHasAnnotation() throws IOException { // Set internalTypes() // Optional containerType() + + + @Test + void testCanBeAssignedTo() { + JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit"); + ResolvedReferenceTypeDeclaration stringTypeDeclaration = typeSolver.solveType("java.lang.String"); + ResolvedReferenceTypeDeclaration objectTypeDeclaration = typeSolver.solveType("java.lang.Object"); + ResolvedReferenceTypeDeclaration cloneableTypeDeclaration = typeSolver.solveType("java.lang.Cloneable"); + ResolvedReferenceTypeDeclaration serializableTypeDeclaration = typeSolver.solveType("java.io.Serializable"); + + // Assign "UP" (implicit) -- Assign to implicitly state ancestor (java.lang.Object) -- should be permitted + assertTrue(compilationUnit.canBeAssignedTo(objectTypeDeclaration),"CompilationUnit should be reported as assignable to Object"); + + // Assign "UP" (explicit) -- Assign to explicitly stated ancestors (extends/implements) -- should be permitted + assertTrue(compilationUnit.canBeAssignedTo(cloneableTypeDeclaration),"CompilationUnit should be reported as assignable to Cloneable, because it extends Node which implements Cloneable"); + + // Assign "SELF" -- Assign to self -- should be permitted + assertTrue(compilationUnit.canBeAssignedTo(compilationUnit),"CompilationUnit should not be reported as assignable to CompilationUnit"); + assertTrue(stringTypeDeclaration.canBeAssignedTo(stringTypeDeclaration),"String should not be reported as assignable to String"); + assertTrue(objectTypeDeclaration.canBeAssignedTo(objectTypeDeclaration),"Object should be reported as assignable to Object"); + + + // Assign "DOWN" -- Assign ancestor to descendent -- should be rejected + assertFalse(cloneableTypeDeclaration.canBeAssignedTo(compilationUnit),"CloneableTypeDeclaration should not be reported as assignable to CompilationUnit"); + assertFalse(objectTypeDeclaration.canBeAssignedTo(compilationUnit),"Object should not be reported as assignable to CompilationUnit"); + + // Assign "independent" -- Assign to a class with a completely separate/independent hierarchy tree (up to Object, down to other) -- should be rejected + assertFalse(compilationUnit.canBeAssignedTo(stringTypeDeclaration),"CompilationUnit should not be reported as assignable to String"); + + // Assign "independent" -- Assign to a interface with a completely separate/independent hierarchy tree (up to Object, down to other) -- should be rejected + assertFalse(compilationUnit.canBeAssignedTo(serializableTypeDeclaration), "CompilationUnit should not be reported as assignable to Serializable"); + } + } diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnnotationsResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnnotationsResolutionTest.java index 2c76ca94b2..3b24e5e3a4 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnnotationsResolutionTest.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/AnnotationsResolutionTest.java @@ -23,6 +23,7 @@ import com.github.javaparser.StaticJavaParser; import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.body.AnnotationDeclaration; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; import com.github.javaparser.ast.body.MethodDeclaration; import com.github.javaparser.ast.expr.AnnotationExpr; @@ -30,7 +31,9 @@ import com.github.javaparser.ast.expr.NormalAnnotationExpr; import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr; import com.github.javaparser.resolution.declarations.ResolvedAnnotationDeclaration; +import com.github.javaparser.resolution.declarations.ResolvedAnnotationMemberDeclaration; import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration; +import com.github.javaparser.resolution.types.ResolvedReferenceType; import com.github.javaparser.symbolsolver.JavaSymbolSolver; import com.github.javaparser.symbolsolver.javaparser.Navigator; import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnnotationDeclaration; @@ -44,6 +47,7 @@ import org.junit.jupiter.api.Test; import java.io.IOException; +import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -285,4 +289,31 @@ void solveQualifiedAnnotationWithReferenceTypeHasAnnotationAsWell() throws IOExc assertTrue(hasAnnotation, "org.junit.runner.RunWith not found on reference type"); } + + @Test + void solveAnnotationAncestor() throws IOException { + CompilationUnit cu = parseSample("Annotations"); + AnnotationDeclaration ad = Navigator.findType(cu, "MyAnnotation").get().asAnnotationDeclaration(); + ResolvedReferenceTypeDeclaration referenceType = ad.resolve(); + + List ancestors = referenceType.getAncestors(); + assertEquals(ancestors.size(), 1); + assertEquals(ancestors.get(0).getQualifiedName(), "java.lang.annotation.Annotation"); + } + + @Test + void solvePrimitiveAnnotationMember() throws IOException { + CompilationUnit cu = parseSample("Annotations"); + AnnotationDeclaration ad = Navigator.findType(cu, "MyAnnotationWithSingleValue").get().asAnnotationDeclaration(); + assertEquals(ad.getMember(0).asAnnotationMemberDeclaration().resolve().getType().asPrimitive().describe(), "int"); + } + + @Test + void solveInnerClassAnnotationMember() throws IOException { + CompilationUnit cu = parseSample("Annotations"); + AnnotationDeclaration ad = Navigator.findType(cu, "MyAnnotationWithInnerClass").get().asAnnotationDeclaration(); + ResolvedAnnotationMemberDeclaration am = ad.getMember(0).asAnnotationMemberDeclaration().resolve(); + assertEquals(am.getType().asReferenceType().getQualifiedName(), "foo.bar.MyAnnotationWithInnerClass.MyInnerClass"); + } + } diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/EnumLiteralsInAnnotatedClassTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/EnumLiteralsInAnnotatedClassTest.java index 8ebef265d2..b9c1146c37 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/EnumLiteralsInAnnotatedClassTest.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/EnumLiteralsInAnnotatedClassTest.java @@ -36,6 +36,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.Optional; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -55,7 +56,7 @@ void resolveFieldOfEnumAsInternalClassOfClassUnqualifiedSamePackage() throws IOE ParserConfiguration parserConfiguration = new ParserConfiguration().setSymbolResolver(new JavaSymbolSolver(localCts)); JavaParser parser = new JavaParser(parserConfiguration); - StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass)); + StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass), StandardCharsets.UTF_8); CompilationUnit cu = parser.parse(ParseStart.COMPILATION_UNIT, classProvider).getResult().get(); Optional fae = cu.findFirst(FieldAccessExpr.class, n -> n.toString().equals("BinaryExpr.Operator.OR") && n.getRange().get().begin.line == 4); @@ -78,7 +79,7 @@ void resolveFieldOfEnumAsInternalClassOfClassQualifiedSamePackage() throws IOExc ParserConfiguration parserConfiguration = new ParserConfiguration().setSymbolResolver(new JavaSymbolSolver(localCts)); JavaParser parser = new JavaParser(parserConfiguration); - StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass)); + StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass), StandardCharsets.UTF_8); CompilationUnit cu = parser.parse(ParseStart.COMPILATION_UNIT, classProvider).getResult().get(); Optional fae = cu.findFirst(FieldAccessExpr.class, n -> n.toString().equals("foo.bar.BinaryExpr.Operator.AND") && n.getRange().get().begin.line == 5); @@ -101,7 +102,7 @@ void resolveFieldOfEnumAsInternalClassOfClassUnqualifiedDifferentPackage() throw ParserConfiguration parserConfiguration = new ParserConfiguration().setSymbolResolver(new JavaSymbolSolver(localCts)); JavaParser parser = new JavaParser(parserConfiguration); - StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass)); + StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass), StandardCharsets.UTF_8); CompilationUnit cu = parser.parse(ParseStart.COMPILATION_UNIT, classProvider).getResult().get(); Optional fae = cu.findFirst(FieldAccessExpr.class, n -> n.toString().equals("BinaryExpr.Operator.OR") && n.getRange().get().begin.line == 6); @@ -124,7 +125,7 @@ void resolveFieldOfEnumAsInternalClassOfClassQualifiedDifferentPackage() throws ParserConfiguration parserConfiguration = new ParserConfiguration().setSymbolResolver(new JavaSymbolSolver(localCts)); JavaParser parser = new JavaParser(parserConfiguration); - StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass)); + StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass), StandardCharsets.UTF_8); CompilationUnit cu = parser.parse(ParseStart.COMPILATION_UNIT, classProvider).getResult().get(); Optional fae = cu.findFirst(FieldAccessExpr.class, n -> n.toString().equals("foo.bar.BinaryExpr.Operator.AND") && n.getRange().get().begin.line == 7); 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 index 4e9dc3f6fe..b20fc15ef6 100644 --- 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 @@ -23,8 +23,10 @@ import com.github.javaparser.ParserConfiguration; import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.AccessSpecifier; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; +import com.github.javaparser.ast.body.EnumDeclaration; import com.github.javaparser.ast.body.MethodDeclaration; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.expr.FieldAccessExpr; @@ -36,6 +38,7 @@ import com.github.javaparser.resolution.types.ResolvedType; import com.github.javaparser.symbolsolver.JavaSymbolSolver; import com.github.javaparser.symbolsolver.javaparser.Navigator; +import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration; import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade; import com.github.javaparser.symbolsolver.model.resolution.SymbolReference; import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; @@ -50,7 +53,7 @@ void switchOnEnum() { CompilationUnit cu = parseSample("SwitchOnEnum"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "SwitchOnEnum"); MethodDeclaration method = Navigator.demandMethod(clazz, "foo"); - SwitchStmt switchStmt = Navigator.findSwitch(method); + SwitchStmt switchStmt = Navigator.demandSwitch(method); Expression expression = switchStmt.getEntries().get(0).getLabels().get(0); SymbolReference ref = JavaParserFacade.get(new ReflectionTypeSolver()).solve(expression); @@ -97,4 +100,27 @@ void resolveEnumConstantAccess() { } } + @Test + void enumAccessSpecifier() { + try { + StaticJavaParser.getConfiguration().setSymbolResolver(new JavaSymbolSolver(new ReflectionTypeSolver())); + CompilationUnit cu = parseSample("EnumAccessSpecifier"); + ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MyClass"); + + EnumDeclaration ed_public = Navigator.findType(clazz, "EnumPublic").get().toEnumDeclaration().get(); + assertEquals(AccessSpecifier.PUBLIC, ((JavaParserEnumDeclaration) ed_public.resolve()).accessSpecifier()); + + EnumDeclaration ed_protected = Navigator.findType(clazz, "EnumProtected").get().toEnumDeclaration().get(); + assertEquals(AccessSpecifier.PROTECTED, ((JavaParserEnumDeclaration) ed_protected.resolve()).accessSpecifier()); + + EnumDeclaration ed_private = Navigator.findType(clazz, "EnumPrivate").get().toEnumDeclaration().get(); + assertEquals(AccessSpecifier.PRIVATE, ((JavaParserEnumDeclaration) ed_private.resolve()).accessSpecifier()); + + EnumDeclaration ed_default = Navigator.findType(clazz, "EnumDefault").get().toEnumDeclaration().get(); + assertEquals(AccessSpecifier.PACKAGE_PRIVATE, ((JavaParserEnumDeclaration) ed_default.resolve()).accessSpecifier()); + } finally { + StaticJavaParser.setConfiguration(new ParserConfiguration()); + } + } + } 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 index 567b8ed648..b93ea23e02 100644 --- 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 @@ -241,6 +241,20 @@ void resolveUsageOfMethodOfGenericClassWithExtendsWildcard() { assertEquals("GenericsWildcard.Foo", methodUsage.declaringType().getQualifiedName()); } + @Test + void resolveUsageOfMethodOfGenericClassWithBoxing() { + CompilationUnit cu = parseSample("Generics"); + ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "GenericMethodBoxing"); + MethodDeclaration method = Navigator.demandMethod(clazz, "bar"); + MethodCallExpr expression = Navigator.findMethodCall(method, "foo").get(); + + MethodUsage methodUsage = JavaParserFacade.get(new ReflectionTypeSolver()).solveMethodAsUsage(expression); + + assertEquals("foo", methodUsage.getName()); + assertEquals("GenericMethodBoxing", methodUsage.declaringType().getName()); + assertEquals("java.lang.Long", methodUsage.returnType().describe()); + } + @Test void resolveElementOfList() { CompilationUnit cu = parseSample("ElementOfList"); @@ -320,7 +334,7 @@ void classCast() { CompilationUnit cu = parseSample("ClassCast"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "ClassCast"); MethodDeclaration method = Navigator.demandMethod(clazz, "getNodesByType"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(returnStmt.getExpression().get()); @@ -333,7 +347,7 @@ 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); + ThisExpr thisExpr = Navigator.demandNodeOfGivenClass(method, ThisExpr.class); ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(thisExpr); @@ -373,7 +387,7 @@ void typeParamOnReturnType() { CompilationUnit cu = parseSample("TypeParamOnReturnType"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TypeParamOnReturnType"); MethodDeclaration method = Navigator.demandMethod(clazz, "nodeEquals"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(returnStmt.getExpression().get()); @@ -440,7 +454,7 @@ void genericCollectionWithWildcardsAndExtensions() { CompilationUnit cu = parseSample("GenericCollectionWithExtension"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Foo"); MethodDeclaration method = Navigator.demandMethod(clazz, "bar"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); TypeSolver typeSolver = new ReflectionTypeSolver(); Expression returnStmtExpr = returnStmt.getExpression().get(); @@ -472,7 +486,7 @@ void genericCollectionWithWildcards() { CompilationUnit cu = parseSample("GenericCollection"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Foo"); MethodDeclaration method = Navigator.demandMethod(clazz, "bar"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); TypeSolver typeSolver = new ReflectionTypeSolver(); Expression returnStmtExpr = returnStmt.getExpression().get(); diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/InternalClassInInterfaceTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/InternalClassInInterfaceTest.java index 559fa53930..38f413d1f0 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/InternalClassInInterfaceTest.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/InternalClassInInterfaceTest.java @@ -36,6 +36,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.Optional; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -55,7 +56,7 @@ void resolveFieldOfEnumAsInternalClassOfInterfaceUnqualifiedSamePackage() throws ParserConfiguration parserConfiguration = new ParserConfiguration().setSymbolResolver(new JavaSymbolSolver(localCts)); JavaParser parser = new JavaParser(parserConfiguration); - StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass)); + StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass), StandardCharsets.UTF_8); CompilationUnit cu = parser.parse(ParseStart.COMPILATION_UNIT, classProvider).getResult().get(); Optional fae = cu.findFirst(FieldAccessExpr.class, n -> n.toString().equals("AnInterface.ListChangeType.ADDITION") && n.getRange().get().begin.line == 4); @@ -78,7 +79,7 @@ void resolveFieldOfEnumAsInternalClassOfInterfaceQualifiedSamePackage() throws I ParserConfiguration parserConfiguration = new ParserConfiguration().setSymbolResolver(new JavaSymbolSolver(localCts)); JavaParser parser = new JavaParser(parserConfiguration); - StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass)); + StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass), StandardCharsets.UTF_8); CompilationUnit cu = parser.parse(ParseStart.COMPILATION_UNIT, classProvider).getResult().get(); Optional fae = cu.findFirst(FieldAccessExpr.class, n -> n.toString().equals("foo.bar.AnInterface.ListChangeType.ADDITION") && n.getRange().get().begin.line == 5); @@ -101,7 +102,7 @@ void resolveFieldOfEnumAsInternalClassOfInterfaceUnqualifiedDifferentPackage() t ParserConfiguration parserConfiguration = new ParserConfiguration().setSymbolResolver(new JavaSymbolSolver(localCts)); JavaParser parser = new JavaParser(parserConfiguration); - StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass)); + StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass), StandardCharsets.UTF_8); CompilationUnit cu = parser.parse(ParseStart.COMPILATION_UNIT, classProvider).getResult().get(); Optional fae = cu.findFirst(FieldAccessExpr.class, n -> n.toString().equals("AnInterface.ListChangeType.ADDITION") && n.getRange().get().begin.line == 6); @@ -124,7 +125,7 @@ void resolveFieldOfEnumAsInternalClassOfInterfaceQualifiedDifferentPackage() thr ParserConfiguration parserConfiguration = new ParserConfiguration().setSymbolResolver(new JavaSymbolSolver(localCts)); JavaParser parser = new JavaParser(parserConfiguration); - StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass)); + StreamProvider classProvider = new StreamProvider(new FileInputStream(aClass), StandardCharsets.UTF_8); CompilationUnit cu = parser.parse(ParseStart.COMPILATION_UNIT, classProvider).getResult().get(); 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 index 8ceaa3bd9f..c174ca5ada 100644 --- 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 @@ -78,7 +78,7 @@ void solvingReferenceToUnsupportedOperationException() { " }\n" + " }\n" + "}"; - MethodCallExpr methodCallExpr = Navigator.findNodeOfGivenClass(parse(code), MethodCallExpr.class); + MethodCallExpr methodCallExpr = Navigator.demandNodeOfGivenClass(parse(code), MethodCallExpr.class); MethodUsage methodUsage = JavaParserFacade.get(new ReflectionTypeSolver()).solveMethodAsUsage(methodCallExpr); assertEquals("java.lang.Throwable.getMessage()", methodUsage.getQualifiedSignature()); } @@ -100,7 +100,7 @@ void solvingReferenceToCatchClauseParam() { " }\n" + " }\n" + "}"; - MethodCallExpr methodCallExpr = Navigator.findNodeOfGivenClass(parse(code), MethodCallExpr.class); + MethodCallExpr methodCallExpr = Navigator.demandNodeOfGivenClass(parse(code), MethodCallExpr.class); NameExpr nameE = (NameExpr) methodCallExpr.getScope().get(); SymbolReference symbolReference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(nameE); assertTrue(symbolReference.isSolved()); @@ -122,7 +122,7 @@ void solvingReferenceToAnAncestorInternalClass() { " public X x = null;\n" + " }\n" + "}"; - FieldDeclaration fieldDeclaration = Navigator.findNodeOfGivenClass(parse(code), FieldDeclaration.class); + FieldDeclaration fieldDeclaration = Navigator.demandNodeOfGivenClass(parse(code), FieldDeclaration.class); Type jpType = fieldDeclaration.getCommonType(); ResolvedType jssType = JavaParserFacade.get(new ReflectionTypeSolver()).convertToUsage(jpType); assertEquals("Foo.Base.X", jssType.asReferenceType().getQualifiedName()); @@ -162,7 +162,7 @@ void solveMultiCatchType() { " }\n" + " }"; CompilationUnit cu = parseWithTypeSolver(code); - CatchClause catchClause = Navigator.findNodeOfGivenClass(cu, CatchClause.class); + CatchClause catchClause = Navigator.demandNodeOfGivenClass(cu, CatchClause.class); Type jpType = catchClause.getParameter().getType(); ResolvedType jssType = jpType.resolve(); assertTrue(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 index 5617ce04ae..7ae7110c03 100644 --- 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 @@ -42,7 +42,7 @@ 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); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodCallExpr methodCallExpr = (MethodCallExpr) returnStmt.getExpression().get(); Expression expression = methodCallExpr.getArguments().get(0); @@ -56,7 +56,7 @@ 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); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); Expression expression = returnStmt.getExpression().get(); expression = Navigator.findMethodCall(expression, "stream").get(); @@ -71,8 +71,8 @@ void lambdaMap() { 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); + ReturnStmt returnStmt1 = Navigator.demandReturnStmt(m1); + ReturnStmt returnStmt2 = Navigator.demandReturnStmt(m2); Expression e1 = returnStmt1.getExpression().get(); Expression e2 = returnStmt2.getExpression().get(); @@ -88,7 +88,7 @@ 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); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); Expression expr = returnStmt.getExpression().get(); JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver()); @@ -101,7 +101,7 @@ void lambdaPrint() { CompilationUnit cu = parseSample("Lambda"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda"); MethodDeclaration method = Navigator.demandMethod(clazz, "print"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); Expression expr = returnStmt.getExpression().get(); JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver()); @@ -114,7 +114,7 @@ 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); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); Expression expr = returnStmt.getExpression().get(); JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver()); @@ -127,7 +127,7 @@ 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); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodCallExpr methodCallExpr = (MethodCallExpr) returnStmt.getExpression().get(); // Collectors.toList() Expression expression = methodCallExpr.getArguments().get(0); @@ -142,7 +142,7 @@ 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); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); Expression expression = returnStmt.getExpression().get(); JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver()); @@ -155,7 +155,7 @@ 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); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); Expression expression = returnStmt.getExpression().get(); JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver()); @@ -168,7 +168,7 @@ 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); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); Expression expression = returnStmt.getExpression().get(); JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver()); @@ -181,9 +181,9 @@ 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); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); Expression expression = returnStmt.getExpression().get(); - LambdaExpr lambdaExpr = Navigator.findNodeOfGivenClass(expression, LambdaExpr.class); + LambdaExpr lambdaExpr = Navigator.demandNodeOfGivenClass(expression, LambdaExpr.class); JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver()); ResolvedType type = javaParserFacade.getType(lambdaExpr); diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodReferenceResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodReferenceResolutionTest.java index cb2bdde449..cbf3e7f1fd 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodReferenceResolutionTest.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodReferenceResolutionTest.java @@ -46,7 +46,7 @@ void classMethod() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "classMethod"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression @@ -65,7 +65,7 @@ void superclassMethodNotOverridden() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "superclassMethodNotOverridden"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression @@ -84,7 +84,7 @@ void superclassMethodOverridden() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "superclassMethodOverridden"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression @@ -103,7 +103,7 @@ void superclassMethodWithSubclassType() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "superclassMethodWithSubclassType"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression @@ -123,7 +123,7 @@ void fieldAccessMethod() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "fieldAccessMethod"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression @@ -142,7 +142,7 @@ void thisClassMethod() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "thisClassMethod"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression @@ -161,7 +161,7 @@ void superclassMethod() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "superclassMethod"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression @@ -181,7 +181,7 @@ void instanceMethod() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "instanceMethod"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression @@ -200,7 +200,7 @@ void staticMethod() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "staticMethod"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression @@ -219,7 +219,7 @@ void biFunction() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "biFunction"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression @@ -238,7 +238,7 @@ void customTriFunction() { CompilationUnit cu = parseSample("MethodReferences"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MethodReferences"); MethodDeclaration method = Navigator.demandMethod(clazz, "customTriFunction"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr) returnStmt.getExpression().get(); // resolve method reference expression 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 index a7998a37ea..5a2d2239d8 100644 --- 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 @@ -21,6 +21,7 @@ package com.github.javaparser.symbolsolver.resolution; +import com.github.javaparser.JavaParser; import com.github.javaparser.ParserConfiguration; import com.github.javaparser.StaticJavaParser; import com.github.javaparser.ast.CompilationUnit; @@ -119,6 +120,49 @@ void solveMethodAccessThroughSuper() { assertEquals("java.lang.String", ref.describe()); } + @Test + void testSuperMethodCallAnonymousClass() { + JavaParser parser = new JavaParser(); + parser.getParserConfiguration().setSymbolResolver(new JavaSymbolSolver(new ReflectionTypeSolver())); + CompilationUnit cu = parser.parse("" + + "public class X { \n" + + " java.util.List x() { \n" + + " return new java.util.ArrayList() { \n" + + " public int size() { \n" + + " return super.size(); \n" + + " } \n" + + " }; \n" + + " } \n" + + "}" + + "").getResult().get(); + + MethodCallExpr expression = Navigator.findMethodCall(cu, "size").get(); + MethodUsage methodUsage = JavaParserFacade.get(new ReflectionTypeSolver()).solveMethodAsUsage(expression); + assertEquals("size", methodUsage.getName()); + } + + @Test + void testSuperMethodCallDefaultMethod() { + JavaParser parser = new JavaParser(); + parser.getParserConfiguration().setSymbolResolver(new JavaSymbolSolver(new ReflectionTypeSolver())); + CompilationUnit cu = parser.parse("" + + "public class X { \n" + + " public interface Y { \n" + + " default void foo() {} \n" + + " } \n" + + " public class Z implements Y { \n" + + " public void foo() { \n" + + " Y.super.foo(); \n" + + " } \n" + + " } \n" + + "}" + + "").getResult().get(); + + MethodCallExpr expression = Navigator.findMethodCall(cu, "foo").get(); + MethodUsage methodUsage = JavaParserFacade.get(new ReflectionTypeSolver()).solveMethodAsUsage(expression); + assertEquals("foo", methodUsage.getName()); + } + @Test void solveMethodWithClassExpressionAsParameter() { CompilationUnit cu = parseSample("ClassExpression"); @@ -421,7 +465,7 @@ void thisInAnonymousClass() { CompilationUnit cu = parseSample("ThisInAnonymousClass"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Bar"); - ThisExpr thisExpression = Navigator.findNodeOfGivenClass(clazz, ThisExpr.class); + ThisExpr thisExpression = Navigator.demandNodeOfGivenClass(clazz, ThisExpr.class); ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(thisExpression); assertEquals(true, type.isReferenceType()); diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/TypeResolutionWithSameNameTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/TypeResolutionWithSameNameTest.java index ad88c176dd..c753059727 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/TypeResolutionWithSameNameTest.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/TypeResolutionWithSameNameTest.java @@ -40,7 +40,6 @@ public class TypeResolutionWithSameNameTest extends AbstractResolutionTest { - /* * abstract class extends_duplicate.DuplicateTypeName * class extends_duplicate.A extends extends_duplicate.DuplicateTypeName @@ -48,8 +47,8 @@ public class TypeResolutionWithSameNameTest extends AbstractResolutionTest { */ @Test void testTypesWithSameNameInPackageAndNested_directExtends() throws IOException { - Path srcRootPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/src1"); - Path extendsTypePath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/src1/extends_duplicate/A.java"); + Path srcRootPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/00_package_precedes_nested_class"); + Path extendsTypePath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/00_package_precedes_nested_class/extends_duplicate/A.java"); JavaParserTypeSolver javaParserTypeSolver = new JavaParserTypeSolver(srcRootPath); StaticJavaParser @@ -67,11 +66,10 @@ void testTypesWithSameNameInPackageAndNested_directExtends() throws IOException // Verify qualified name matches the non-nested class in the same package. // Note verbose assertions show both the "correct" expected value, and the erroneous value to be avoided. String qualifiedName = resolvedExtendedType.getQualifiedName(); - assertEquals("extends_duplicate.DuplicateTypeName", qualifiedName, "Error - not resolved to interface in separate file."); - assertNotEquals("extends_duplicate.A.DuplicateTypeName", qualifiedName, "Error - resolved to nested class."); + assertEquals("extends_duplicate.DuplicateTypeName", qualifiedName, "Error - not resolved to the class in the package."); + assertNotEquals("extends_duplicate.A.DuplicateTypeName", qualifiedName, "Error - mistakenly resolved to a nested class instead of the expected class."); } - /* * interface implements_duplicate.DuplicateTypeName * class implements_duplicate.class A implements implements_duplicate.DuplicateTypeName @@ -79,8 +77,8 @@ void testTypesWithSameNameInPackageAndNested_directExtends() throws IOException */ @Test void testTypesWithSameNameInPackageAndNested_directImplements() throws IOException { - Path srcRootPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/src2"); - Path implementingTypePath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/src2/implements_duplicate/A.java"); + Path srcRootPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/01_package_precedes_nested_interface"); + Path implementingTypePath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/01_package_precedes_nested_interface/implements_duplicate/A.java"); JavaParserTypeSolver javaParserTypeSolver = new JavaParserTypeSolver(srcRootPath); StaticJavaParser @@ -98,9 +96,80 @@ void testTypesWithSameNameInPackageAndNested_directImplements() throws IOExcepti // Verify qualified name matches the non-nested class in the same package. // Note verbose assertions show both the "correct" expected value, and the erroneous value to be avoided. String qualifiedName = resolvedImplementedType.getQualifiedName(); - assertEquals("implements_duplicate.DuplicateTypeName", qualifiedName, "Error - not resolved to interface in separate file."); - assertNotEquals("implements_duplicate.A.DuplicateTypeName", qualifiedName, "Error - resolved to nested class."); + assertEquals("implements_duplicate.DuplicateTypeName", qualifiedName, "Error - not resolved to interface in the package."); + assertNotEquals("implements_duplicate.A.DuplicateTypeName", qualifiedName, "Error - mistakenly resolved to a nested class instead of the expected interface."); } + @Test + void testTypesWithSameNameStaticNonTypeAndNonStaticType() throws IOException { + Path srcRootPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import"); + Path mainPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import/main/Main.java"); + + JavaParserTypeSolver javaParserTypeSolver = new JavaParserTypeSolver(srcRootPath); + StaticJavaParser + .getConfiguration() + .setSymbolResolver(new JavaSymbolSolver(javaParserTypeSolver)); + + CompilationUnit cu = StaticJavaParser.parse(mainPath); + ClassOrInterfaceDeclaration c = Navigator.demandClass(cu, "Main"); + + String qualifiedName = c.getFieldByName("field_a").get().resolve().getType().describe(); + assertEquals("another.A", qualifiedName, "Error - not resolved to a class."); + assertNotEquals("another.MyEnum.A", qualifiedName, "Error - mistakenly resolved to an enum member instead of the expected class."); + } + + @Test + void testTypesWithSameNameSingleTypeImportAndPackage() throws IOException { + Path srcRootPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member"); + Path mainPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member/main/Main.java"); + + JavaParserTypeSolver javaParserTypeSolver = new JavaParserTypeSolver(srcRootPath); + StaticJavaParser + .getConfiguration() + .setSymbolResolver(new JavaSymbolSolver(javaParserTypeSolver)); + + CompilationUnit cu = StaticJavaParser.parse(mainPath); + ClassOrInterfaceDeclaration c = Navigator.demandClass(cu, "Main"); + + String qualifiedName = c.getFieldByName("field_a").get().resolve().getType().describe(); + assertEquals("another.A", qualifiedName, "Error - not resolved to the imorted class."); + assertNotEquals("main.A", qualifiedName, "Error - mistakenly resolved to a package member insted of the explicitly imported class."); + } + + @Test + void testTypesWithSameNamePackageAndAsteriskImport() throws IOException { + Path srcRootPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import"); + Path mainPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import/main/Main.java"); + + JavaParserTypeSolver javaParserTypeSolver = new JavaParserTypeSolver(srcRootPath); + StaticJavaParser + .getConfiguration() + .setSymbolResolver(new JavaSymbolSolver(javaParserTypeSolver)); + + CompilationUnit cu = StaticJavaParser.parse(mainPath); + ClassOrInterfaceDeclaration c = Navigator.demandClass(cu, "Main"); + + String qualifiedName = c.getFieldByName("field_a").get().resolve().getType().describe(); + assertEquals("main.A", qualifiedName, "Error - not resolved to a package member."); + assertNotEquals("another.A", qualifiedName, "Error - mistakenly resolved to an asterisk-imported class instead of the expected package member."); + } + + @Test + void testTypesWithSameNameAsteriskImportAndJavaLang() throws IOException { + Path srcRootPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/05_asterisk_import_precedes_java_lang"); + Path mainPath = adaptPath("src/test/resources/TypeResolutionWithSameNameTest/05_asterisk_import_precedes_java_lang/main/Main.java"); + + JavaParserTypeSolver javaParserTypeSolver = new JavaParserTypeSolver(srcRootPath); + StaticJavaParser + .getConfiguration() + .setSymbolResolver(new JavaSymbolSolver(javaParserTypeSolver)); + + CompilationUnit cu = StaticJavaParser.parse(mainPath); + ClassOrInterfaceDeclaration c = Navigator.demandClass(cu, "Main"); + + String qualifiedName = c.getFieldByName("s").get().resolve().getType().describe(); + assertEquals("another.String", qualifiedName, "Error - not resolved to an asterisk-imported class."); + assertNotEquals("java.lang.String", qualifiedName, "Error - mistakenly resolved to a member of java.lang instead of a member of asterisk-imported package."); + } } 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 index 4474ae9983..5550b9001f 100644 --- 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 @@ -65,7 +65,7 @@ void solveParameterOfLambdaInMethodCallExpr() { com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Agenda"); MethodDeclaration method = Navigator.demandMethod(clazz, "lambdaMap"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); MethodCallExpr methodCallExpr = (MethodCallExpr) returnStmt.getExpression().get(); LambdaExpr lambdaExpr = (LambdaExpr) methodCallExpr.getArguments().get(0); 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 index 554b325ede..085857dbf0 100644 --- 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 @@ -69,7 +69,7 @@ void declaredOnMethodPositiveCase() { 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(); + MethodCallExpr callToFoo = (MethodCallExpr) Navigator.demandReturnStmt(methodDecl).getExpression().get(); ResolvedMethodDeclaration methodDeclaration = javaParserFacade.solve(callToFoo).getCorrespondingDeclaration(); for (ResolvedTypeParameterDeclaration tp : methodDeclaration.getTypeParameters()) { assertTrue(tp instanceof JavaParserTypeParameter); @@ -86,7 +86,7 @@ void declaredOnMethodNegativeCase() { 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(); + MethodCallExpr callToFoo = (MethodCallExpr) Navigator.demandReturnStmt(methodDecl).getExpression().get(); ResolvedMethodDeclaration methodDeclaration = javaParserFacade.solve(callToFoo).getCorrespondingDeclaration(); ResolvedReferenceTypeDeclaration typeDeclaration = methodDeclaration.declaringType(); assertEquals(2, typeDeclaration.getTypeParameters().size()); 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 index 46a09903f8..dea4379fae 100644 --- 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 @@ -67,7 +67,7 @@ void conditionalExpressionExample() { CompilationUnit cu = parseSample("JreConditionalExpression"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MyClass"); MethodDeclaration method = Navigator.demandMethod(clazz, "foo1"); - ReturnStmt returnStmt = Navigator.findReturnStmt(method); + ReturnStmt returnStmt = Navigator.demandReturnStmt(method); Expression expression = returnStmt.getExpression().get(); TypeSolver typeSolver = new ReflectionTypeSolver(); diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JavaParserTypeSolverTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JavaParserTypeSolverTest.java index deabed0501..eb7b69e4dc 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JavaParserTypeSolverTest.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/JavaParserTypeSolverTest.java @@ -23,6 +23,7 @@ import com.github.javaparser.ast.Node; import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration; +import com.github.javaparser.symbolsolver.AbstractSymbolResolutionTest; import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration; import com.github.javaparser.symbolsolver.model.resolution.SymbolReference; import com.github.javaparser.symbolsolver.utils.LeanParserConfiguration; @@ -36,15 +37,17 @@ import java.io.IOException; import java.nio.file.Path; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; -class JavaParserTypeSolverTest { +class JavaParserTypeSolverTest extends AbstractSymbolResolutionTest { - @Disabled + @Disabled // Unsure why this test is disabled -- passes locally. @Test void containsLocationInStorage() { - JavaParserTypeSolver typeSolver = new JavaParserTypeSolver(CodeGenerationUtils.mavenModuleRoot(JavaParserTypeSolver.class).resolve("src/main/java"), new LeanParserConfiguration()); + JavaParserTypeSolver typeSolver = new JavaParserTypeSolver( + CodeGenerationUtils.mavenModuleRoot(JavaParserTypeSolver.class).resolve("src/main/java"), + new LeanParserConfiguration() + ); SymbolReference x = typeSolver.tryToSolveType("com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver"); @@ -58,9 +61,73 @@ void containsLocationInStorage() { void folderTraversalDoesNotKeepFolderHandlesHostage(@TempDirectory.TempDir Path tempDir) throws IOException { File folder = tempDir.resolve("folder").toFile(); assertTrue(folder.mkdirs()); + File testJava = new File(folder, "Test.java"); assertTrue(testJava.createNewFile()); + JavaParserTypeSolver typeSolver = new JavaParserTypeSolver(folder.getParentFile()); typeSolver.tryToSolveType("folder.Test"); } + + + @Test + public void givenJavaParserTypeSolver_tryToSolveClass_expectSuccess() { + Path src = adaptPath("src/test/test_sourcecode/javaparser_new_src/javaparser-core"); + JavaParserTypeSolver typeSolver = new JavaParserTypeSolver(src); + + SymbolReference x = typeSolver.tryToSolveType("com.github.javaparser.ast.CompilationUnit"); + + assertTrue(x.isSolved()); + assertNotNull(x.getCorrespondingDeclaration()); + assertTrue(x.getCorrespondingDeclaration().isClass()); + } + + @Test + public void givenJavaParserTypeSolver_tryToSolveClassWithGeneric_expectSuccess() { + Path src = adaptPath("src/test/test_sourcecode/javaparser_new_src/javaparser-core"); + JavaParserTypeSolver typeSolver = new JavaParserTypeSolver(src); + + SymbolReference x = typeSolver.tryToSolveType("com.github.javaparser.ParseResult"); + + assertTrue(x.isSolved()); + assertNotNull(x.getCorrespondingDeclaration()); + assertTrue(x.getCorrespondingDeclaration().isClass()); + } + + @Test + public void givenJavaParserTypeSolver_tryToSolveEnum_expectSuccess() { + Path src = adaptPath("src/test/test_sourcecode/javaparser_new_src/javaparser-core"); + JavaParserTypeSolver typeSolver = new JavaParserTypeSolver(src); + + SymbolReference x = typeSolver.tryToSolveType("com.github.javaparser.ast.Modifier"); + + assertTrue(x.isSolved()); + assertNotNull(x.getCorrespondingDeclaration()); + assertTrue(x.getCorrespondingDeclaration().isEnum()); + } + + @Test + public void givenJavaParserTypeSolver_tryToSolveInterface_expectSuccess() { + Path src = adaptPath("src/test/test_sourcecode/javaparser_new_src/javaparser-core"); + JavaParserTypeSolver typeSolver = new JavaParserTypeSolver(src); + + SymbolReference x = typeSolver.tryToSolveType("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration"); + + assertTrue(x.isSolved()); + assertNotNull(x.getCorrespondingDeclaration()); + assertTrue(x.getCorrespondingDeclaration().isInterface()); + } + + @Test + public void givenJavaParserTypeSolver_tryToSolveInterfaceWithGeneric_expectSuccess() { + Path src = adaptPath("src/test/test_sourcecode/javaparser_new_src/javaparser-core"); + JavaParserTypeSolver typeSolver = new JavaParserTypeSolver(src); + + SymbolReference x = typeSolver.tryToSolveType("com.github.javaparser.ast.nodeTypes.NodeWithName"); + + assertTrue(x.isSolved()); + assertNotNull(x.getCorrespondingDeclaration()); + assertTrue(x.getCorrespondingDeclaration().isInterface()); + } + } diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ReflectionTypeSolverTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ReflectionTypeSolverTest.java index c93a9be397..dca8586583 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ReflectionTypeSolverTest.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/typesolvers/ReflectionTypeSolverTest.java @@ -38,6 +38,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -66,7 +67,7 @@ void testInvalidArgumentNumber() throws IOException { JavaParser javaParser = new JavaParser(pc); CompilationUnit unit = javaParser.parse(ParseStart.COMPILATION_UNIT, - new StreamProvider(Files.newInputStream(file))).getResult().get(); + new StreamProvider(Files.newInputStream(file), StandardCharsets.UTF_8)).getResult().get(); Assertions.assertThrows(UnsolvedSymbolException.class, () -> unit.accept(new VoidVisitorAdapter() { @Override diff --git a/javaparser-symbol-solver-testing/src/test/resources/Annotations.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Annotations.java.txt index fde13ad29d..41131a1a6e 100644 --- a/javaparser-symbol-solver-testing/src/test/resources/Annotations.java.txt +++ b/javaparser-symbol-solver-testing/src/test/resources/Annotations.java.txt @@ -20,6 +20,12 @@ public @interface MyAnnotationWithElements { String str(); } +public @interface MyAnnotationWithInnerClass { + MyInnerClass value(); + class MyInnerClass { + } +} + @MyAnnotation class CA { @Override diff --git a/javaparser-symbol-solver-testing/src/test/resources/EnumAccessSpecifier.java.txt b/javaparser-symbol-solver-testing/src/test/resources/EnumAccessSpecifier.java.txt new file mode 100644 index 0000000000..bbd5013e4d --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/EnumAccessSpecifier.java.txt @@ -0,0 +1,13 @@ +class MyClass { + public enum EnumPublic { + } + + protected enum EnumProtected { + } + + private enum EnumPrivate { + } + + enum EnumDefault { + } +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/Generics.java.txt b/javaparser-symbol-solver-testing/src/test/resources/Generics.java.txt index bb0f3fc920..ae0e36e2be 100644 --- a/javaparser-symbol-solver-testing/src/test/resources/Generics.java.txt +++ b/javaparser-symbol-solver-testing/src/test/resources/Generics.java.txt @@ -48,4 +48,16 @@ public final class GenericMethodCalls { } +} + +public final class GenericMethodBoxing { + + public T foo(T... t) { + return null; + } + + public void bar() { + foo(5L); + } + } \ No newline at end of file diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/src1/extends_duplicate/A.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/00_package_precedes_nested_class/extends_duplicate/A.java similarity index 100% rename from javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/src1/extends_duplicate/A.java rename to javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/00_package_precedes_nested_class/extends_duplicate/A.java diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/src1/extends_duplicate/DuplicateTypeName.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/00_package_precedes_nested_class/extends_duplicate/DuplicateTypeName.java similarity index 100% rename from javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/src1/extends_duplicate/DuplicateTypeName.java rename to javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/00_package_precedes_nested_class/extends_duplicate/DuplicateTypeName.java diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/src2/implements_duplicate/A.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/01_package_precedes_nested_interface/implements_duplicate/A.java similarity index 100% rename from javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/src2/implements_duplicate/A.java rename to javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/01_package_precedes_nested_interface/implements_duplicate/A.java diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/src2/implements_duplicate/DuplicateTypeName.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/01_package_precedes_nested_interface/implements_duplicate/DuplicateTypeName.java similarity index 100% rename from javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/src2/implements_duplicate/DuplicateTypeName.java rename to javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/01_package_precedes_nested_interface/implements_duplicate/DuplicateTypeName.java diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import/another/A.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import/another/A.java new file mode 100644 index 0000000000..0f815d4d62 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import/another/A.java @@ -0,0 +1,4 @@ +package another; + +class A { +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import/another/MyEnum.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import/another/MyEnum.java new file mode 100644 index 0000000000..c01893ef45 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import/another/MyEnum.java @@ -0,0 +1,5 @@ +package another; + +enum MyEnum { + A; +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import/main/Main.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import/main/Main.java new file mode 100644 index 0000000000..fd7813b3a2 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/02_ignore_static_non_type_import/main/Main.java @@ -0,0 +1,8 @@ +package main; + +import static another.MyEnum.A; +import another.A; + +class Main { + A field_a; +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member/another/A.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member/another/A.java new file mode 100644 index 0000000000..0f815d4d62 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member/another/A.java @@ -0,0 +1,4 @@ +package another; + +class A { +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member/main/A.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member/main/A.java new file mode 100644 index 0000000000..179276f920 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member/main/A.java @@ -0,0 +1,4 @@ +package main; + +class A { +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member/main/Main.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member/main/Main.java new file mode 100644 index 0000000000..d5ca87a32a --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/03_single_type_import_precedes_package_member/main/Main.java @@ -0,0 +1,7 @@ +package main; + +import another.A; + +class Main { + A field_a; +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import/another/A.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import/another/A.java new file mode 100644 index 0000000000..0f815d4d62 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import/another/A.java @@ -0,0 +1,4 @@ +package another; + +class A { +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import/main/A.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import/main/A.java new file mode 100644 index 0000000000..179276f920 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import/main/A.java @@ -0,0 +1,4 @@ +package main; + +class A { +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import/main/Main.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import/main/Main.java new file mode 100644 index 0000000000..ebe8e0ea71 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/04_package_member_precedes_asterisk_import/main/Main.java @@ -0,0 +1,7 @@ +package main; + +import another.*; + +class Main { + A field_a; +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/05_asterisk_import_precedes_java_lang/another/String.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/05_asterisk_import_precedes_java_lang/another/String.java new file mode 100644 index 0000000000..76bd091e6e --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/05_asterisk_import_precedes_java_lang/another/String.java @@ -0,0 +1,4 @@ +package another; + +class String { +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/05_asterisk_import_precedes_java_lang/main/Main.java b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/05_asterisk_import_precedes_java_lang/main/Main.java new file mode 100644 index 0000000000..ffa3ed7a2d --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/TypeResolutionWithSameNameTest/05_asterisk_import_precedes_java_lang/main/Main.java @@ -0,0 +1,7 @@ +package main; + +import another.*; + +class Main { + String s; +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1511/A.java b/javaparser-symbol-solver-testing/src/test/resources/issue1511/A.java new file mode 100644 index 0000000000..5a39ac4908 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1511/A.java @@ -0,0 +1,5 @@ +class A { + A() { + super(); + } +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/a/b/c/DataObject.java b/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/a/b/c/DataObject.java new file mode 100644 index 0000000000..4f9a74821e --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/a/b/c/DataObject.java @@ -0,0 +1,4 @@ +package a.b.c; + +public class DataObject { +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/a/b/c/DataObjectFactory.java b/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/a/b/c/DataObjectFactory.java new file mode 100644 index 0000000000..e5a5f44548 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/a/b/c/DataObjectFactory.java @@ -0,0 +1,5 @@ +package a.b.c; + +public class DataObjectFactory { + +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/a/b/c/ExampleClass.java b/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/a/b/c/ExampleClass.java new file mode 100644 index 0000000000..a76e082274 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/a/b/c/ExampleClass.java @@ -0,0 +1,19 @@ +package a.b.c; + +import d.e.f.DataObjectFactory; // Resolving imports takes precedence over within-the-same-package (commenting this line causes a compilation error!). + +public class ExampleClass { + + protected final DataObjectFactory doFactory; + + + public ExampleClass() { + doFactory = null; + } + + + public DataObject getDataObject(String objectID) { + return doFactory.getDataObject(objectID); + } + +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/d/e/f/DataObjectFactory.java b/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/d/e/f/DataObjectFactory.java new file mode 100644 index 0000000000..55580df723 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1526/compiles/d/e/f/DataObjectFactory.java @@ -0,0 +1,11 @@ +package d.e.f; + +import a.b.c.DataObject; + +public class DataObjectFactory { + + public DataObject getDataObject(String objectID){ + return null; + } + +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/a/b/c/DataObject.java b/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/a/b/c/DataObject.java new file mode 100644 index 0000000000..4f9a74821e --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/a/b/c/DataObject.java @@ -0,0 +1,4 @@ +package a.b.c; + +public class DataObject { +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/a/b/c/DataObjectFactory.java b/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/a/b/c/DataObjectFactory.java new file mode 100644 index 0000000000..e5a5f44548 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/a/b/c/DataObjectFactory.java @@ -0,0 +1,5 @@ +package a.b.c; + +public class DataObjectFactory { + +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/a/b/c/ExampleClass.java b/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/a/b/c/ExampleClass.java new file mode 100644 index 0000000000..0e022fb2d6 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/a/b/c/ExampleClass.java @@ -0,0 +1,19 @@ +package a.b.c; + +//import d.e.f.DataObjectFactory; // Resolving imports takes precedence over within-the-same-package (commenting this line causes a compilation error!). + +public class ExampleClass { + + protected final DataObjectFactory doFactory; + + + public ExampleClass() { + doFactory = null; + } + + + public DataObject getDataObject(String objectID) { + return doFactory.getDataObject(objectID); + } + +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/d/e/f/DataObjectFactory.java b/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/d/e/f/DataObjectFactory.java new file mode 100644 index 0000000000..55580df723 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1526/errors/d/e/f/DataObjectFactory.java @@ -0,0 +1,11 @@ +package d.e.f; + +import a.b.c.DataObject; + +public class DataObjectFactory { + + public DataObject getDataObject(String objectID){ + return null; + } + +} diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1574/BlockComment.java b/javaparser-symbol-solver-testing/src/test/resources/issue1574/BlockComment.java new file mode 100644 index 0000000000..f0b6c4ccfb --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1574/BlockComment.java @@ -0,0 +1,15 @@ +/* +Comment1 + */ +/* +Comment2 + */ +/* +Comment3 + */ +package aPackage; +public class comment{ + public void main(String args[]){ + System.out.println("HelloWorld"); + } +} \ No newline at end of file diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1574/ClassWithOrphanComments.java b/javaparser-symbol-solver-testing/src/test/resources/issue1574/ClassWithOrphanComments.java new file mode 100644 index 0000000000..a64eb06cd7 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1574/ClassWithOrphanComments.java @@ -0,0 +1,15 @@ +package japa.parser.comments; + +/**Javadoc associated with the class*/ +public class ClassWithOrphanComments { + //a first comment floating in the class + + //comment associated to the method + void foo(){ + /*comment floating inside the method*/ + } + + //a second comment floating in the class +} + +//Orphan comment inside the CompilationUnit \ No newline at end of file diff --git a/javaparser-symbol-solver-testing/src/test/resources/issue1574/Comment.java b/javaparser-symbol-solver-testing/src/test/resources/issue1574/Comment.java new file mode 100644 index 0000000000..472ffe8abb --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/resources/issue1574/Comment.java @@ -0,0 +1,9 @@ +//Comment1 +//Comment2 +//Comment3 +package aPackage; +public class comment{ + public void main(String args[]){ + System.out.println("HelloWorld"); + } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 065ae2d8ff..6b27576a3c 100644 --- a/pom.xml +++ b/pom.xml @@ -7,8 +7,6 @@ javaparser-core-generators javaparser-core-metamodel-generator javaparser-core-serialization - javaparser-symbol-solver-model - javaparser-symbol-solver-logic javaparser-symbol-solver-core javaparser-symbol-solver-testing @@ -16,7 +14,7 @@ com.github.javaparser javaparser-parent pom - 3.15.8-SNAPSHOT + 3.15.19-SNAPSHOT javaparser-parent https://github.com/javaparser @@ -169,7 +167,7 @@ attach-sources - jar + jar-no-fork @@ -180,7 +178,7 @@ com.helger.maven ph-javacc-maven-plugin - 3.0.0 + 4.1.3 org.apache.maven.plugins @@ -190,7 +188,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.0 + 3.8.1 org.apache.maven.plugins @@ -205,7 +203,7 @@ org.apache.maven.plugins maven-source-plugin - 3.0.1 + 3.2.1 org.apache.maven.plugins @@ -215,7 +213,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.1.0 + 3.2.0 org.eluder.coveralls @@ -232,12 +230,12 @@ org.jacoco jacoco-maven-plugin - 0.8.2 + 0.8.5 org.apache.maven.plugins maven-javadoc-plugin - 3.0.1 + 3.2.0 -Xdoclint:none @@ -247,7 +245,7 @@ org.apache.maven.plugins maven-site-plugin - 3.7.1 + 3.9.0 -Xdoclint:none @@ -257,12 +255,12 @@ biz.aQute.bnd bnd-maven-plugin - 4.1.0 + 5.0.1 org.apache.maven.plugins maven-surefire-plugin - 3.0.0-M1 + 3.0.0-M4 org.codehaus.mojo @@ -277,7 +275,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.0.0 + 3.1.0 org.codehaus.mojo @@ -287,12 +285,12 @@ org.apache.maven.plugins maven-dependency-plugin - 3.1.1 + 3.1.2 org.codehaus.mojo versions-maven-plugin - 2.5 + 2.7 false @@ -305,53 +303,53 @@ org.javassist javassist - 3.24.0-GA + 3.27.0-GA com.google.guava guava - 27.0-jre + 28.2-jre junit junit - 4.12 + 4.13 test org.hamcrest hamcrest-library - 1.3 + 2.2 test org.junit.jupiter junit-jupiter-engine - 5.5.2 + 5.6.2 test org.junit.jupiter junit-jupiter-params - 5.5.2 + 5.6.2 test org.junit.vintage junit-vintage-engine - 5.5.2 + 5.6.2 test org.junit-pioneer junit-pioneer - 0.3.0 + 0.5.4 test org.mockito mockito-core - 3.0.0 + 3.3.3 test diff --git a/readme.md b/readme.md index 451a79818b..deeb396f8c 100644 --- a/readme.md +++ b/readme.md @@ -5,6 +5,8 @@ [![Coverage Status](https://coveralls.io/repos/javaparser/javaparser/badge.svg?branch=master&service=github)](https://coveralls.io/github/javaparser/javaparser?branch=master) [![Join the chat at https://gitter.im/javaparser/javaparser](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/javaparser/javaparser?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![License LGPL-3/Apache-2.0](https://img.shields.io/badge/license-LGPL--3%2FApache--2.0-blue.svg)](LICENSE) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2667378.svg)](https://doi.org/10.5281/zenodo.2667378) + This project contains a set of libraries implementing a Java 1.0 - Java 13 Parser with advanced analysis functionalities. @@ -29,14 +31,14 @@ Just add the following to your maven configuration or tailor to your own depende com.github.javaparser javaparser-symbol-solver-core - 3.15.7 + 3.15.18 ``` **Gradle**: ``` -implementation 'com.github.javaparser:javaparser-symbol-solver-core:3.15.7' +implementation 'com.github.javaparser:javaparser-symbol-solver-core:3.15.18' ``` Since Version 3.5.10, the JavaParser project includes the JavaSymbolSolver. @@ -51,14 +53,14 @@ Using the dependency above will add both JavaParser and JavaSymbolSolver to your com.github.javaparser javaparser-core - 3.15.7 + 3.15.18 ``` **Gradle**: ``` -implementation 'com.github.javaparser:javaparser-core:3.15.7' +implementation 'com.github.javaparser:javaparser-core:3.15.18' ``` Since version 3.6.17 the AST can be serialized to JSON. @@ -70,14 +72,14 @@ There is a separate module for this: com.github.javaparser javaparser-core-serialization - 3.15.7 + 3.15.18 ``` **Gradle**: ``` -implementation 'com.github.javaparser:javaparser-core-serialization:3.15.7' +implementation 'com.github.javaparser:javaparser-core-serialization:3.15.18' ``` ## How To Compile Sources