01: package org.incava.analysis;
02:
03: import java.io.*;
04: import java.util.*;
05: import net.sourceforge.pmd.ast.Token;
06:
07: /**
08: * Reports errors in a single line, AKA the format expected by Emacs (!c).
09: */
10: public class TerseReport extends Report {
11: /**
12: * Creates a terse report for the given writer.
13: *
14: * @param writer The writer associated with this report.
15: */
16: public TerseReport(Writer writer) {
17: super (writer);
18: }
19:
20: /**
21: * Creates a terse report for the given output stream.
22: *
23: * @param os The output stream associated with this report.
24: */
25: public TerseReport(OutputStream os) {
26: super (os);
27: }
28:
29: /**
30: * Creates a terse report for the given writer, and a string source.
31: *
32: * @param writer The writer associated with this report.
33: * @param source The source code to which this report applies.
34: */
35: public TerseReport(Writer writer, String source) {
36: super (writer, source);
37: }
38:
39: /**
40: * Creates a terse report for the given writer, and a file source.
41: *
42: * @param writer The writer associated with this report.
43: * @param file The file, containing source code, to which this report applies.
44: */
45: public TerseReport(Writer writer, File file) {
46: super (writer, file);
47: }
48:
49: /**
50: * Creates a terse report for the given output stream, and string source.
51: *
52: * @param os The output stream associated with this report.
53: * @param source The source code to which this report applies.
54: */
55: public TerseReport(OutputStream os, String source) {
56: super (os, source);
57: }
58:
59: /**
60: * Creates a terse report for the given output stream, and file.
61: *
62: * @param os The output stream associated with this report.
63: * @param file The file, containing source code, to which this report applies.
64: */
65: public TerseReport(OutputStream os, File file) {
66: super (os, file);
67: }
68:
69: /**
70: * Returns the given violation, in single-line format. For example:
71: *
72: * <pre>
73: * TerseReport.java:77:22:77:29: Undocumented protected method
74: * </pre>
75: *
76: * @param violation The violation to represent as a single-line violation.
77: * @return The violation, in single-line format.
78: */
79: protected String toString(Violation violation) {
80: return (fileName + ":" + violation.getBeginLine() + ":"
81: + violation.getBeginColumn() + ":"
82: + violation.getEndLine() + ":"
83: + violation.getEndColumn() + ": "
84: + violation.getMessage() + System
85: .getProperty("line.separator"));
86: }
87:
88: }
|