/** * From absolute path. * * @param path * the path * @param project * the current project * @return the php file */ public PhpFile fromAbsolutePath(String path, Project project) { PhpFile phpFile = null; if (path != null) { File file = new File(path); ProjectFileSystem fileSystem = project.getFileSystem(); List<File> sourceFiles = fileSystem.getSourceFiles(PHP); List<File> testFiles = fileSystem.getTestFiles(PHP); if (sourceFiles.contains(file)) { phpFile = fromIOFile(file, fileSystem.getSourceDirs(), false); } if (phpFile == null && testFiles.contains(file)) { phpFile = fromIOFile(file, fileSystem.getTestDirs(), true); } } return phpFile; }
/** * Imports php file contains in the source and tests folders. * * @param project * the project * @param context * the context * @throws IOException * Signals that an I/O exception has occurred. */ protected void doAnalyse(Project project, SensorContext context) throws IOException { // Importing source files ProjectFileSystem fileSystem = project.getFileSystem(); Charset sourceCharset = fileSystem.getSourceCharset(); List<File> sourceDirs = fileSystem.getSourceDirs(); List<File> sourceFiles = fileSystem.getSourceFiles(PHP); parseDirs(context, sourceFiles, sourceDirs, false, sourceCharset); for (File directory : sourceDirs) { LOG.info(directory.getName()); } // Importing tests files List<File> testDirs = fileSystem.getTestDirs(); List<File> testFiles = fileSystem.getTestFiles(PHP); parseDirs(context, testFiles, testDirs, true, sourceCharset); // Display source dirs and tests directories if info level is enabled. for (File directory : testDirs) { LOG.info(directory.getName()); } }
/** * @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); } } } }