use of com.kyj.fx.voeditor.visual.main.layout.CloseableParent in project Gargoyle by callakrsos.
the class JavaCodeAreaHelper method doPmd.
/**
* PMD 처리
* @작성자 : KYJ
* @작성일 : 2016. 10. 12.
*/
private void doPmd() {
PMDCheckedListComposite pmdCheckedListComposite = new PMDCheckedListComposite(null) {
@Override
public void run() {
simpleFilePmd(null);
}
@Override
protected void simpleFilePmd(File file) {
try {
GargoylePMDParameters params = new GargoylePMDParameters();
String sourceCode = codeArea.getText();
params.setSourceFileName("Java");
params.setSourceText(sourceCode);
// if (!FileUtil.isJavaFile(file)) {
// String fileExtension = FileUtil.getFileExtension(file);
// try {
// Field declaredField = PMDParameters.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), reportListenerPropertyProperty().get(), violationCountingListenerProperty().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));
}
}
};
pmdCheckedListComposite.run();
CloseableParent<BorderPane> closa = pmdCheckedListComposite;
Consumer<Stage> option = stage -> {
stage.setTitle("PMD Check.");
stage.initOwner(SharedMemory.getPrimaryStage());
stage.setWidth(1200d);
stage.setHeight(800d);
};
FxUtil.createStageAndShow(closa, option);
}
Aggregations