/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.processor;
import java.util.ArrayList;
import java.util.List;
import net.sourceforge.pmd.PMDConfiguration;
import net.sourceforge.pmd.Report;
import net.sourceforge.pmd.renderers.Renderer;
/**
* @author Romain Pelisse <belaran@gmail.com>
*
*/
public final class MonoThreadProcessor extends AbstractPMDProcessor {
private final List<Report> reports = new ArrayList<>();
public MonoThreadProcessor(PMDConfiguration configuration) {
super(configuration);
}
@Override
protected void runAnalysis(PmdRunnable runnable) {
// single thread execution, run analysis on same thread
reports.add(runnable.call());
}
@Override
protected void collectReports(List<Renderer> renderers) {
for (Report r : reports) {
super.renderReports(renderers, r);
}
// Since this thread may run PMD again, clean up the runnable
PmdRunnable.reset();
}
}