Skip to content

Commit 6e585be

Browse files
committed
Change treatment of external licenses in license expression parser
Required an update of the SPDX model 3 which renamed a few fields. There are 2 to the treatment of the external licenses: - Uses a ID map rather than the SPDX document as a parameter - Passes in the appropriate types Signed-off-by: Gary O'Neall <gary@sourceauditor.com>
1 parent 099b822 commit 6e585be

27 files changed

Lines changed: 491 additions & 302 deletions

src/main/java/org/spdx/library/LicenseInfoFactory.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@
3232
import org.spdx.library.model.v2.license.InvalidLicenseStringException;
3333
import org.spdx.library.model.v2.license.LicenseParserException;
3434
import org.spdx.library.model.v2.license.SpdxListedLicense;
35-
import org.spdx.library.model.v3.core.SpdxDocument;
36-
import org.spdx.library.model.v3.expandedlicensing.ListedLicense;
37-
import org.spdx.library.model.v3.expandedlicensing.ListedLicenseException;
38-
import org.spdx.library.model.v3.simplelicensing.AnyLicenseInfo;
35+
import org.spdx.library.model.v3_0_0.core.DictionaryEntry;
36+
import org.spdx.library.model.v3_0_0.expandedlicensing.ListedLicense;
37+
import org.spdx.library.model.v3_0_0.expandedlicensing.ListedLicenseException;
38+
import org.spdx.library.model.v3_0_0.simplelicensing.AnyLicenseInfo;
3939
import org.spdx.storage.IModelStore;
4040
import org.spdx.utility.license.LicenseExpressionParser;
4141

@@ -129,14 +129,14 @@ public static org.spdx.library.model.v2.license.AnyLicenseInfo parseSPDXLicenseS
129129
* @param customLicensePrefix Prefix to use for any custom licenses or addition IDs found in the string. If the resultant object URI does not exist
130130
* for an ID, they will be added. If null, the default model document URI + "#" will be used.
131131
* @param copyManager if non-null, allows for copying of any properties set which use other model stores or document URI's
132-
* @param spdxDocument Document containing the namespace map for any prefixes used in external addition or licenses
132+
* @param customIdToUri Mapping of the id prefixes used in the license expression to the namespace preceding the external ID
133133
* @return an SPDXLicenseInfo created from the string
134134
* @throws InvalidLicenseStringException
135135
* @throws DefaultStoreNotInitialized
136136
*/
137137
public static AnyLicenseInfo parseSPDXLicenseString(String licenseString, @Nullable IModelStore store,
138138
@Nullable String customLicensePrefix, @Nullable IModelCopyManager copyManager,
139-
@Nullable SpdxDocument spdxDocument) throws InvalidLicenseStringException, DefaultStoreNotInitialized {
139+
@Nullable List<DictionaryEntry> customIdToUri) throws InvalidLicenseStringException, DefaultStoreNotInitialized {
140140
if (Objects.isNull(store)) {
141141
store = DefaultModelStore.getDefaultModelStore();
142142
}
@@ -148,7 +148,7 @@ public static AnyLicenseInfo parseSPDXLicenseString(String licenseString, @Nulla
148148
}
149149
try {
150150
return LicenseExpressionParser.parseLicenseExpression(licenseString, store, customLicensePrefix,
151-
copyManager, spdxDocument);
151+
copyManager, customIdToUri);
152152
} catch (LicenseParserException e) {
153153
throw new InvalidLicenseStringException(e.getMessage(),e);
154154
} catch (InvalidSPDXAnalysisException e) {

src/main/java/org/spdx/library/ListedLicenses.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
import org.spdx.library.model.v2.SpdxConstantsCompatV2;
3434
import org.spdx.library.model.v2.SpdxModelFactoryCompatV2;
3535
import org.spdx.library.model.v2.license.SpdxListedLicense;
36-
import org.spdx.library.model.v3.expandedlicensing.ListedLicense;
37-
import org.spdx.library.model.v3.expandedlicensing.ListedLicenseException;
36+
import org.spdx.library.model.v3_0_0.expandedlicensing.ListedLicense;
37+
import org.spdx.library.model.v3_0_0.expandedlicensing.ListedLicenseException;
3838
import org.spdx.storage.IModelStore;
3939
import org.spdx.storage.listedlicense.IListedLicenseStore;
4040
import org.spdx.storage.listedlicense.SpdxListedLicenseLocalStore;

src/main/java/org/spdx/library/ModelCopyManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import org.spdx.library.conversion.ISpdxConverter;
3636
import org.spdx.library.conversion.Spdx2to3Converter;
3737
import org.spdx.library.model.v2.SpdxConstantsCompatV2;
38-
import org.spdx.library.model.v3.SpdxConstantsV3;
38+
import org.spdx.library.model.v3_0_0.SpdxConstantsV3;
3939
import org.spdx.storage.IModelStore;
4040
import org.spdx.storage.IModelStore.IModelStoreLock;
4141
import org.spdx.storage.IModelStore.IdType;

src/main/java/org/spdx/library/SpdxModelFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import org.spdx.core.ModelRegistry;
3232
import org.spdx.core.ModelRegistryException;
3333
import org.spdx.library.model.v2.SpdxModelInfoV2_X;
34-
import org.spdx.library.model.v3.SpdxModelInfoV3_0;
34+
import org.spdx.library.model.v3_0_0.SpdxModelInfoV3_0;
3535
import org.spdx.storage.IModelStore;
3636

3737
/**

src/main/java/org/spdx/library/conversion/ExternalMapInfo.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
import java.util.Optional;
2626

2727
import org.spdx.core.InvalidSPDXAnalysisException;
28-
import org.spdx.library.model.v3.SpdxConstantsV3;
29-
import org.spdx.library.model.v3.SpdxModelClassFactory;
30-
import org.spdx.library.model.v3.core.ExternalMap;
31-
import org.spdx.library.model.v3.core.Hash;
28+
import org.spdx.library.model.v3_0_0.SpdxConstantsV3;
29+
import org.spdx.library.model.v3_0_0.SpdxModelClassFactoryV3;
30+
import org.spdx.library.model.v3_0_0.core.ExternalMap;
31+
import org.spdx.library.model.v3_0_0.core.Hash;
3232
import org.spdx.storage.IModelStore;
3333
import org.spdx.storage.IModelStore.IdType;
3434

@@ -72,7 +72,7 @@ public ExternalMap addExternalMap(String externalUri, IModelStore modelStore) th
7272
synchronized(existingExternalMap) {
7373
ExternalMap retval = existingExternalMap.get(externalUri);
7474
if (Objects.isNull(retval)) {
75-
retval = (ExternalMap)SpdxModelClassFactory.getModelObject(modelStore,
75+
retval = (ExternalMap)SpdxModelClassFactoryV3.getModelObject(modelStore,
7676
modelStore.getNextId(IdType.Anonymous), SpdxConstantsV3.CORE_EXTERNAL_MAP, null, true, null);
7777
retval.setExternalSpdxId(externalUri);
7878
retval.setLocationHint(this.externalDocumentUri);

0 commit comments

Comments
 (0)