@Override public void addIssue(int line, JavaCheck javaCheck, String message, @Nullable Integer cost) { issues.add(new AnalyzerMessage(javaCheck, getFile(), line, message, cost != null ? cost.intValue() : 0)); }
@Override public void reportIssue(JavaCheck javaCheck, Tree startTree, Tree endTree, String message, List<Location> secondary, @Nullable Integer cost) { issues.add(createAnalyzerMessage(javaCheck, startTree, endTree, message, secondary, cost)); }
private static void scanFile(String filename, JavaFileScanner check, JavaCheckVerifier javaCheckVerifier, Collection<File> classpath, boolean withSemantic) { JavaFileScanner expectedIssueCollector = new ExpectedIssueCollector(javaCheckVerifier); VisitorsBridgeForTests visitorsBridge; File file = new File(filename); SonarComponents sonarComponents = CheckVerifier.sonarComponents(file); if (withSemantic) { visitorsBridge = new VisitorsBridgeForTests(Lists.newArrayList(check, expectedIssueCollector), Lists.newArrayList(classpath), sonarComponents); } else { visitorsBridge = new VisitorsBridgeForTests(Lists.newArrayList(check, expectedIssueCollector), sonarComponents); } JavaAstScanner.scanSingleFileForTests(file, visitorsBridge, javaCheckVerifier.javaVersion); VisitorsBridgeForTests.TestJavaFileScannerContext testJavaFileScannerContext = visitorsBridge.lastCreatedTestContext(); if (testJavaFileScannerContext == null) { Fail.fail("Semantic was required but it was not possible to create it. Please checks the logs to find out the reason."); } javaCheckVerifier.checkIssues(testJavaFileScannerContext.getIssues(), javaCheckVerifier.providedJavaVersion); }
@Override public void addIssue(int line, JavaCheck javaCheck, String message, @Nullable Double cost) { issues.add(new AnalyzerMessage(javaCheck, getFile(), line, message, cost != null ? cost.intValue() : 0)); }
@Override public void reportIssue(JavaCheck javaCheck, Tree startTree, Tree endTree, String message) { issues.add(createAnalyzerMessage(javaCheck, startTree, endTree, message, ImmutableList.of(), null)); }
@Override public AnalyzerMessage createAnalyzerMessage(JavaCheck javaCheck, Tree startTree, String message) { return createAnalyzerMessage(getFile(), javaCheck, startTree, null, message, Arrays.asList(), null); }
@Override public void addIssue(int line, JavaCheck javaCheck, String message, @Nullable Integer cost) { issues.add(new AnalyzerMessage(javaCheck, getFile(), line, message, cost != null ? cost.intValue() : 0)); }
private Set<AnalyzerMessage> scanFiles(List<String> filesToScan, JavaFileScanner check, boolean withSemantic) { List<File> classPath = JavaCheckVerifier.getClassPath(JavaCheckVerifier.DEFAULT_TEST_JARS_DIRECTORY); VisitorsBridgeForTests visitorsBridge; if (withSemantic) { visitorsBridge = new VisitorsBridgeForTests(Arrays.asList(check, new JavaCheckVerifier.ExpectedIssueCollector(this)), classPath, null); } else { visitorsBridge = new VisitorsBridgeForTests(Arrays.asList(check, new JavaCheckVerifier.ExpectedIssueCollector(this)), null); } visitorsBridge.setJavaVersion(new JavaVersionImpl()); JavaAstScanner astScanner = new JavaAstScanner(JavaParser.createParser(), null); astScanner.setVisitorBridge(visitorsBridge); astScanner.scan(filesToScan.stream().map(File::new).collect(Collectors.toList())); VisitorsBridgeForTests.TestJavaFileScannerContext testJavaFileScannerContext = visitorsBridge.lastCreatedTestContext(); return testJavaFileScannerContext.getIssues(); }
@Override public void reportIssue(JavaCheck javaCheck, Tree startTree, Tree endTree, String message, List<Location> secondary, @Nullable Integer cost) { issues.add(createAnalyzerMessage(javaCheck, startTree, endTree, message, secondary, cost)); }
@Override public void reportIssue(JavaCheck javaCheck, Tree startTree, Tree endTree, String message) { issues.add(createAnalyzerMessage(javaCheck, startTree, endTree, message, ImmutableList.of(), null)); }
@Override protected JavaFileScannerContext createScannerContext(CompilationUnitTree tree, SemanticModel semanticModel, boolean analyseAccessors, SonarComponents sonarComponents, boolean failedParsing) { testContext = new TestJavaFileScannerContext(tree, currentFile, semanticModel, analyseAccessors, sonarComponents, javaVersion, failedParsing); return testContext; }
@Override public AnalyzerMessage createAnalyzerMessage(JavaCheck javaCheck, Tree startTree, String message) { return createAnalyzerMessage(getFile(), javaCheck, startTree, null, message, Arrays.asList(), null); }
private AnalyzerMessage createAnalyzerMessage(JavaCheck javaCheck, Tree startTree, @Nullable Tree endTree, String message, List<Location> secondary, @Nullable Integer cost) { List<List<Location>> flows = secondary.stream().map(Collections::singletonList).collect(Collectors.toList()); return createAnalyzerMessage(getFile(), javaCheck, startTree, endTree, message, flows, cost); } }
@Override public void reportIssue(JavaCheck javaCheck, Tree syntaxNode, String message, List<Location> secondary, @Nullable Integer cost) { List<List<Location>> flows = secondary.stream().map(Collections::singletonList).collect(Collectors.toList()); issues.add(createAnalyzerMessage(getFile(), javaCheck, syntaxNode, null, message, flows, cost)); }
@Override protected JavaFileScannerContext createScannerContext(CompilationUnitTree tree, SemanticModel semanticModel, SonarComponents sonarComponents, boolean failedParsing) { SemanticModel model = enableSemantic ? semanticModel : null; testContext = new TestJavaFileScannerContext(tree, currentFile, model, sonarComponents, javaVersion, failedParsing); return testContext; }
@Override public void reportIssueWithFlow(JavaCheck javaCheck, Tree syntaxNode, String message, Iterable<List<Location>> flows, @Nullable Integer cost) { issues.add(createAnalyzerMessage(getFile(), javaCheck, syntaxNode, null, message, flows, cost)); }
@Override public void reportIssue(JavaCheck javaCheck, Tree syntaxNode, String message, List<Location> secondary, @Nullable Integer cost) { File file = getFile(); AnalyzerMessage analyzerMessage = new AnalyzerMessage(javaCheck, file, AnalyzerMessage.textSpanFor(syntaxNode), message, cost != null ? cost : 0); for (Location location : secondary) { AnalyzerMessage secondaryLocation = new AnalyzerMessage(javaCheck, file, AnalyzerMessage.textSpanFor(location.syntaxNode), location.msg, 0); analyzerMessage.secondaryLocations.add(secondaryLocation); } issues.add(analyzerMessage); }
@Override protected JavaFileScannerContext createScannerContext(CompilationUnitTree tree, SemanticModel semanticModel, SonarComponents sonarComponents, boolean failedParsing) { SemanticModel model = enableSemantic ? semanticModel : null; testContext = new TestJavaFileScannerContext(tree, currentFile, model, sonarComponents, javaVersion, failedParsing); return testContext; }
@Override public void reportIssue(JavaCheck javaCheck, Tree startTree, Tree endTree, String message) { issues.add(new AnalyzerMessage(javaCheck, getFile(), AnalyzerMessage.textSpanBetween(startTree, endTree), message, 0)); } }
@Override public void reportIssueWithFlow(JavaCheck javaCheck, Tree syntaxNode, String message, Iterable<List<Location>> flows, @Nullable Integer cost) { issues.add(createAnalyzerMessage(getFile(), javaCheck, syntaxNode, null, message, flows, cost)); }