@SuppressWarnings({"unchecked", "rawtypes"})
private void parseIncludeFile(SensorContext context, InputFile file, RefactorSession session) {
long startTime = System.currentTimeMillis();
ParseUnit lexUnit = null;
try {
lexUnit = new ParseUnit(InputFileUtils.getInputStream(file),
InputFileUtils.getRelativePath(file, context.fileSystem()), session);
lexUnit.lexAndGenerateMetrics();
} catch (UncheckedIOException caught) {
numFailures++;
if (caught.getCause() instanceof XCodedFileException) {
LOG.error("Unable to generate file metrics for xcode'd file '{}", file);
} else {
LOG.error("Unable to generate file metrics for file '" + file + "'", caught);
}
return;
} catch (ProparseRuntimeException caught) {
LOG.error("Unable to generate file metrics for file '" + file + "'", caught);
return;
}
updateParseTime(System.currentTimeMillis() - startTime);
if (lexUnit.getMetrics() != null) {
context.newMeasure().on(file).forMetric((Metric) CoreMetrics.NCLOC).withValue(
lexUnit.getMetrics().getLoc()).save();
ncLocs += lexUnit.getMetrics().getLoc();
context.newMeasure().on(file).forMetric((Metric) CoreMetrics.COMMENT_LINES).withValue(
lexUnit.getMetrics().getComments()).save();
}
}