View Javadoc
1 package net.sourceforge.pmd.swingui; 2 3 import net.sourceforge.pmd.Report; 4 import net.sourceforge.pmd.Rule; 5 import net.sourceforge.pmd.RuleViolation; 6 7 import java.io.StringWriter; 8 import java.util.Iterator; 9 10 /*** 11 * 12 * Converts the violations list into a text string for viewing. 13 * 14 * @author Donald A. Leckie 15 * @since August 17, 2002 16 * @version $Revision: 1.9 $, $Date: 2003/03/14 19:04:12 $ 17 */ 18 class TextRenderer { 19 20 private boolean m_reportNoViolations; 21 private StringWriter m_writer; 22 23 /*** 24 ******************************************************************************* 25 * 26 */ 27 protected void beginRendering(boolean reportNoViolations) { 28 m_reportNoViolations = reportNoViolations; 29 m_writer = new StringWriter(25000); 30 } 31 32 /*** 33 ******************************************************************************* 34 * 35 * @return Results text. 36 */ 37 protected String endRendering() { 38 return m_writer.toString(); 39 } 40 41 /*** 42 ******************************************************************************* 43 * 44 * @param report 45 */ 46 public void render(String fileName, Report report) { 47 Iterator violations = report.iterator(); 48 49 if (violations.hasNext() == false) { 50 if (m_reportNoViolations) { 51 m_writer.write("Source File: "); 52 m_writer.write(fileName); 53 m_writer.write('\n'); 54 m_writer.write("\nNo rule violations detected."); 55 } 56 57 return; 58 } 59 60 m_writer.write("Source File: "); 61 m_writer.write(fileName); 62 m_writer.write('\n'); 63 64 while (violations.hasNext()) { 65 RuleViolation ruleViolation = (RuleViolation) violations.next(); 66 Rule rule = ruleViolation.getRule(); 67 68 // 69 // Line Number 70 // 71 m_writer.write('\n'); 72 m_writer.write("Line: "); 73 m_writer.write(ruleViolation.getLine()); 74 m_writer.write('\n'); 75 76 // 77 // Rule Message 78 // 79 String ruleMessage = ruleViolation.getDescription(); 80 81 if (ruleMessage == null) { 82 ruleMessage = ""; 83 } else { 84 ruleMessage = ruleMessage.replace('\n', ' ').trim(); 85 } 86 87 m_writer.write("Rule: "); 88 m_writer.write(ruleMessage); 89 m_writer.write('\n'); 90 91 // 92 // Rule Priority 93 // 94 m_writer.write("Rule Priority: "); 95 m_writer.write(rule.getPriorityName()); 96 m_writer.write('\n'); 97 98 // 99 // Rule Description 100 // 101 String description = rule.getDescription(); 102 103 if (description == null) { 104 description = ""; 105 } else { 106 description = description.replace('\n', ' ').trim(); 107 } 108 109 m_writer.write("Description: "); 110 m_writer.write(description); 111 m_writer.write('\n'); 112 113 // 114 // Rule Example 115 // 116 String example = rule.getExample(); 117 118 if ((example != null) && (example.length() > 0)) { 119 m_writer.write("Example: "); 120 m_writer.write(example); 121 m_writer.write('\n'); 122 } 123 } 124 125 // 126 // Space separation between rules. 127 // 128 m_writer.write("\n\n\n"); 129 } 130 }

This page was automatically generated by Maven