diff --git a/model/src/main/kotlin/PackageCurationData.kt b/model/src/main/kotlin/PackageCurationData.kt index 9132f1c72d761..b2f34d972698c 100644 --- a/model/src/main/kotlin/PackageCurationData.kt +++ b/model/src/main/kotlin/PackageCurationData.kt @@ -24,6 +24,7 @@ import com.fasterxml.jackson.annotation.JsonInclude import org.ossreviewtoolkit.utils.common.zip import org.ossreviewtoolkit.utils.ort.DeclaredLicenseProcessor import org.ossreviewtoolkit.utils.spdx.SpdxExpression +import org.ossreviewtoolkit.utils.spdx.SpdxExpression.Strictness.ALLOW_LICENSEREF_EXCEPTIONS /** * This class contains curation data for a package. It is used to amend the automatically detected metadata for a @@ -108,6 +109,14 @@ data class PackageCurationData( @JsonInclude(JsonInclude.Include.NON_NULL) val sourceCodeOrigins: List? = null ) { + init { + declaredLicenseMapping.values.forEach { spdxExpression -> + require(spdxExpression.isValid(ALLOW_LICENSEREF_EXCEPTIONS)) { + "The value '$spdxExpression' within the declared license mapping is not a valid SPDX expression." + } + } + } + /** * Apply this [PackageCuration] to [targetPackage] by overriding all values of [targetPackage] with non-null values * of this [PackageCurationData], and return the resulting [CuratedPackage].