com.puppycrawl.tools.checkstyle.api.AuditEvent Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of checkstyle Show documentation
Show all versions of checkstyle Show documentation
Checkstyle is a development tool to help programmers write Java code
that adheres to a coding standard
////////////////////////////////////////////////////////////////////////////////
// checkstyle: Checks Java source code for adherence to a set of rules.
// Copyright (C) 2001-2019 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.api;
import java.util.EventObject;
/**
* Raw event for audit.
*
*
* I'm not very satisfied about the design of this event since there are
* optional methods that will return null in most of the case. This will
* need some work to clean it up especially if we want to introduce
* a more sequential reporting action rather than a packet error
* reporting. This will allow for example to follow the process quickly
* in an interface or a servlet (yep, that's cool to run a check via
* a web interface in a source repository ;-)
*
*
*
* @see AuditListener
* @noinspection SerializableHasSerializationMethods
*/
public final class AuditEvent
extends EventObject {
/** Record a version. */
private static final long serialVersionUID = -3774725606973812736L;
/** Filename event associated with. **/
private final String fileName;
/** Message associated with the event. **/
private final LocalizedMessage localizedMessage;
/**
* Creates a new instance.
* @param source the object that created the event
*/
public AuditEvent(Object source) {
this(source, null);
}
/**
* Creates a new {@code AuditEvent} instance.
* @param src source of the event
* @param fileName file associated with the event
*/
public AuditEvent(Object src, String fileName) {
this(src, fileName, null);
}
/**
* Creates a new {@code AuditEvent} instance.
*
* @param src source of the event
* @param fileName file associated with the event
* @param localizedMessage the actual message
*/
public AuditEvent(Object src, String fileName, LocalizedMessage localizedMessage) {
super(src);
this.fileName = fileName;
this.localizedMessage = localizedMessage;
}
/**
* 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;
}
/**
* 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();
}
/**
* Gets the audit event severity level.
* @return the audit event severity level
*/
public SeverityLevel getSeverityLevel() {
SeverityLevel severityLevel = SeverityLevel.INFO;
if (localizedMessage != null) {
severityLevel = localizedMessage.getSeverityLevel();
}
return severityLevel;
}
/**
* 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 localized message.
* @return the localized message
*/
public LocalizedMessage getLocalizedMessage() {
return localizedMessage;
}
}