1 ///////////////////////////////////////////////////////////////////////////////////////////////
2 // checkstyle: Checks Java source code and other text files for adherence to a set of rules.
3 // Copyright (C) 2001-2025 the original author or authors.
4 //
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License, or (at your option) any later version.
9 //
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 ///////////////////////////////////////////////////////////////////////////////////////////////
19
20 package com.puppycrawl.tools.checkstyle;
21
22 import com.puppycrawl.tools.checkstyle.api.DetailAST;
23 import com.puppycrawl.tools.checkstyle.api.FileContents;
24 import com.puppycrawl.tools.checkstyle.api.Violation;
25
26 /**
27 * Raw {@code TreeWalker} event for audit.
28 *
29 */
30 public class TreeWalkerAuditEvent {
31
32 /** Filename event associated with. **/
33 private final String fileName;
34 /** The file contents. */
35 private final FileContents fileContents;
36 /** Violation associated with the event. **/
37 private final Violation violation;
38 /** Root ast element. **/
39 private final DetailAST rootAst;
40
41 /**
42 * Creates a new {@code TreeWalkerAuditEvent} instance.
43 *
44 * @param fileContents contents of the file associated with the event
45 * @param fileName file associated with the event
46 * @param violation the actual violation
47 * @param rootAst root AST element {@link DetailAST} of the file
48 */
49 public TreeWalkerAuditEvent(FileContents fileContents, String fileName,
50 Violation violation, DetailAST rootAst) {
51 this.fileContents = fileContents;
52 this.fileName = fileName;
53 this.violation = violation;
54 this.rootAst = rootAst;
55 }
56
57 /**
58 * Returns name of file being audited.
59 *
60 * @return the file name currently being audited or null if there is
61 * no relation to a file.
62 */
63 public String getFileName() {
64 return fileName;
65 }
66
67 /**
68 * Returns contents of the file.
69 *
70 * @return contents of the file.
71 */
72 public FileContents getFileContents() {
73 return fileContents;
74 }
75
76 /**
77 * Gets the violation.
78 *
79 * @return the violation
80 */
81 public Violation getViolation() {
82 return violation;
83 }
84
85 /**
86 * Return the line number on the source file where the event occurred.
87 * This may be 0 if there is no relation to a file content.
88 *
89 * @return an integer representing the line number in the file source code.
90 */
91 public int getLine() {
92 return violation.getLineNo();
93 }
94
95 /**
96 * Return the violation associated to the event.
97 *
98 * @return the violation message
99 */
100 public String getMessage() {
101 return violation.getViolation();
102 }
103
104 /**
105 * Gets the column associated with the violation.
106 *
107 * @return the column associated with the violation
108 */
109 public int getColumn() {
110 return violation.getColumnNo();
111 }
112
113 /**
114 * Gets the column char index associated with the violation.
115 *
116 * @return the column char index associated with the violation
117 */
118 public int getColumnCharIndex() {
119 return violation.getColumnCharIndex();
120 }
121
122 /**
123 * Returns id of module.
124 *
125 * @return the identifier of the module that generated the event. Can return
126 * null.
127 */
128 public String getModuleId() {
129 return violation.getModuleId();
130 }
131
132 /**
133 * Gets the name of the source for the violation.
134 *
135 * @return the name of the source for the violation
136 */
137 public String getSourceName() {
138 return violation.getSourceName();
139 }
140
141 /**
142 * Gets the token type of the violation.
143 *
144 * @return the token type of the violation
145 */
146 public int getTokenType() {
147 return violation.getTokenType();
148 }
149
150 /**
151 * Gets the root element of the AST tree.
152 *
153 * @return the root element of the AST tree
154 */
155 public DetailAST getRootAst() {
156 return rootAst;
157 }
158
159 }