@Override public void endDocument() { if (noSonarLines != null && !noSonarLines.isEmpty()) { noSonarFilter.addResource(getWebSourceCode().getResource(), noSonarLines); } }
public void analyse(Project prj, SensorContext context) { List<File> srcFiles = VisualUtils.buildCsFileList(prj); for (File srcFile : srcFiles) { CSharpFile cSharpFile = fileLocator.locate(prj, srcFile, false); if (cSharpFile == null) { continue; } Source source = analyseSourceCode(srcFile); if (source != null) { // TODO HACK for SONARPLUGINS-662 noSonarFilter.addResource(cSharpFile, source.getNoSonarTagLines()); context.saveMeasure(cSharpFile, CoreMetrics.COMMENTED_OUT_CODE_LINES, (double) source.getMeasure(Metric.COMMENTED_OUT_CODE_LINES)); } } }
private void reportIssues(ResourceMapping resourceMapping, NoSonarFilter noSonarFilter, ChecksBridge checksBridge, Project project) { for (Resource directory : resourceMapping.directories()) { checksBridge.reportIssueForPackageInfo((Directory) directory, project); for (Resource sonarFile : resourceMapping.files((Directory) directory)) { String key = resourceMapping.getFileKeyByResource((org.sonar.api.resources.File) sonarFile); //key would be null for test files as they are not in squid index. if(key != null) { SourceFile squidFile = (SourceFile) squid.search(key); if (squidFile != null) { noSonarFilter.addResource(sonarFile, squidFile.getNoSonarTagLines()); checksBridge.reportIssues(squidFile, sonarFile); } else { LOG.error("Could not report issue on file: " + sonarFile.getKey()); } } } } }
private void save(Collection<SourceCode> squidSourceFiles) { for (SourceCode squidSourceFile : squidSourceFiles) { SourceFile squidFile = (SourceFile) squidSourceFile; File sonarFile = context.getResource(File.create(pathResolver.relativePath(fileSystem.baseDir(), new java.io.File(squidFile.getKey())))); if (sonarFile != null) { noSonarFilter.addResource(sonarFile, squidFile.getNoSonarTagLines()); saveClassComplexity(sonarFile, squidFile); saveFilesComplexityDistribution(sonarFile, squidFile); saveFunctionsComplexityAndDistribution(sonarFile, squidFile); saveMeasures(sonarFile, squidFile); saveIssues(sonarFile, squidFile); } else { LOG.warn("Cannot save analysis information for file {}. Unable to retrieve the associated sonar resource.", squidFile.getKey()); } } }
private void saveMeasures(Collection<SourceCode> sourceFiles) { for (SourceCode squidFileCode : sourceFiles) { SourceFile squidFile = (SourceFile) squidFileCode; /* Create the sonar file */ File sonarFile = File.fromIOFile(new java.io.File(squidFile.getKey()), project); sonarFile.setLanguage(cSharp); /* Fill the resource bridge API that can be used by other C# plugins to map logical resources to physical ones */ cSharpResourcesBridge.indexFile(squidFile, sonarFile); /* No Sonar */ noSonarFilter.addResource(sonarFile, squidFile.getNoSonarTagLines()); /* Classes complexity distribution */ saveClassesComplexityDistribution(sonarFile, squidFile); /* Methods complexity distribution */ saveMethodsComplexityDistribution(sonarFile, squidFile); /* Check messages */ saveViolations(squidFile, sonarFile); /* Metrics at the file level */ saveMeasures(sonarFile, squidFile); } // and lock everything to prevent future modifications LOG.debug("Locking the C# Resource Bridge and the Sonar Index: future modifications won't be possible."); cSharpResourcesBridge.lock(); resourceCreationLock.lock(); }
/** * @see org.sonar.api.batch.Sensor#analyse(org.sonar.api.resources.Project, org.sonar.api.batch.SensorContext) */ public void analyse(Project project, SensorContext context) { ProjectFileSystem fileSystem = project.getFileSystem(); List<File> sourceFiles = fileSystem.getSourceFiles(PHP); List<File> directories = fileSystem.getSourceDirs(); for (File file : sourceFiles) { PhpFile phpFile = PhpFile.getInstance(project).fromIOFile(file, directories, false); if (phpFile != null) { Source source = analyseSourceCode(file); if (source != null) { filter.addResource(phpFile, source.getNoSonarTagLines()); double measure = source.getMeasure(Metric.COMMENTED_OUT_CODE_LINES); context.saveMeasure(phpFile, CoreMetrics.COMMENTED_OUT_CODE_LINES, measure); } } } }