aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/puppycrawl/tools/checkstyle/TreeWalkerAuditEvent.java
blob: 629c680f60680e9b87a20cc0ffe6089b825d33f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
////////////////////////////////////////////////////////////////////////////////
// checkstyle: Checks Java source code for adherence to a set of rules.
// Copyright (C) 2001-2017 the original author or authors.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
////////////////////////////////////////////////////////////////////////////////

package com.puppycrawl.tools.checkstyle;

import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.FileContents;
import com.puppycrawl.tools.checkstyle.api.LocalizedMessage;

/**
 * Raw {@code TreeWalker} event for audit.
 *
 * @author Timur Tibeyev
 */
public class TreeWalkerAuditEvent {
    /** Filename event associated with. **/
    private final String fileName;
    /** The file contents. */
    private final FileContents fileContents;
    /** Message associated with the event. **/
    private final LocalizedMessage localizedMessage;
    /** Root ast element. **/
    private final DetailAST rootAst;

    /**
     * Creates a new {@code TreeWalkerAuditEvent} instance.
     *
     * @param fileContents contents of the file associated with the event
     * @param fileName file associated with the event
     * @param localizedMessage the actual message
     * @param rootAst root AST element {@link DetailAST} of the file
     */
    public TreeWalkerAuditEvent(FileContents fileContents, String fileName,
                                LocalizedMessage localizedMessage, DetailAST rootAst) {
        this.fileContents = fileContents;
        this.fileName = fileName;
        this.localizedMessage = localizedMessage;
        this.rootAst = rootAst;
    }

    /**
     * Returns name of file being audited.
     * @return the file name currently being audited or null if there is
     *     no relation to a file.
     */
    public String getFileName() {
        return fileName;
    }

    /**
     * Returns contents of the file.
     * @return contents of the file.
     */
    public FileContents getFileContents() {
        return fileContents;
    }

    /**
     * Gets the localized message.
     * @return the localized message
     */
    public LocalizedMessage getLocalizedMessage() {
        return localizedMessage;
    }

    /**
     * Return the line number on the source file where the event occurred.
     * This may be 0 if there is no relation to a file content.
     * @return an integer representing the line number in the file source code.
     */
    public int getLine() {
        return localizedMessage.getLineNo();
    }

    /**
     * Return the message associated to the event.
     * @return the event message
     */
    public String getMessage() {
        return localizedMessage.getMessage();
    }

    /**
     * Gets the column associated with the message.
     * @return the column associated with the message
     */
    public int getColumn() {
        return localizedMessage.getColumnNo();
    }

    /**
     * Returns id of module.
     * @return the identifier of the module that generated the event. Can return
     *         null.
     */
    public String getModuleId() {
        return localizedMessage.getModuleId();
    }

    /**
     * Gets the name of the source for the message.
     * @return the name of the source for the message
     */
    public String getSourceName() {
        return localizedMessage.getSourceName();
    }

    /**
     * Gets the token type of the message.
     * @return the token type of the message
     */
    public int getTokenType() {
        return localizedMessage.getTokenType();
    }

    /**
     * Gets the root element of the AST tree.
     * @return the root element of the AST tree
     */
    public DetailAST getRootAst() {
        return rootAst;
    }
}