View Javadoc

    1   package net.sourceforge.pmd.renderers;
    2
    3   import net.sourceforge.pmd.PMD;
    4   import net.sourceforge.pmd.Report;
    5
    6   import java.io.IOException;
    7   import java.io.Writer;
    8   import java.util.Iterator;
    9   import java.util.Map;
    10
    11  public class SummaryHTMLRenderer extends AbstractRenderer {
    12      private String linePrefix,linkPrefix;
    13      public SummaryHTMLRenderer(String linkPrefix, String linePrefix) {
    14          this.linePrefix = linePrefix;
    15          this.linkPrefix = linkPrefix;
    16      }
    17
    18      public SummaryHTMLRenderer(){
    19          this(null,null);
    20      }
    21
    22      public void render(Writer writer, Report report) throws IOException {
    23          writer.write("<html><head><title>PMD</title></head><body>" + PMD.EOL);
    24          renderSummary(writer, report);
    25          writer.write("<h2><center>Detail</h2></center>");
    26          writer.write("<table align=\"center\" cellspacing=\"0\" cellpadding=\"3\"><tr>" + PMD.EOL + "<th>#</th><th>File</th><th>Line</th><th>Problem</th></tr>" + PMD.EOL);
    27          new HTMLRenderer(linkPrefix,linePrefix).renderBody(writer, report);
    28          writer.write("</table></body></html>");
    29      }
    30
    31      public void renderSummary(Writer writer, Report report) throws IOException {
    32          StringBuffer buf = new StringBuffer();
    33          buf.append("<h2><center>Summary</h2></center>");
    34          buf.append("<table align=\"center\" cellspacing=\"0\" cellpadding=\"3\">");
    35          buf.append("<th>Rule name</th>");
    36          buf.append("<th>Number of violations</th>");
    37          writer.write(buf.toString());
    38          Map summary = report.getSummary();
    39          for (Iterator i = summary.entrySet().iterator(); i.hasNext();) {
    40              Map.Entry entry = (Map.Entry) i.next();
    41              String ruleName = (String) entry.getKey();
    42              buf.setLength(0);
    43              buf.append("<tr>");
    44              buf.append("<td>" + ruleName + "</td>");
    45              buf.append("<td align=center>" + ((Integer) entry.getValue()).intValue() + "</td>");
    46              buf.append("</tr>");
    47              writer.write(buf.toString());
    48          }
    49          writer.write("</table>");
    50      }
    51  }