
org.linuxstuff.mojo.licensing.model.LicensingRequirements Maven / Gradle / Ivy
package org.linuxstuff.mojo.licensing.model;
import java.util.HashSet;
import java.util.Set;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
@XStreamAlias("licensing-requirements")
public class LicensingRequirements {
@XStreamAlias("missing-licenses")
private Set missingLicenses = new HashSet();
@XStreamAlias("coalesced-licenses")
private Set coalescedLicenses = new HashSet();
@XStreamAlias("disliked-licenses")
@XStreamImplicit(itemFieldName = "disliked-license")
private Set dislikedLicenses = new HashSet();
@XStreamAlias("dislike-exemptions")
@XStreamImplicit(itemFieldName = "dislike-exemption")
private Set dislikeExemptions = new HashSet();
public void addArtifactMissingLicense(ArtifactWithLicenses missingLicense) {
missingLicenses.add(missingLicense);
}
public void addCoalescedLicense(CoalescedLicense coalescedLicense) {
coalescedLicenses.add(coalescedLicense);
}
public void addDislikedLicense(String licenseName) {
dislikedLicenses.add(licenseName);
}
public void addDislikeExemption(String artifactId) {
dislikeExemptions.add(artifactId);
}
public boolean isDislikedLicense(String license) {
return dislikedLicenses.contains(license);
}
public String getCorrectLicenseName(String name) {
for (CoalescedLicense coalesced : coalescedLicenses) {
if (coalesced.getFinalName().equalsIgnoreCase(name.trim()))
return name;
for (String otherName : coalesced.getOtherNames()) {
if (otherName.equalsIgnoreCase(name.trim()))
return coalesced.getFinalName();
}
}
return name;
}
public boolean isExemptFromDislike(String artifactId) {
if (dislikeExemptions == null) {
return false;
}
return dislikeExemptions.contains(artifactId);
}
public Set getLicenseNames(String id) {
Set licenses = new HashSet();
for (ArtifactWithLicenses missing : missingLicenses) {
if (missing.getArtifactId().equals(id)) {
licenses.addAll(missing.getLicenses());
}
}
return licenses;
}
public boolean containsDislikedLicenses() {
return !dislikedLicenses.isEmpty();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy