blob: 0c3a5e9b7e9a2a51730d041dbb49ab5b161bcef8 [file] [log] [blame]
package org.apache.maven.plugins.pmd.exec;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import java.io.File;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* Data object to store all configuration options needed to execute PMD
* as a separate process.
*
* <p>This class is intended to be serialized and read back.
*
* <p>Some properties might be optional and can be <code>null</code>.
*/
public class PmdRequest implements Serializable
{
private static final long serialVersionUID = -6324416880563476455L;
private String javaExecutable;
private String language;
private String languageVersion;
private int minimumPriority;
private String auxClasspath;
private String suppressMarker;
private String analysisCacheLocation;
private List<String> rulesets;
private String sourceEncoding;
private List<File> files = new ArrayList<>();
private boolean showPmdLog;
private String logLevel;
private boolean skipPmdError;
private String excludeFromFailureFile;
private String targetDirectory;
private String outputEncoding;
private String format;
private String benchmarkOutputLocation;
private boolean includeXmlInSite;
private String reportOutputDirectory;
/**
* Configure language and language version.
*
* @param language the language
* @param targetJdk the language version, optional, can be <code>null</code>
*/
public void setLanguageAndVersion( String language, String targetJdk )
{
if ( "java".equals( language ) || null == language )
{
this.language = "java";
this.languageVersion = targetJdk;
}
else if ( "javascript".equals( language ) || "ecmascript".equals( language ) )
{
this.language = "ecmascript";
}
else if ( "jsp".equals( language ) )
{
this.language = "jsp";
}
else
{
this.language = language;
}
}
public void setJavaExecutable( String javaExecutable )
{
this.javaExecutable = javaExecutable;
}
public void setMinimumPriority( int minimumPriority )
{
this.minimumPriority = minimumPriority;
}
public void setAuxClasspath( String auxClasspath )
{
this.auxClasspath = auxClasspath;
}
public void setSuppressMarker( String suppressMarker )
{
this.suppressMarker = suppressMarker;
}
public void setAnalysisCacheLocation( String analysisCacheLocation )
{
this.analysisCacheLocation = analysisCacheLocation;
}
public void setRulesets( List<String> rulesets )
{
this.rulesets = rulesets;
}
public void setSourceEncoding( String sourceEncoding )
{
this.sourceEncoding = sourceEncoding;
}
public void addFiles( Collection<File> files )
{
this.files.addAll( files );
}
public void setBenchmarkOutputLocation( String benchmarkOutputLocation )
{
this.benchmarkOutputLocation = benchmarkOutputLocation;
}
public void setTargetDirectory( String targetDirectory )
{
this.targetDirectory = targetDirectory;
}
public void setOutputEncoding( String outputEncoding )
{
this.outputEncoding = outputEncoding;
}
public void setFormat( String format )
{
this.format = format;
}
public void setShowPmdLog( boolean showPmdLog )
{
this.showPmdLog = showPmdLog;
}
public void setLogLevel( String logLevel )
{
this.logLevel = logLevel;
}
public void setSkipPmdError( boolean skipPmdError )
{
this.skipPmdError = skipPmdError;
}
public void setIncludeXmlInSite( boolean includeXmlInSite )
{
this.includeXmlInSite = includeXmlInSite;
}
public void setReportOutputDirectory( String reportOutputDirectory )
{
this.reportOutputDirectory = reportOutputDirectory;
}
public void setExcludeFromFailureFile( String excludeFromFailureFile )
{
this.excludeFromFailureFile = excludeFromFailureFile;
}
public String getJavaExecutable()
{
return javaExecutable;
}
public String getLanguage()
{
return language;
}
public String getLanguageVersion()
{
return languageVersion;
}
public int getMinimumPriority()
{
return minimumPriority;
}
public String getAuxClasspath()
{
return auxClasspath;
}
public String getSuppressMarker()
{
return suppressMarker;
}
public String getAnalysisCacheLocation()
{
return analysisCacheLocation;
}
public List<String> getRulesets()
{
return rulesets;
}
public String getSourceEncoding()
{
return sourceEncoding;
}
public List<File> getFiles()
{
return files;
}
public String getBenchmarkOutputLocation()
{
return benchmarkOutputLocation;
}
public String getTargetDirectory()
{
return targetDirectory;
}
public String getOutputEncoding()
{
return outputEncoding;
}
public String getFormat()
{
return format;
}
public boolean isShowPmdLog()
{
return showPmdLog;
}
public String getLogLevel()
{
return logLevel;
}
public boolean isDebugEnabled()
{
return "debug".equals( logLevel );
}
public boolean isSkipPmdError()
{
return skipPmdError;
}
public boolean isIncludeXmlInSite()
{
return includeXmlInSite;
}
public String getReportOutputDirectory()
{
return reportOutputDirectory;
}
public String getExcludeFromFailureFile()
{
return excludeFromFailureFile;
}
}