package hudson.plugins.checkstyle;
import hudson.model.AbstractBuild;
import hudson.plugins.analysis.core.BuildHistory;
import hudson.plugins.analysis.core.BuildResult;
import hudson.plugins.analysis.core.ParserResult;
import hudson.plugins.analysis.core.ResultAction;
import hudson.plugins.checkstyle.parser.Warning;
import com.thoughtworks.xstream.XStream;
/**
* Represents the results of the Checkstyle analysis. One instance of this class
* is persisted for each build via an XML file.
*
* @author Ulli Hafner
*/
public class CheckStyleResult extends BuildResult {
/** Unique identifier of this class. */
private static final long serialVersionUID = 2768250056765266658L;
/**
* Creates a new instance of {@link CheckStyleResult}.
*
* @param build
* the current build as owner of this action
* @param defaultEncoding
* the default encoding to be used when reading and parsing files
* @param result
* the parsed result with all annotations
*/
public CheckStyleResult(final AbstractBuild<?, ?> build, final String defaultEncoding, final ParserResult result) {
super(build, defaultEncoding, result);
}
/**
* Creates a new instance of {@link CheckStyleResult}.
*
* @param build
* the current build as owner of this action
* @param defaultEncoding
* the default encoding to be used when reading and parsing files
* @param result
* the parsed result with all annotations
* @param history
* the plug-in history
*/
protected CheckStyleResult(final AbstractBuild<?, ?> build, final String defaultEncoding, final ParserResult result,
final BuildHistory history) {
super(build, defaultEncoding, result, history);
}
/** {@inheritDoc} */
@Override
protected void configure(final XStream xstream) {
xstream.alias("warning", Warning.class);
}
/**
* Returns a summary message for the summary.jelly file.
*
* @return the summary message
*/
public String getSummary() {
return ResultSummary.createSummary(this);
}
/** {@inheritDoc} */
@Override
protected String createDeltaMessage() {
return ResultSummary.createDeltaMessage(this);
}
/**
* Returns the name of the file to store the serialized annotations.
*
* @return the name of the file to store the serialized annotations
*/
@Override
protected String getSerializationFileName() {
return "checkstyle-warnings.xml";
}
/** {@inheritDoc} */
public String getDisplayName() {
return Messages.Checkstyle_ProjectAction_Name();
}
/** {@inheritDoc} */
@Override
protected Class<? extends ResultAction<? extends BuildResult>> getResultActionType() {
return CheckStyleResultAction.class;
}
}