1 /**
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package net.sourceforge.pmd;
5
6 /**
7 * A RuleViolation is created by a Rule when it identifies a violation of the
8 * Rule constraints.
9 *
10 * @see Rule
11 */
12 public interface RuleViolation {
13
14 /**
15 * Get the Rule which identified this violation.
16 * @return The identifying Rule.
17 */
18 Rule getRule();
19
20 /**
21 * Get the description of this violation.
22 *
23 * @return The description.
24 */
25 String getDescription();
26
27 /**
28 * Indicates whether this violation has been suppressed.
29 * @return <code>true</code> if this violation is suppressed, <code>false</code> otherwise.
30 */
31 boolean isSuppressed();
32
33 /**
34 * Get the source file name in which this violation was identified.
35 *
36 * @return The source file name.
37 */
38 String getFilename();
39
40 /**
41 * Get the begin line number in the source file in which this violation was
42 * identified.
43 *
44 * @return Begin line number.
45 */
46 int getBeginLine();
47
48 /**
49 * Get the column number of the begin line in the source file
50 * in which this violation was identified.
51 *
52 * @return Begin column number.
53 */
54 int getBeginColumn();
55
56 /**
57 * Get the end line number in the source file in which this violation was
58 * identified.
59 *
60 * @return End line number.
61 */
62 int getEndLine();
63
64 /**
65 * Get the column number of the end line in the source file
66 * in which this violation was identified.
67 *
68 * @return End column number.
69 */
70 int getEndColumn();
71
72 /**
73 * Get the package name of the Class in which this violation was identified.
74 *
75 * @return The package name.
76 */
77 // TODO Isn't this Java specific?
78 String getPackageName();
79
80 /**
81 * Get the name of the Class in which this violation was identified.
82 *
83 * @return The Class name.
84 */
85 // TODO Isn't this Java specific?
86 String getClassName();
87
88 /**
89 * Get the method name in which this violation was identified.
90 *
91 * @return The method name.
92 */
93 // TODO Isn't this Java specific?
94 String getMethodName();
95
96 /**
97 * Get the variable name on which this violation was identified.
98 *
99 * @return The variable name.
100 */
101 String getVariableName();
102 }