/*
* Sonar 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 3 of the License, or (at your option) any later version.
*
* Sonar 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 Sonar; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
*/
package hudson.plugins.sonar.model;
import org.apache.commons.lang.StringUtils;
import org.kohsuke.stapler.DataBoundConstructor;
/**
* @author Evgeny Mandrikov
* @since 1.2
*/
public class LightProjectConfig {
/**
* Mandatory and no spaces.
*/
private final String groupId;
/**
* Mandatory and no spaces.
*/
private final String artifactId;
/**
* Mandatory.
*/
private final String projectName;
/**
* Optional.
*/
private final String projectVersion;
/**
* Optional.
*/
private final String projectDescription;
/**
* Optional.
*/
private final String javaVersion;
/**
* Mandatory.
*/
private final String projectSrcDir;
/**
* Optional.
*/
private final String projectSrcEncoding;
/**
* Optional.
*/
private final String projectBinDir;
/**
* Optional.
*/
private final String language;
/**
* Optional.
*/
private final ReportsConfig reports;
public LightProjectConfig(String groupId, String artifactId, String projectName) {
this(groupId, artifactId, projectName, null, null, null, null, null, null, null, null);
}
@DataBoundConstructor
public LightProjectConfig(
String groupId,
String artifactId,
String projectName,
String projectVersion,
String projectDescription,
String javaVersion,
String projectSrcDir,
String projectSrcEncoding,
String projectBinDir,
String language,
ReportsConfig reports
) {
this.groupId = groupId;
this.artifactId = artifactId;
this.projectName = projectName;
this.projectVersion = projectVersion;
this.projectDescription = projectDescription;
this.javaVersion = javaVersion;
this.projectSrcDir = projectSrcDir;
this.projectSrcEncoding = projectSrcEncoding;
this.projectBinDir = projectBinDir;
this.language = language;
this.reports = reports;
}
public String getGroupId() {
return groupId;
}
public String getArtifactId() {
return artifactId;
}
public String getProjectName() {
return projectName;
}
public String getProjectVersion() {
return StringUtils.trimToEmpty(projectVersion);
}
public String getProjectDescription() {
return StringUtils.trimToEmpty(projectDescription);
}
public String getJavaVersion() {
return StringUtils.trimToEmpty(javaVersion);
}
public String getProjectSrcDir() {
return StringUtils.trimToEmpty(projectSrcDir);
}
public String getProjectSrcEncoding() {
return StringUtils.trimToEmpty(projectSrcEncoding);
}
public String getProjectBinDir() {
return StringUtils.trimToEmpty(projectBinDir);
}
public String getLanguage() {
return StringUtils.trimToEmpty(language);
}
public ReportsConfig getReports() {
return reports;
}
public boolean isReuseReports() {
return reports != null;
}
}