/** * Returns the Sonar file representation ({@link File}) of the given file, if that file exists in the given project. * * @param file * the real file * @param project * the project * @return the Sonar resource if it exists in this project, or null if not. */ public File fromIOFile(java.io.File file, Project project) { return File.fromIOFile(file, project); }
public Resource resourceFromIOFile(File file) { return org.sonar.api.resources.File.fromIOFile(file, project); }
@SuppressWarnings("rawtypes") public Resource createResource(java.io.File file, List<java.io.File> sourceDirs) { return File.fromIOFile(file, sourceDirs); }
public Resource resourceFromIOFile(File file) { return org.sonar.api.resources.File.fromIOFile(file, project); }
public org.sonar.api.resources.File fromIOFile(File file) { return org.sonar.api.resources.File.fromIOFile(file, project); }
private org.sonar.api.resources.File findResource(final String filePath) { return org.sonar.api.resources.File.fromIOFile(new File(filePath), project); }
public org.sonar.api.resources.File fromIOFile(String path) { return context.getResource(org.sonar.api.resources.File.fromIOFile(new File(new File(path).getAbsolutePath()), project)); }
public org.sonar.api.resources.File fromPath(String path) { // Workaround SonarQube < 4.2, the context should not be required return context.getResource(org.sonar.api.resources.File.fromIOFile(new File(new File(path).getAbsolutePath()), project)); }
private void saveMeasuresForFile(final CoverageMeasuresBuilder measureBuilder, final String filePath) { LoggerFactory.getLogger(getClass()).debug("Saving measures for {}", filePath); final org.sonar.api.resources.File objcfile = org.sonar.api.resources.File.fromIOFile(new File(project.getFileSystem().getBasedir(), filePath), project); if (fileExists(context, objcfile)) { LoggerFactory.getLogger(getClass()).debug( "File {} was found in the project.", filePath); saveMeasures(measureBuilder, objcfile); } }
private void save(Collection<SourceCode> squidSourceFiles) { for (SourceCode squidSourceFile : squidSourceFiles) { SourceFile squidFile = (SourceFile) squidSourceFile; File sonarFile = File.fromIOFile(new java.io.File(squidFile.getKey()), project); saveFilesComplexityDistribution(sonarFile, squidFile); saveFunctionsComplexityDistribution(sonarFile, squidFile); saveMeasures(sonarFile, squidFile); saveViolations(sonarFile, squidFile); } }
@Override public void leaveFile(AstNode astNode) { File sonarFile = File.fromIOFile(getContext().getFile(), project); FileLinesContext fileLinesContext = fileLinesContextFactory.createFor(sonarFile); int fileLength = getContext().peekSourceCode().getInt(CssMetric.LINES); for (int line = 1; line <= fileLength; line++) { fileLinesContext.setIntValue(CoreMetrics.NCLOC_DATA_KEY, line, linesOfCode.contains(line) ? 1 : 0); fileLinesContext.setIntValue(CoreMetrics.COMMENT_LINES_DATA_KEY, line, linesOfComments.contains(line) ? 1 : 0); } fileLinesContext.save(); linesOfCode.clear(); linesOfComments.clear(); }
/** * {@inheritDoc} */ @Override public org.sonar.api.resources.File fromIOFile(File file, Project project) { if (isTestSensor()) { return org.sonar.api.resources.File.fromIOFile(file, project.getFileSystem().getTestDirs()); } return super.fromIOFile(file, project); }
@Override public void leaveFile(AstNode astNode) { File sonarFile = File.fromIOFile(getContext().getFile(), project); FileLinesContext fileLinesContext = fileLinesContextFactory.createFor(sonarFile); int fileLength = getContext().peekSourceCode().getInt(FlexMetric.LINES); for (int line = 1; line <= fileLength; line++) { fileLinesContext.setIntValue(CoreMetrics.NCLOC_DATA_KEY, line, linesOfCode.contains(line) ? 1 : 0); fileLinesContext.setIntValue(CoreMetrics.COMMENT_LINES_DATA_KEY, line, linesOfComments.contains(line) ? 1 : 0); } fileLinesContext.save(); linesOfCode.clear(); linesOfComments.clear(); }
if (vsProject.equals(currentVsProject)) { if (vsProject.isTest()) { resource = org.sonar.api.resources.File.fromIOFile(sourceFile, project.getFileSystem().getTestDirs()); } else { resource = org.sonar.api.resources.File.fromIOFile(sourceFile, project);
@Override public void analyse(Project project, SensorContext sensorContext) { for (File file : fileSystem.files(FileQuery.onSource().onLanguage(Xml.KEY))) { org.sonar.api.resources.File htmlFile = org.sonar.api.resources.File.fromIOFile(file, project); addMeasures(sensorContext, file, htmlFile); } }
@Override public void scanFile(JavaFileScannerContext context) { Preconditions.checkNotNull(sensorContext); JavaFilesCache javaFilesCache = new JavaFilesCache(); javaFilesCache.scanFile(context); org.sonar.api.resources.File currentResource = org.sonar.api.resources.File.fromIOFile(context.getFile(), project); if (currentResource == null) { throw new IllegalStateException("resource not found : " + context.getFileKey()); } resourceMapping.addResource(currentResource, context.getFileKey()); for (Map.Entry<String, File> classIOFileEntry : javaFilesCache.getResourcesCache().entrySet()) { resourcesByClass.put(classIOFileEntry.getKey(), currentResource); if (context.getFileKey() != null) { sourceFileByClass.put(classIOFileEntry.getKey(), context.getFileKey()); } } methodStartLines.putAll(javaFilesCache.getMethodStartLines()); org.sonar.api.resources.File indexedResource = sensorContext.getResource(currentResource); if (indexedResource != null && javaFilesCache.hasSuppressWarningLines()) { suppressWarningsFilter.addComponent(indexedResource.getEffectiveKey(), javaFilesCache.getSuppressWarningLines()); } } }
@Override public void analyse(Project project, SensorContext sensorContext) { // configure the lexer final PageLexer lexer = new PageLexer(); // configure page scanner and the visitors final HtmlAstScanner scanner = setupScanner(); for (java.io.File file : fileSystem.files(FileQuery.onSource().onLanguage(WebConstants.LANGUAGE_KEY))) { File resource = File.fromIOFile(file, project); WebSourceCode sourceCode = new WebSourceCode(file, resource); FileReader reader = null; try { reader = new FileReader(file); List<Node> nodeList = lexer.parse(reader); scanner.scan(nodeList, sourceCode, fileSystem.sourceCharset()); saveMetrics(sensorContext, sourceCode); saveLineLevelMeasures(resource, sourceCode); } catch (Exception e) { LOG.error("Can not analyze file " + file.getAbsolutePath(), e); } finally { IOUtils.closeQuietly(reader); } } }
/** * Analyze the XML files. */ public void analyse(Project project, SensorContext sensorContext) { Collection<AbstractXmlCheck> checks = annotationCheckFactory.getChecks(); for (java.io.File file : fileSystem.files(FileQuery.onSource().onLanguage(Xml.KEY))) { try { File resource = File.fromIOFile(file, project); XmlSourceCode sourceCode = new XmlSourceCode(resource, file); // Do not execute any XML rule when an XML file is corrupted (SONARXML-13) if (sourceCode.parseSource(fileSystem)) { for (AbstractXmlCheck check : checks) { check.setRule(annotationCheckFactory.getActiveRule(check).getRule()); check.validate(sourceCode); } saveIssue(sourceCode); } } catch (Exception e) { LOG.error("Could not analyze the file " + file.getAbsolutePath(), e); } } }
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(); }
@Override public void scanFile(JavaFileScannerContext context) { sonarFile = File.fromIOFile(context.getFile(), project); classTrees.clear(); methods = 0;