|
|||||||||||||||||||
Source file | Conditionals | Statements | Methods | TOTAL | |||||||||||||||
TextPadRenderer.java | 100% | 100% | 100% | 100% |
|
1 | /** | |
2 | * BSD-style license; for more info see http://pmd.sourceforge.net/license.html | |
3 | */ | |
4 | package net.sourceforge.pmd.renderers; | |
5 | ||
6 | import net.sourceforge.pmd.IRuleViolation; | |
7 | import net.sourceforge.pmd.PMD; | |
8 | import net.sourceforge.pmd.Report; | |
9 | ||
10 | import java.io.IOException; | |
11 | import java.io.Writer; | |
12 | import java.util.Iterator; | |
13 | ||
14 | /** | |
15 | * <P>A Renderer for running PMD via a TextPad 'tool'. <a href="http://www.textpad.com">TextPad</a> is a text editor by Helios Software Solutions.</P> | |
16 | * <p/> | |
17 | * <P>Output lines are in the form:</P> | |
18 | * <p/> | |
19 | * <P><CODE>pathtojavafile(line#, NameOfRule): Specific rule violation message</CODE></P> | |
20 | * <p/> | |
21 | * <P>For example:</P> | |
22 | * <p/> | |
23 | * <P><CODE>D:\java\pmd\src\src\net\sourceforge\pmd\renderers\TextPadRenderer.java(24, AtLeastOneConstructor): Each class should declare at least one constructor | |
24 | * <br>D:\java\pmd\src\src\net\sourceforge\pmd\renderers\TextPadRenderer.java(26, VariableNamingConventionsRule): Variables should start with a lowercase character | |
25 | * <br>D:\java\pmd\src\src\net\sourceforge\pmd\renderers\TextPadRenderer.java(31, ShortVariable): Avoid variables with short names</CODE></P> | |
26 | * | |
27 | * @author Jeff Epstein, based upon <a href="EmacsRenderer.html">EmacsRenderer</a>, Tuesday, September 23, 2003 | |
28 | */ | |
29 | public class TextPadRenderer extends AbstractRenderer { | |
30 | 5 | public void render(Writer writer, Report report) throws IOException { |
31 | 5 | StringBuffer buf = new StringBuffer(); |
32 | 5 | Iterator i; |
33 | 5 | try { |
34 | 5 | i = report.iterator(); |
35 | } catch (NullPointerException npx) { | |
36 | 1 | throw new NullPointerException("ERROR in " + this.getClass().getName() + ".render: Parameter report is null."); |
37 | } | |
38 | 4 | while (i.hasNext()) { |
39 | 3 | IRuleViolation rv = (IRuleViolation) i.next(); |
40 | 3 | buf.setLength(0); |
41 | //Filename | |
42 | 3 | buf.append(PMD.EOL).append(rv.getFilename() + "("); |
43 | //Line number | |
44 | 3 | buf.append(Integer.toString(rv.getBeginLine())).append(", "); |
45 | //Name of violated rule | |
46 | 3 | buf.append(rv.getRule().getName()).append("): "); |
47 | //Specific violation message | |
48 | 3 | buf.append(rv.getDescription()); |
49 | 3 | writer.write(buf.toString()); |
50 | } | |
51 | } | |
52 | } |
|