2020import java .util .ArrayList ;
2121import java .util .Arrays ;
2222import java .util .Collection ;
23- import java .util .Collections ;
2423import java .util .HashSet ;
2524import java .util .List ;
2625import java .util .Map ;
4544import org .sonar .plugins .java .api .JavaCheck ;
4645import org .sonar .plugins .java .api .JavaResourceLocator ;
4746import org .sonar .plugins .java .api .JavaVersion ;
48- import org .sonarsource .analyzer .commons .collections .ListUtils ;
4947import org .sonarsource .performance .measure .PerformanceMeasure ;
5048import org .sonarsource .performance .measure .PerformanceMeasure .Duration ;
5149
@@ -71,19 +69,24 @@ public JavaFrontend(JavaVersion javaVersion, @Nullable SonarComponents sonarComp
7169 commonVisitors .add (postAnalysisIssueFilter );
7270 }
7371
74- Iterable <JavaCheck > codeVisitors = ListUtils .concat (commonVisitors , Arrays .asList (visitors ));
75- Collection <JavaCheck > testCodeVisitors = new ArrayList <>(commonVisitors );
76- Iterable <JavaCheck > measurers = Collections .singletonList (measurer );
77- codeVisitors = ListUtils .concat (measurers , codeVisitors );
72+ List <JavaCheck > codeVisitors = new ArrayList <>();
73+ codeVisitors .add (measurer );
74+ codeVisitors .addAll (commonVisitors );
75+ codeVisitors .addAll (Arrays .asList (visitors ));
76+
77+ List <JavaCheck > testCodeVisitors = new ArrayList <>(commonVisitors );
7878 testCodeVisitors .add (measurer .new TestFileMeasurer ());
79+
7980 List <File > classpath = new ArrayList <>();
8081 List <File > testClasspath = new ArrayList <>();
8182 List <JavaCheck > jspCodeVisitors = new ArrayList <>();
8283 List <File > jspClasspath = new ArrayList <>();
8384 boolean inAndroidContext = false ;
85+
8486 if (sonarComponents != null ) {
8587 if (!sonarComponents .isSonarLintContext ()) {
86- codeVisitors = ListUtils .concat (codeVisitors , Arrays .asList (new FileLinesVisitor (sonarComponents ), new SyntaxHighlighterVisitor (sonarComponents )));
88+ codeVisitors .add (new FileLinesVisitor (sonarComponents ));
89+ codeVisitors .add (new SyntaxHighlighterVisitor (sonarComponents ));
8790 testCodeVisitors .add (new SyntaxHighlighterVisitor (sonarComponents ));
8891 }
8992 classpath = sonarComponents .getJavaClasspath ();
@@ -93,27 +96,21 @@ public JavaFrontend(JavaVersion javaVersion, @Nullable SonarComponents sonarComp
9396 jspCodeVisitors = sonarComponents .jspChecks ();
9497 inAndroidContext = sonarComponents .inAndroidContext ();
9598 }
99+
96100 globalClasspath = Stream .of (classpath , testClasspath , jspClasspath )
97101 .flatMap (Collection ::stream ).distinct ().toList ();
98102
99103 //AstScanner for main files
100104 astScanner = new JavaAstScanner (sonarComponents );
101- astScanner .setVisitorBridge (createVisitorBridge (codeVisitors , classpath , javaVersion , sonarComponents , inAndroidContext ));
105+ astScanner .setVisitorBridge (new VisitorsBridge (codeVisitors , classpath , sonarComponents , javaVersion , inAndroidContext ));
102106
103107 //AstScanner for test files
104108 astScannerForTests = new JavaAstScanner (sonarComponents );
105- astScannerForTests .setVisitorBridge (createVisitorBridge (testCodeVisitors , testClasspath , javaVersion , sonarComponents , inAndroidContext ));
109+ astScannerForTests .setVisitorBridge (new VisitorsBridge (testCodeVisitors , testClasspath , sonarComponents , javaVersion , inAndroidContext ));
106110
107111 //AstScanner for generated files
108112 astScannerForGeneratedFiles = new JavaAstScanner (sonarComponents );
109- astScannerForGeneratedFiles .setVisitorBridge (createVisitorBridge (jspCodeVisitors , jspClasspath , javaVersion , sonarComponents , inAndroidContext ));
110- }
111-
112- private static VisitorsBridge createVisitorBridge (
113- Iterable <JavaCheck > codeVisitors , List <File > classpath , JavaVersion javaVersion , @ Nullable SonarComponents sonarComponents , boolean inAndroidContext ) {
114- VisitorsBridge visitorsBridge = new VisitorsBridge (codeVisitors , classpath , sonarComponents , javaVersion );
115- visitorsBridge .setInAndroidContext (inAndroidContext );
116- return visitorsBridge ;
113+ astScannerForGeneratedFiles .setVisitorBridge (new VisitorsBridge (jspCodeVisitors , jspClasspath , sonarComponents , javaVersion , inAndroidContext ));
117114 }
118115
119116 @ VisibleForTesting
0 commit comments