package fr.openwide.maven.artifact.notifier.core.business.project.model;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Embeddable;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.OneToOne;
import com.google.common.collect.Lists;
import fr.openwide.core.jpa.externallinkchecker.business.model.ExternalLinkWrapper;
@Embeddable
public class ItemAdditionalInformation implements Serializable {
private static final long serialVersionUID = -5168406926914345665L;
// NOTE: The orphanRemoval does not work here
// See the workaround in fr.openwide.maven.artifact.notifier.web.application.url.model.ExternalLinkWrapperWrapModel
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
private ExternalLinkWrapper websiteUrl;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
private ExternalLinkWrapper issueTrackerUrl;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
private ExternalLinkWrapper scmUrl;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
private ExternalLinkWrapper changelogUrl;
@ManyToMany(fetch = FetchType.LAZY)
private List<ProjectLicense> licenses = Lists.newArrayList();
public ExternalLinkWrapper getWebsiteUrl() {
return websiteUrl;
}
public void setWebsiteUrl(ExternalLinkWrapper websiteUrl) {
this.websiteUrl = websiteUrl;
}
public ExternalLinkWrapper getScmUrl() {
return scmUrl;
}
public void setScmUrl(ExternalLinkWrapper scmUrl) {
this.scmUrl = scmUrl;
}
public ExternalLinkWrapper getIssueTrackerUrl() {
return issueTrackerUrl;
}
public void setIssueTrackerUrl(ExternalLinkWrapper issueTrackerUrl) {
this.issueTrackerUrl = issueTrackerUrl;
}
public ExternalLinkWrapper getChangelogUrl() {
return changelogUrl;
}
public void setChangelogUrl(ExternalLinkWrapper changelogUrl) {
this.changelogUrl = changelogUrl;
}
public List<ProjectLicense> getLicenses() {
return Collections.unmodifiableList(licenses);
}
public void addLicense(ProjectLicense license) {
if (license != null) {
licenses.add(license);
}
}
public void setLicenses(List<ProjectLicense> licenses) {
this.licenses.clear();
this.licenses.addAll(licenses);
}
}