001 /**
002 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
003 */
004 package net.sourceforge.pmd;
005
006 /**
007 * A RuleViolation is created by a Rule when it identifies a violation of the
008 * Rule constraints.
009 *
010 * @see Rule
011 */
012 public interface RuleViolation {
013
014 /**
015 * Get the Rule which identified this violation.
016 * @return The identifying Rule.
017 */
018 Rule getRule();
019
020 /**
021 * Get the description of this violation.
022 *
023 * @return The description.
024 */
025 String getDescription();
026
027 /**
028 * Indicates whether this violation has been suppressed.
029 * @return <code>true</code> if this violation is suppressed, <code>false</code> otherwise.
030 */
031 boolean isSuppressed();
032
033 /**
034 * Get the source file name in which this violation was identified.
035 *
036 * @return The source file name.
037 */
038 String getFilename();
039
040 /**
041 * Get the begin line number in the source file in which this violation was
042 * identified.
043 *
044 * @return Begin line number.
045 */
046 int getBeginLine();
047
048 /**
049 * Get the column number of the begin line in the source file
050 * in which this violation was identified.
051 *
052 * @return Begin column number.
053 */
054 int getBeginColumn();
055
056 /**
057 * Get the end line number in the source file in which this violation was
058 * identified.
059 *
060 * @return End line number.
061 */
062 int getEndLine();
063
064 /**
065 * Get the column number of the end line in the source file
066 * in which this violation was identified.
067 *
068 * @return End column number.
069 */
070 int getEndColumn();
071
072 /**
073 * Get the package name of the Class in which this violation was identified.
074 *
075 * @return The package name.
076 */
077 // TODO Isn't this Java specific?
078 String getPackageName();
079
080 /**
081 * Get the name of the Class in which this violation was identified.
082 *
083 * @return The Class name.
084 */
085 // TODO Isn't this Java specific?
086 String getClassName();
087
088 /**
089 * Get the method name in which this violation was identified.
090 *
091 * @return The method name.
092 */
093 // TODO Isn't this Java specific?
094 String getMethodName();
095
096 /**
097 * Get the variable name on which this violation was identified.
098 *
099 * @return The variable name.
100 */
101 String getVariableName();
102 }
|