use of net.sourceforge.pmd.benchmark.TextReport in project Gargoyle by callakrsos.
the class PMDCheckedListComposite method simpleFilePmd.
/**
* 파일 1개를 대상으로 PMD 체크하기 위한 처리.
*
* @작성자 : KYJ
* @작성일 : 2016. 10. 13.
* @param file
*/
protected void simpleFilePmd(File file) {
try {
String sourceCode = Files.toString(this.sourceFile, Charset.forName("UTF-8"));
GargoylePMDParameters params = new GargoylePMDParameters();
params.setSourceFileName(file.getAbsolutePath());
params.setSourceText(sourceCode);
if (!FileUtil.isJavaFile(file)) {
String fileExtension = FileUtil.getFileExtension(file);
try {
Field declaredField = GargoylePMDParameters.class.getDeclaredField("language");
if (declaredField != null) {
declaredField.setAccessible(true);
declaredField.set(params, fileExtension);
}
} catch (Exception e) {
e.printStackTrace();
}
}
// transformParametersIntoConfiguration(params);
long start = System.nanoTime();
doPMD.doPMD(transformParametersIntoConfiguration(params), reportListenerProperty.get(), violationCountingListener.get());
long end = System.nanoTime();
Benchmarker.mark(Benchmark.TotalPMD, end - start, 0);
TextReport report = new TextReport();
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
report.generate(Benchmarker.values(), new PrintStream(out));
out.flush();
LOGGER.debug(out.toString("UTF-8"));
}
updateStatus(sourceCode);
} catch (IOException e) {
LOGGER.error(ValueUtil.toString(e));
}
}
Aggregations