private void processFileMeasures(InputFile inputFile, SensorContext context) { File ioFile = inputFile.file(); File measureFile = new File(ioFile.getParentFile(), ioFile.getName() + MEASURES_EXTENSION); if (measureFile.exists()) { LOG.debug("Processing " + measureFile.getAbsolutePath()); try { FileLinesContext linesContext = contextFactory.createFor(inputFile); List<String> lines = FileUtils.readLines(measureFile, context.fileSystem().encoding().name()); int lineNumber = 0; for (String line : lines) { lineNumber++; if (StringUtils.isBlank(line) || line.startsWith("#")) { continue; } processMeasure(linesContext, measureFile, lineNumber, line); } linesContext.save(); } catch (IOException e) { throw new IllegalStateException(e); } } }
public FileLinesContext fileLinesContextFor(File file) { return fileLinesContextFactory.createFor(inputFromIOFile(file)); }
public FileLinesContext fileLinesContextFor(File file) { return fileLinesContextFactory.createFor(inputFromIOFile(file)); }
public FileLinesContext fileLinesContextFor(File file) { return fileLinesContextFactory.createFor(inputFromIOFile(file)); }
public FileLinesContext fileLinesContextFor(File file) { return fileLinesContextFactory.createFor(resourceFromIOFile(file)); }
private void processFileMeasures(InputFile inputFile, SensorContext context) { File ioFile = inputFile.file(); File measureFile = new File(ioFile.getParentFile(), ioFile.getName() + MEASURES_EXTENSION); if (measureFile.exists()) { LOG.debug("Processing " + measureFile.getAbsolutePath()); try { FileLinesContext linesContext = contextFactory.createFor(inputFile); List<String> lines = FileUtils.readLines(measureFile, context.fileSystem().encoding().name()); int lineNumber = 0; for (String line : lines) { lineNumber++; if (StringUtils.isBlank(line) || line.startsWith("#")) { continue; } processMeasure(linesContext, measureFile, lineNumber, line); } linesContext.save(); } catch (IOException e) { throw new IllegalStateException(e); } } }
@Override public void visitFile(AstNode astNode) { File sonarFile = fileProvider.fromIOFile(getContext().getFile()); fileLinesContext = fileLinesContextFactory.createFor(sonarFile); }
private void saveLineLevelMeasures(InputFile inputFile, HtmlSourceCode htmlSourceCode) { FileLinesContext fileLinesContext = fileLinesContextFactory.createFor(inputFile); for (Integer line : htmlSourceCode.getDetailedLinesOfCode()) { fileLinesContext.setIntValue(CoreMetrics.NCLOC_DATA_KEY, line, 1); } fileLinesContext.save(); }
public static void saveLineLevelMeasures(InputFile inputFile, HtmlSourceCode htmlSourceCode, FileLinesContextFactory fileLinesContextFactory) { FileLinesContext fileLinesContext = fileLinesContextFactory.createFor(inputFile); final int lineContainsCode = 1; for (Integer line : htmlSourceCode.getDetailedLinesOfCode()) { fileLinesContext.setIntValue(CoreMetrics.NCLOC_DATA_KEY, line, lineContainsCode); } fileLinesContext.save(); }
private PerlSquidSensor sensor() { FileLinesContextFactory fileLinesContextFactory = mock(FileLinesContextFactory.class); FileLinesContext fileLinesContext = mock(FileLinesContext.class); when(fileLinesContextFactory.createFor(Mockito.any(InputFile.class))).thenReturn(fileLinesContext); return new PerlSquidSensor(); }
@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(); }
private void saveLineLevelMeasures(File sonarFile, WebSourceCode webSourceCode) { FileLinesContext fileLinesContext = fileLinesContextFactory.createFor(sonarFile); Set<Integer> linesOfCode = webSourceCode.getDetailedLinesOfCode(); Set<Integer> linesOfComments = webSourceCode.getDetailedLinesOfComments(); for (int line = 1; line <= webSourceCode.getMeasure(CoreMetrics.LINES).getIntValue(); 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(); }
@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(); }
@Override public void leaveFile(AstNode astNode) { FileLinesContext fileLinesContext = fileLinesContextFactory.createFor(File.create(pathResolver.relativePath(fileSystem.baseDir(), getContext().getFile().getAbsoluteFile()))); if (fileLinesContext != null) { int fileLength = getContext().peekSourceCode().getInt(EcmaScriptMetric.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(); } else { LOG.warn("Cannot save measures for DevCockpit for file {}. Unable to retrieve the associated sonar resource.", getContext().getFile().getName()); } linesOfCode.clear(); linesOfComments.clear(); }
@BeforeEach void setUp() throws IOException { workDir = Files.createTempDirectory("gotest"); workDir.toFile().deleteOnExit(); projectDir = Files.createTempDirectory("gotestProject"); projectDir.toFile().deleteOnExit(); sensorContext = SensorContextTester.create(workDir); sensorContext.fileSystem().setWorkDir(workDir); fileLinesContext = new FileLinesContextTester(); when(fileLinesContextFactory.createFor(any(InputFile.class))).thenReturn(fileLinesContext); }
@Override public void leaveFile(AstNode astNode) { InputFile inputFile = fileSystem.inputFile(fileSystem.predicates().is(getContext().getFile())); if (inputFile == null){ throw new IllegalStateException("InputFile is null, but it should not be."); } FileLinesContext fileLinesContext = fileLinesContextFactory.createFor(inputFile); int fileLength = getContext().peekSourceCode().getInt(PythonMetric.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(); }
private void saveMetrics(Metrics metrics, SensorContext context, InputFile inputFile) { saveMetric(context, inputFile, CoreMetrics.NCLOC, metrics.linesOfCode.size()); saveMetric(context, inputFile, CoreMetrics.COMMENT_LINES, metrics.commentLines.size()); saveMetric(context, inputFile, CoreMetrics.CLASSES, metrics.numberOfClasses); saveMetric(context, inputFile, CoreMetrics.FUNCTIONS, metrics.numberOfFunctions); saveMetric(context, inputFile, CoreMetrics.STATEMENTS, metrics.numberOfStatements); saveMetric(context, inputFile, CoreMetrics.COGNITIVE_COMPLEXITY, metrics.cognitiveComplexity); FileLinesContext linesContext = fileLinesContextFactory.createFor(inputFile); saveLinesMetrics(linesContext, metrics.linesOfCode, CoreMetrics.NCLOC_DATA_KEY); saveLinesMetrics(linesContext, metrics.commentLines, CoreMetrics.COMMENT_LINES_DATA_KEY); saveLinesMetrics(linesContext, metrics.executableLines, CoreMetrics.EXECUTABLE_LINES_DATA_KEY); linesContext.save(); }
private void saveMetrics(SensorContext sensorContext, SensorContextUtils.AnalysisResponse analysisResponse, InputFile inputFile) { saveMetric(sensorContext, inputFile, CoreMetrics.FUNCTIONS, analysisResponse.functions); saveMetric(sensorContext, inputFile, CoreMetrics.CLASSES, analysisResponse.classes); saveMetric(sensorContext, inputFile, CoreMetrics.STATEMENTS, analysisResponse.statements); saveMetric(sensorContext, inputFile, CoreMetrics.NCLOC, analysisResponse.ncloc.length); saveMetric(sensorContext, inputFile, CoreMetrics.COMMENT_LINES, analysisResponse.commentLines.length); saveMetric(sensorContext, inputFile, CoreMetrics.COMPLEXITY, analysisResponse.complexity); saveMetric(sensorContext, inputFile, CoreMetrics.COGNITIVE_COMPLEXITY, analysisResponse.cognitiveComplexity); noSonarFilter.noSonarInFile(inputFile, Arrays.stream(analysisResponse.nosonarLines).collect(Collectors.toSet())); FileLinesContext fileLinesContext = fileLinesContextFactory.createFor(inputFile); for (int line : analysisResponse.ncloc) { fileLinesContext.setIntValue(CoreMetrics.NCLOC_DATA_KEY, line, 1); } for (int line : analysisResponse.executableLines) { fileLinesContext.setIntValue(CoreMetrics.EXECUTABLE_LINES_DATA_KEY, line, 1); } fileLinesContext.save(); }
public static void analyse(SensorContext context, FileLinesContextFactory fileLinesContextFactory, XmlFile xmlFile) { LOG.debug("Count lines in {}", xmlFile.getInputFile().uri()); Set<Integer> linesOfCode = new HashSet<>(); Set<Integer> commentLines = new HashSet<>(); Document document = xmlFile.getDocument(); visitNode(document, linesOfCode, commentLines); xmlFile.getPrologElement().ifPresent(prologElement -> addLinesRange( linesOfCode, prologElement.getPrologStartLocation().getStartLine(), prologElement.getPrologEndLocation().getEndLine())); FileLinesContext fileLinesContext = fileLinesContextFactory.createFor(xmlFile.getInputFile()); linesOfCode.forEach(lineOfCode -> fileLinesContext.setIntValue(CoreMetrics.NCLOC_DATA_KEY, lineOfCode, 1)); fileLinesContext.save(); saveMeasure(context, xmlFile.getInputFile(), CoreMetrics.COMMENT_LINES, commentLines.size()); saveMeasure(context, xmlFile.getInputFile(), CoreMetrics.NCLOC, linesOfCode.size()); }
FileLinesContext fileLinesContext = fileLinesContextFactory.createFor(inputFile); for (int line : metricsVisitor.getExecutableLines()) { fileLinesContext.setIntValue(CoreMetrics.EXECUTABLE_LINES_DATA_KEY, line, 1);