1 //////////////////////////////////////////////////////////////////////////////// 2 // checkstyle: Checks Java source code for adherence to a set of rules. 3 // Copyright (C) 2001-2019 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.LocalizedMessage; 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 /** Message associated with the event. **/ 37 private final LocalizedMessage localizedMessage; 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 localizedMessage the actual message 47 * @param rootAst root AST element {@link DetailAST} of the file 48 */ 49 public TreeWalkerAuditEvent(FileContents fileContents, String fileName, 50 LocalizedMessage localizedMessage, DetailAST rootAst) { 51 this.fileContents = fileContents; 52 this.fileName = fileName; 53 this.localizedMessage = localizedMessage; 54 this.rootAst = rootAst; 55 } 56 57 /** 58 * Returns name of file being audited. 59 * @return the file name currently being audited or null if there is 60 * no relation to a file. 61 */ 62 public String getFileName() { 63 return fileName; 64 } 65 66 /** 67 * Returns contents of the file. 68 * @return contents of the file. 69 */ 70 public FileContents getFileContents() { 71 return fileContents; 72 } 73 74 /** 75 * Gets the localized message. 76 * @return the localized message 77 */ 78 public LocalizedMessage getLocalizedMessage() { 79 return localizedMessage; 80 } 81 82 /** 83 * Return the line number on the source file where the event occurred. 84 * This may be 0 if there is no relation to a file content. 85 * @return an integer representing the line number in the file source code. 86 */ 87 public int getLine() { 88 return localizedMessage.getLineNo(); 89 } 90 91 /** 92 * Return the message associated to the event. 93 * @return the event message 94 */ 95 public String getMessage() { 96 return localizedMessage.getMessage(); 97 } 98 99 /** 100 * Gets the column associated with the message. 101 * @return the column associated with the message 102 */ 103 public int getColumn() { 104 return localizedMessage.getColumnNo(); 105 } 106 107 /** 108 * Gets the column char index associated with the message. 109 * @return the column char index associated with the message 110 */ 111 public int getColumnCharIndex() { 112 return localizedMessage.getColumnCharIndex(); 113 } 114 115 /** 116 * Returns id of module. 117 * @return the identifier of the module that generated the event. Can return 118 * null. 119 */ 120 public String getModuleId() { 121 return localizedMessage.getModuleId(); 122 } 123 124 /** 125 * Gets the name of the source for the message. 126 * @return the name of the source for the message 127 */ 128 public String getSourceName() { 129 return localizedMessage.getSourceName(); 130 } 131 132 /** 133 * Gets the token type of the message. 134 * @return the token type of the message 135 */ 136 public int getTokenType() { 137 return localizedMessage.getTokenType(); 138 } 139 140 /** 141 * Gets the root element of the AST tree. 142 * @return the root element of the AST tree 143 */ 144 public DetailAST getRootAst() { 145 return rootAst; 146 } 147 148 }