Remove deprecated methods from Renderer.
Also split AbstractRenderer off into AbstractAccumulatingRenderer to make the distinction with the AbstractIncrementalRenderer explicit. JavaDoc updated accordingly. git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@6576 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
pmd
etc
regress/test/net/sourceforge/pmd
src/net/sourceforge/pmd
ant
renderers
AbstractAccumulatingRenderer.javaAbstractIncrementingRenderer.javaAbstractRenderer.javaCSVRenderer.javaEmacsRenderer.javaHTMLRenderer.javaIDEAJRenderer.javaRenderer.javaSummaryHTMLRenderer.javaTextColorRenderer.javaTextPadRenderer.javaTextRenderer.javaVBHTMLRenderer.javaXMLRenderer.javaYAHTMLRenderer.java
@ -322,9 +322,12 @@ The following is relatively complete list of the major changes (this may not be
|
||||
Added - Renderer.setDescription(String)
|
||||
Added - Renderer.getPropertyDefinitions()
|
||||
Added - Renderer.isShowSuppressedViolations()
|
||||
Added - AbstractAccumulatingRenderer
|
||||
Removed - Renderer.render(Report)
|
||||
Removed - Renderer.render(Report, Writer)
|
||||
Renamed - Renderer.showSuppressedViolations(boolean) to Renderer.setShowSuppressedViolations(boolean)
|
||||
Renamed - PapariTextRenderer to TextColorRenderer
|
||||
Renamed - OntheFlyRenderer to AbstractIncrementalRenderer
|
||||
Renamed - OntheFlyRenderer to AbstractIncrementingRenderer
|
||||
|
||||
PMD command line changes:
|
||||
|
||||
|
@ -6,6 +6,8 @@ package test.net.sourceforge.pmd;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
@ -152,7 +154,7 @@ public class ReportTest extends RuleTst implements ReportListener {
|
||||
|
||||
// Files are grouped together now.
|
||||
@Test
|
||||
public void testSortedReport_File() {
|
||||
public void testSortedReport_File() throws IOException {
|
||||
Report r = new Report();
|
||||
RuleContext ctx = new RuleContext();
|
||||
ctx.setSourceCodeFilename("foo");
|
||||
@ -162,12 +164,12 @@ public class ReportTest extends RuleTst implements ReportListener {
|
||||
JavaNode s1 = getNode(10, 5, ctx.getSourceCodeFilename());
|
||||
r.addRuleViolation(new JavaRuleViolation(new MockRule("name", "desc", "msg", "rulesetname"), ctx, s1));
|
||||
Renderer rend = new XMLRenderer(new Properties());
|
||||
String result = rend.render(r);
|
||||
String result = render(rend, r);
|
||||
assertTrue("sort order wrong", result.indexOf("bar") < result.indexOf("foo"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSortedReport_Line() {
|
||||
public void testSortedReport_Line() throws IOException {
|
||||
Report r = new Report();
|
||||
RuleContext ctx = new RuleContext();
|
||||
ctx.setSourceCodeFilename("foo1");
|
||||
@ -177,7 +179,7 @@ public class ReportTest extends RuleTst implements ReportListener {
|
||||
JavaNode s1 = getNode(20, 5, ctx.getSourceCodeFilename());
|
||||
r.addRuleViolation(new JavaRuleViolation(new MockRule("rule1", "rule1", "msg", "rulesetname"), ctx, s1));
|
||||
Renderer rend = new XMLRenderer(new Properties());
|
||||
String result = rend.render(r);
|
||||
String result = render(rend, r);
|
||||
assertTrue("sort order wrong", result.indexOf("rule2") < result.indexOf("rule1"));
|
||||
}
|
||||
|
||||
@ -229,7 +231,16 @@ public class ReportTest extends RuleTst implements ReportListener {
|
||||
s.testingOnly__setBeginColumn(5);
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
public static String render(Renderer renderer, Report report) throws IOException {
|
||||
StringWriter writer = new StringWriter();
|
||||
renderer.setWriter(writer);
|
||||
renderer.start();
|
||||
renderer.renderFileReport(null);
|
||||
renderer.end();
|
||||
return writer.toString();
|
||||
}
|
||||
|
||||
public static junit.framework.Test suite() {
|
||||
return new JUnit4TestAdapter(ReportTest.class);
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ import net.sourceforge.pmd.renderers.Renderer;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import test.net.sourceforge.pmd.ReportTest;
|
||||
import test.net.sourceforge.pmd.testframework.RuleTst;
|
||||
|
||||
public abstract class AbstractRendererTst extends RuleTst {
|
||||
@ -52,22 +53,22 @@ public abstract class AbstractRendererTst extends RuleTst {
|
||||
}
|
||||
|
||||
@Test(expected = NullPointerException.class)
|
||||
public void testNullPassedIn() {
|
||||
getRenderer().render(null);
|
||||
public void testNullPassedIn() throws Throwable {
|
||||
ReportTest.render(getRenderer(), null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRenderer() throws Throwable {
|
||||
Report rep = new Report();
|
||||
runTestFromString(TEST1, new FooRule(), rep);
|
||||
String actual = getRenderer().render(rep);
|
||||
String actual = ReportTest.render(getRenderer(), rep);
|
||||
assertEquals(getExpected(), actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRendererEmpty() throws Throwable {
|
||||
Report rep = new Report();
|
||||
String actual = getRenderer().render(rep);
|
||||
String actual = ReportTest.render(getRenderer(), rep);
|
||||
assertEquals(getExpectedEmpty(), actual);
|
||||
}
|
||||
|
||||
@ -75,7 +76,7 @@ public abstract class AbstractRendererTst extends RuleTst {
|
||||
public void testRendererMultiple() throws Throwable {
|
||||
Report rep = new Report();
|
||||
runTestFromString(TEST1, new FooRule2(), rep);
|
||||
String actual = getRenderer().render(rep);
|
||||
String actual = ReportTest.render(getRenderer(), rep);
|
||||
assertEquals(getExpectedMultiple(), actual);
|
||||
}
|
||||
|
||||
@ -84,7 +85,7 @@ public abstract class AbstractRendererTst extends RuleTst {
|
||||
Report rep = new Report();
|
||||
Report.ProcessingError err = new Report.ProcessingError("Error", "file");
|
||||
rep.addError(err);
|
||||
String actual = getRenderer().render(rep);
|
||||
String actual = ReportTest.render(getRenderer(), rep);
|
||||
assertEquals(getExpectedError(err), actual);
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,7 @@ import org.w3c.dom.Element;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import test.net.sourceforge.pmd.ReportTest;
|
||||
import test.net.sourceforge.pmd.testframework.RuleTst;
|
||||
|
||||
public class XMLRendererTest extends RuleTst {
|
||||
@ -119,7 +120,8 @@ public class XMLRendererTest extends RuleTst {
|
||||
}
|
||||
|
||||
private Element parseRootElement(Report rpt) throws SAXException, IOException, ParserConfigurationException {
|
||||
return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(new XMLRenderer(new Properties()).render(rpt)))).getDocumentElement();
|
||||
String result = ReportTest.render(new XMLRenderer(new Properties()), rpt);
|
||||
return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(result))).getDocumentElement();
|
||||
}
|
||||
|
||||
public static junit.framework.Test suite() {
|
||||
|
@ -7,7 +7,6 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
import java.io.Writer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
@ -255,15 +254,12 @@ public class PMDTask extends Task {
|
||||
final String inputPath = ds.getBasedir().getPath();
|
||||
|
||||
Renderer logRenderer = new AbstractRenderer("log", "Logging renderer", null) {
|
||||
@Override
|
||||
public void start() {}
|
||||
|
||||
@Override
|
||||
public void startFileAnalysis(DataSource dataSource) {
|
||||
log("Processing file " + dataSource.getNiceFileName(false, inputPath), Project.MSG_VERBOSE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderFileReport(Report r) {
|
||||
int size = r.size();
|
||||
if (size > 0) {
|
||||
@ -271,10 +267,7 @@ public class PMDTask extends Task {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void end() {}
|
||||
|
||||
public void render(Writer writer, Report r) {}
|
||||
};
|
||||
List<Renderer> renderers = new LinkedList<Renderer>();
|
||||
renderers.add(logRenderer);
|
||||
|
@ -0,0 +1,61 @@
|
||||
/**
|
||||
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
||||
*/
|
||||
package net.sourceforge.pmd.renderers;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
|
||||
import net.sourceforge.pmd.Report;
|
||||
import net.sourceforge.pmd.util.datasource.DataSource;
|
||||
|
||||
/**
|
||||
* Abstract base class for {@link Renderer} implementations which only produce
|
||||
* output once all source files are processed. Such {@link Renderer}s use
|
||||
* working memory proportional to the number of violations found, which can
|
||||
* be quite large in some scenarios. Consider using
|
||||
* {@link AbstractIncrementingRenderer} which can use significantly less memory.
|
||||
*
|
||||
* Subclasses should implement the {@link #end()} method to output the
|
||||
* {@link #report}.
|
||||
*
|
||||
* @see AbstractIncrementingRenderer
|
||||
*/
|
||||
public abstract class AbstractAccumulatingRenderer extends AbstractRenderer {
|
||||
|
||||
/**
|
||||
* The accumulated Report.
|
||||
*/
|
||||
protected Report report;
|
||||
|
||||
public AbstractAccumulatingRenderer(String name, String description, Properties properties) {
|
||||
super(name, description, properties);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void start() throws IOException {
|
||||
report = new Report();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void startFileAnalysis(DataSource dataSource) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void renderFileReport(Report report) throws IOException {
|
||||
this.report.merge(report);
|
||||
}
|
||||
|
||||
/**
|
||||
* Subclasses should output the {@link #report}.
|
||||
*
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public abstract void end() throws IOException;
|
||||
}
|
@ -4,7 +4,6 @@
|
||||
package net.sourceforge.pmd.renderers;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
@ -12,6 +11,7 @@ import java.util.Properties;
|
||||
|
||||
import net.sourceforge.pmd.Report;
|
||||
import net.sourceforge.pmd.RuleViolation;
|
||||
import net.sourceforge.pmd.util.datasource.DataSource;
|
||||
|
||||
/**
|
||||
* Abstract base class for {@link Renderer} implementations which can produce
|
||||
@ -24,7 +24,7 @@ import net.sourceforge.pmd.RuleViolation;
|
||||
* Only processing errors and suppressed violations are accumulated across all
|
||||
* files. These are intended to be processed in the {@link #end()} method.
|
||||
*/
|
||||
public abstract class AbstractIncrementalRenderer extends AbstractRenderer {
|
||||
public abstract class AbstractIncrementingRenderer extends AbstractRenderer {
|
||||
|
||||
/**
|
||||
* Accumulated processing errors.
|
||||
@ -36,24 +36,25 @@ public abstract class AbstractIncrementalRenderer extends AbstractRenderer {
|
||||
*/
|
||||
protected List<Report.SuppressedViolation> suppressed = new LinkedList<Report.SuppressedViolation>();
|
||||
|
||||
public AbstractIncrementalRenderer(String name, String description, Properties properties) {
|
||||
public AbstractIncrementingRenderer(String name, String description, Properties properties) {
|
||||
super(name, description, properties);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void render(Writer writer, Report report) throws IOException {
|
||||
setWriter(writer);
|
||||
start();
|
||||
renderFileReport(report);
|
||||
end();
|
||||
public void start() throws IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void startFileAnalysis(DataSource dataSource) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void renderFileReport(Report report) throws IOException {
|
||||
Iterator<RuleViolation> violations = report.iterator();
|
||||
if (violations.hasNext()) {
|
||||
@ -70,13 +71,6 @@ public abstract class AbstractIncrementalRenderer extends AbstractRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void start() throws IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* Render a series of {@link RuleViolation}s.
|
||||
* @param violations The iterator of violations to render.
|
||||
@ -87,7 +81,6 @@ public abstract class AbstractIncrementalRenderer extends AbstractRenderer {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void end() throws IOException {
|
||||
}
|
||||
}
|
@ -3,16 +3,11 @@
|
||||
*/
|
||||
package net.sourceforge.pmd.renderers;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
import java.io.Writer;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import net.sourceforge.pmd.Report;
|
||||
import net.sourceforge.pmd.util.datasource.DataSource;
|
||||
|
||||
/**
|
||||
* Abstract base class for {@link Renderer} implementations.
|
||||
*/
|
||||
@ -23,10 +18,9 @@ public abstract class AbstractRenderer implements Renderer {
|
||||
protected Map<String, String> propertyDefinitions = new LinkedHashMap<String, String>();
|
||||
protected Properties properties;
|
||||
protected boolean showSuppressedViolations = true;
|
||||
private Writer writer;
|
||||
private Report mainReport;
|
||||
protected Writer writer;
|
||||
|
||||
public AbstractRenderer(String name, String description, java.util.Properties properties) {
|
||||
public AbstractRenderer(String name, String description, Properties properties) {
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.properties = properties;
|
||||
@ -90,19 +84,6 @@ public abstract class AbstractRenderer implements Renderer {
|
||||
this.showSuppressedViolations = showSuppressedViolations;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String render(Report report) {
|
||||
StringWriter w = new StringWriter();
|
||||
try {
|
||||
render(w, report);
|
||||
} catch (IOException e) {
|
||||
throw new Error("StringWriter doesn't throw IOException", e);
|
||||
}
|
||||
return w.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@ -116,37 +97,4 @@ public abstract class AbstractRenderer implements Renderer {
|
||||
public Writer getWriter() {
|
||||
return writer;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void start() throws IOException {
|
||||
// default (and backward compatible) behavior is to build a full report.
|
||||
// Optimized rendering is done in AbstractIncrementalRenderer and descendants
|
||||
mainReport = new Report();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void startFileAnalysis(DataSource dataSource) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void renderFileReport(Report report) throws IOException {
|
||||
// default (and backward compatible) behavior is to build a full report.
|
||||
// Optimized rendering is done in AbstractIncrementalRenderer and descendants
|
||||
mainReport.merge(report);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void end() throws IOException {
|
||||
// default (and backward compatible) behavior is to build a full report.
|
||||
// Optimized rendering is done in AbstractIncrementalRenderer and descendants
|
||||
render(writer, mainReport);
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ import net.sourceforge.pmd.util.StringUtil;
|
||||
/**
|
||||
* Renderer to comma separated format.
|
||||
*/
|
||||
public class CSVRenderer extends AbstractIncrementalRenderer {
|
||||
public class CSVRenderer extends AbstractIncrementingRenderer {
|
||||
|
||||
public static final String NAME = "csv";
|
||||
|
||||
|
@ -13,7 +13,7 @@ import net.sourceforge.pmd.RuleViolation;
|
||||
/**
|
||||
* Renderer to GNU Emacs parsable format.
|
||||
*/
|
||||
public class EmacsRenderer extends AbstractIncrementalRenderer {
|
||||
public class EmacsRenderer extends AbstractIncrementingRenderer {
|
||||
|
||||
public static final String NAME = "emacs";
|
||||
|
||||
|
@ -17,7 +17,7 @@ import net.sourceforge.pmd.util.StringUtil;
|
||||
/**
|
||||
* Renderer to basic HTML format.
|
||||
*/
|
||||
public class HTMLRenderer extends AbstractIncrementalRenderer {
|
||||
public class HTMLRenderer extends AbstractIncrementingRenderer {
|
||||
|
||||
public static final String NAME = "html";
|
||||
|
||||
|
@ -17,7 +17,7 @@ import net.sourceforge.pmd.RuleViolation;
|
||||
/**
|
||||
* Renderer for IntelliJ IDEA integration.
|
||||
*/
|
||||
public class IDEAJRenderer extends AbstractIncrementalRenderer {
|
||||
public class IDEAJRenderer extends AbstractIncrementingRenderer {
|
||||
|
||||
public static final String NAME = "ideaj";
|
||||
|
||||
|
@ -76,29 +76,6 @@ public interface Renderer {
|
||||
*/
|
||||
void setShowSuppressedViolations(boolean showSuppressedViolations);
|
||||
|
||||
/**
|
||||
*
|
||||
* @deprecated This method consumes too much memory.
|
||||
* Use the render method with the Writer argument instead.
|
||||
*
|
||||
* @param report Report
|
||||
* @return String
|
||||
*/
|
||||
// TODO Remove this
|
||||
String render(Report report);
|
||||
|
||||
/**
|
||||
*
|
||||
* @deprecated This method consumes too much memory.
|
||||
* Use the start, renderFileReport and end methods instead.
|
||||
*
|
||||
* @param writer Writer
|
||||
* @param report Report
|
||||
* @throws IOException
|
||||
*/
|
||||
// TODO Remove this
|
||||
void render(Writer writer, Report report) throws IOException;
|
||||
|
||||
/**
|
||||
* Get the Writer for the Renderer.
|
||||
* @return The Writer.
|
||||
|
@ -4,17 +4,15 @@
|
||||
package net.sourceforge.pmd.renderers;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import net.sourceforge.pmd.PMD;
|
||||
import net.sourceforge.pmd.Report;
|
||||
|
||||
/**
|
||||
* Renderer to a summarized HTML format.
|
||||
*/
|
||||
public class SummaryHTMLRenderer extends AbstractRenderer {
|
||||
public class SummaryHTMLRenderer extends AbstractAccumulatingRenderer {
|
||||
|
||||
public static final String NAME = "summaryhtml";
|
||||
|
||||
@ -32,9 +30,10 @@ public class SummaryHTMLRenderer extends AbstractRenderer {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void render(Writer writer, Report report) throws IOException {
|
||||
@Override
|
||||
public void end() throws IOException {
|
||||
writer.write("<html><head><title>PMD</title></head><body>" + PMD.EOL);
|
||||
renderSummary(writer, report);
|
||||
renderSummary();
|
||||
writer.write("<h2><center>Detail</h2></center>");
|
||||
writer.write("<table align=\"center\" cellspacing=\"0\" cellpadding=\"3\"><tr>" + PMD.EOL);
|
||||
new HTMLRenderer(properties).renderBody(writer, report);
|
||||
@ -44,11 +43,9 @@ public class SummaryHTMLRenderer extends AbstractRenderer {
|
||||
/**
|
||||
* Write a Summary HTML table.
|
||||
*
|
||||
* @param writer Writer to write to.
|
||||
* @param report Report to write.
|
||||
* @throws IOException
|
||||
*/
|
||||
public void renderSummary(Writer writer, Report report) throws IOException {
|
||||
public void renderSummary() throws IOException {
|
||||
StringBuffer buf = new StringBuffer(500);
|
||||
buf.append("<h2><center>Summary</h2></center>");
|
||||
buf.append("<table align=\"center\" cellspacing=\"0\" cellpadding=\"3\">");
|
||||
|
@ -9,7 +9,6 @@ import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.Writer;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
@ -48,7 +47,7 @@ import net.sourceforge.pmd.RuleViolation;
|
||||
* colorization is atm only supported under *nix terminals accepting ansi escape
|
||||
* sequences, such as xterm, rxvt et cetera.</p>
|
||||
*/
|
||||
public class TextColorRenderer extends AbstractRenderer {
|
||||
public class TextColorRenderer extends AbstractAccumulatingRenderer {
|
||||
|
||||
public static final String NAME = "textcolor";
|
||||
|
||||
@ -97,7 +96,8 @@ public class TextColorRenderer extends AbstractRenderer {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void render(Writer writer, Report report) throws IOException {
|
||||
@Override
|
||||
public void end() throws IOException {
|
||||
StringBuffer buf = new StringBuffer(500);
|
||||
buf.append(PMD.EOL);
|
||||
initializeColorsIfSupported();
|
||||
|
@ -26,7 +26,7 @@ import net.sourceforge.pmd.RuleViolation;
|
||||
*
|
||||
* @author Jeff Epstein, based upon <a href="EmacsRenderer.html">EmacsRenderer</a>, Tuesday, September 23, 2003
|
||||
*/
|
||||
public class TextPadRenderer extends AbstractIncrementalRenderer {
|
||||
public class TextPadRenderer extends AbstractIncrementingRenderer {
|
||||
|
||||
public static final String NAME = "textpad";
|
||||
|
||||
|
@ -15,12 +15,10 @@ import net.sourceforge.pmd.RuleViolation;
|
||||
/**
|
||||
* Renderer to simple text format.
|
||||
*/
|
||||
public class TextRenderer extends AbstractIncrementalRenderer {
|
||||
public class TextRenderer extends AbstractIncrementingRenderer {
|
||||
|
||||
public static final String NAME = "text";
|
||||
|
||||
private boolean empty;
|
||||
|
||||
public TextRenderer(Properties properties) {
|
||||
super(NAME, "Text format.", properties);
|
||||
}
|
||||
@ -30,7 +28,6 @@ public class TextRenderer extends AbstractIncrementalRenderer {
|
||||
*/
|
||||
@Override
|
||||
public void start() throws IOException {
|
||||
empty = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -41,7 +38,6 @@ public class TextRenderer extends AbstractIncrementalRenderer {
|
||||
Writer writer = getWriter();
|
||||
StringBuffer buf = new StringBuffer();
|
||||
|
||||
empty = !violations.hasNext();
|
||||
while (violations.hasNext()) {
|
||||
buf.setLength(0);
|
||||
RuleViolation rv = violations.next();
|
||||
@ -60,7 +56,6 @@ public class TextRenderer extends AbstractIncrementalRenderer {
|
||||
Writer writer = getWriter();
|
||||
StringBuffer buf = new StringBuffer(500);
|
||||
if (!errors.isEmpty()) {
|
||||
empty = false;
|
||||
|
||||
for (Report.ProcessingError error : errors) {
|
||||
buf.setLength(0);
|
||||
|
@ -16,7 +16,7 @@ import net.sourceforge.pmd.RuleViolation;
|
||||
* Renderer to another HTML format.
|
||||
* @author Vladimir
|
||||
*/
|
||||
public class VBHTMLRenderer extends AbstractIncrementalRenderer {
|
||||
public class VBHTMLRenderer extends AbstractIncrementingRenderer {
|
||||
|
||||
public static final String NAME = "vbhtml";
|
||||
|
||||
|
@ -18,7 +18,7 @@ import net.sourceforge.pmd.util.StringUtil;
|
||||
/**
|
||||
* Renderer to XML format.
|
||||
*/
|
||||
public class XMLRenderer extends AbstractIncrementalRenderer {
|
||||
public class XMLRenderer extends AbstractIncrementingRenderer {
|
||||
|
||||
public static final String NAME = "xml";
|
||||
|
||||
|
@ -4,17 +4,15 @@
|
||||
package net.sourceforge.pmd.renderers;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.util.Properties;
|
||||
|
||||
import net.sourceforge.pmd.Report;
|
||||
import net.sourceforge.pmd.lang.dfa.report.ReportHTMLPrintVisitor;
|
||||
import net.sourceforge.pmd.lang.dfa.report.ReportTree;
|
||||
|
||||
/**
|
||||
* Renderer to another HTML format.
|
||||
*/
|
||||
public class YAHTMLRenderer extends AbstractRenderer {
|
||||
public class YAHTMLRenderer extends AbstractAccumulatingRenderer {
|
||||
|
||||
public static final String NAME = "yahtml";
|
||||
|
||||
@ -33,7 +31,8 @@ public class YAHTMLRenderer extends AbstractRenderer {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void render(Writer writer, Report report) throws IOException {
|
||||
@Override
|
||||
public void end() throws IOException {
|
||||
ReportTree tree = report.getViolationTree();
|
||||
tree.getRootNode().accept(new ReportHTMLPrintVisitor(outputDir == null ? ".." : outputDir));
|
||||
writer.write("<h3 align=\"center\">The HTML files are located "
|
||||
|
Reference in New Issue
Block a user