From a313e4cee1222eed28939e5e453519668369a87f Mon Sep 17 00:00:00 2001 From: Gary O'Neall Date: Tue, 25 Apr 2023 09:38:26 -0700 Subject: [PATCH] Check for ReferenceType in simpleUri toObjectValue Fixes #171 Signed-off-by: Gary O'Neall --- src/main/java/org/spdx/library/SpdxConstants.java | 1 + src/main/java/org/spdx/library/model/SimpleUriValue.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/main/java/org/spdx/library/SpdxConstants.java b/src/main/java/org/spdx/library/SpdxConstants.java index e1080b6b..41967413 100644 --- a/src/main/java/org/spdx/library/SpdxConstants.java +++ b/src/main/java/org/spdx/library/SpdxConstants.java @@ -228,6 +228,7 @@ public class SpdxConstants { public static final String PROP_BUILT_DATE = "builtDate"; public static final String PROP_RELEASE_DATE = "releaseDate"; public static final String PROP_VALID_UNTIL_DATE = "validUntilDate"; + public static final Pattern REFERENCE_TYPE_URI_PATTERN = Pattern.compile("https?://spdx.org/rdf/references/.+"); // SPDX License Properties // The comment property is the RDFS_PROP_COMMENT property in the rdfs namespace diff --git a/src/main/java/org/spdx/library/model/SimpleUriValue.java b/src/main/java/org/spdx/library/model/SimpleUriValue.java index ddd9950a..64dd0e7d 100644 --- a/src/main/java/org/spdx/library/model/SimpleUriValue.java +++ b/src/main/java/org/spdx/library/model/SimpleUriValue.java @@ -100,6 +100,8 @@ public Object toModelObject(IModelStore store, String documentUri, ModelCopyMana return ExternalSpdxElement.uriToExternalSpdxElement(uri, store, documentUri, copyManager); } else if (SpdxConstants.EXTERNAL_EXTRACTED_LICENSE_URI_PATTERN.matcher(uri).matches()) { return ExternalExtractedLicenseInfo.uriToExternalExtractedLicense(uri, store, documentUri, copyManager); + } else if (SpdxConstants.REFERENCE_TYPE_URI_PATTERN.matcher(uri).matches()) { + return new ReferenceType(this); } else if (SpdxConstants.URI_VALUE_NONE.equals(uri)) { // Default value is a license, although it can also be a string or an SpdxElement // the caller should override the type based on the type expected