diff --git a/src/main/java/org/spdx/utility/compare/SpdxComparer.java b/src/main/java/org/spdx/utility/compare/SpdxComparer.java
index d58fd264..1399b3c0 100644
--- a/src/main/java/org/spdx/utility/compare/SpdxComparer.java
+++ b/src/main/java/org/spdx/utility/compare/SpdxComparer.java
@@ -51,6 +51,9 @@
import org.spdx.library.model.v2.license.AnyLicenseInfo;
import org.spdx.library.model.v2.license.ExtractedLicenseInfo;
import org.spdx.licenseTemplate.LicenseTextHelper;
+
+import javax.annotation.Nullable;
+
/**
* Performs a comparison between two or more SPDX documents and holds the results of the comparison
*
@@ -149,6 +152,8 @@ public class SpdxComparer {
// Snippet references comparison results
private final Map>> uniqueSnippets = new HashMap<>();
private final Map snippetComparers = new HashMap<>();
+
+ private final Map equivalentElements = new HashMap<>(); // Key is the hash of the hashes of the 2 element
public SpdxComparer() {
// Default empty constructor
@@ -350,7 +355,7 @@ private void compareExternalDocumentRefs() throws InvalidSPDXAnalysisException {
Collection externalDocRefsB = spdxDocs.get(j).getExternalDocumentRefs();
// find any external refs in A that are not in B
- List uniqueA = findUniqueExternalDocumentRefs(externalDocRefsA, externalDocRefsB);
+ List uniqueA = findUniqueExternalDocumentRefs(externalDocRefsA, externalDocRefsB, equivalentElements);
if (!uniqueA.isEmpty()) {
uniqueAMap.put(spdxDocs.get(j), uniqueA);
}
@@ -385,7 +390,7 @@ private void compareDocumentRelationships() throws InvalidSPDXAnalysisException
Collection relationshipsB = spdxDocs.get(j).getRelationships();
// find any creators in A that are not in B
- List uniqueA = findUniqueRelationships(relationshipsA, relationshipsB);
+ List uniqueA = findUniqueRelationships(relationshipsA, relationshipsB, equivalentElements);
if (!uniqueA.isEmpty()) {
uniqueAMap.put(spdxDocs.get(j), uniqueA);
}
@@ -896,7 +901,7 @@ private void compareDocumentContents() throws SpdxCompareException {
Collection itemsA = spdxDocs.get(i).getDocumentDescribes();
for (int j = i+1; j < spdxDocs.size(); j++) {
Collection itemsB = spdxDocs.get(j).getDocumentDescribes();
- if (!collectionsEquivalent(itemsA, itemsB)) {
+ if (!collectionsEquivalent(itemsA, itemsB, equivalentElements)) {
this.documentContentsEquals = false;
this.differenceFound = true;
return;
@@ -1156,15 +1161,30 @@ public static boolean objectsEqual(Object o1, Object o2) {
* @throws InvalidSPDXAnalysisException on SPDX parsing errors
*/
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
- public static boolean elementsEquivalent(Optional extends ModelObjectV2> elementA, Optional extends ModelObjectV2> elementB) throws InvalidSPDXAnalysisException {
- if (elementA.isPresent()) {
- if (elementB.isPresent()) {
- return elementA.get().equivalent(elementB.get());
+ public static boolean elementsEquivalent(Optional extends ModelObjectV2> elementA,
+ Optional extends ModelObjectV2> elementB,
+ Map equivalentElements) throws InvalidSPDXAnalysisException {
+ return elementsEquivalent(elementA.orElse(null), elementB.orElse(null), equivalentElements);
+ }
+
+ public static boolean elementsEquivalent(@Nullable ModelObjectV2 elementA,
+ @Nullable ModelObjectV2 elementB,
+ Map equivalentElements) throws InvalidSPDXAnalysisException {
+ if (Objects.nonNull(elementA)) {
+ if (Objects.nonNull(elementB)) {
+ int key = Objects.hash(elementA, elementB);
+ int key2 = Objects.hash(elementA, elementB);
+ Boolean equiv = equivalentElements.get(key);
+ if (Objects.isNull(equiv)) {
+ equiv = elementA.equivalent(elementB);
+ equivalentElements.put(key, equiv);
+ }
+ return equiv;
} else {
return false;
}
} else {
- return !elementB.isPresent();
+ return Objects.isNull(elementB);
}
}
@@ -1174,7 +1194,9 @@ public static boolean elementsEquivalent(Optional extends ModelObjectV2> eleme
* @throws InvalidSPDXAnalysisException on SPDX parsing errors
* @return true if the collections all contain equivalent items
*/
- public static boolean collectionsEquivalent(Collection extends ModelObjectV2> collectionA, Collection extends ModelObjectV2> collectionB) throws InvalidSPDXAnalysisException {
+ public static boolean collectionsEquivalent(Collection extends ModelObjectV2> collectionA,
+ Collection extends ModelObjectV2> collectionB,
+ Map equivalentElements) throws InvalidSPDXAnalysisException {
if (Objects.isNull(collectionA)) {
return Objects.isNull(collectionB);
}
@@ -1184,16 +1206,18 @@ public static boolean collectionsEquivalent(Collection extends ModelObjectV2>
if (collectionA.size() != collectionB.size()) {
return false;
}
+ //DEBUG:
+ int size = collectionA.size();
+ int count = 0;
+ //ENDDEBUG:
for (ModelObjectV2 elementA:collectionA) {
+
if (Objects.isNull(elementA)) {
continue;
}
boolean found = false;
for (ModelObjectV2 elementB:collectionB) {
- if (Objects.isNull(elementB)) {
- continue;
- }
- if (elementA.equivalent(elementB)) {
+ if (elementsEquivalent(elementA, elementB, equivalentElements)) {
found = true;
break;
}
@@ -1201,6 +1225,11 @@ public static boolean collectionsEquivalent(Collection extends ModelObjectV2>
if (!found) {
return false;
}
+ //DEBUG:
+ if (size > 10000) {
+ System.out.println("Compared item "+count++ + "out of "+size);
+ }
+ //ENDDEBUG:
}
return true;
}
@@ -1966,7 +1995,9 @@ public static List findUniqueAnnotations(Collection anno
* @throws InvalidSPDXAnalysisException on SPDX parsing errors
*/
public static List findUniqueRelationships(
- Collection relationshipsA, Collection relationshipsB) throws InvalidSPDXAnalysisException {
+ Collection relationshipsA,
+ Collection relationshipsB,
+ Map equivalentElements) throws InvalidSPDXAnalysisException {
List retval = new ArrayList<>();
if (relationshipsA == null) {
return retval;
@@ -1978,7 +2009,7 @@ public static List findUniqueRelationships(
boolean found = false;
if (relationshipsB != null) {
for (Relationship relB:relationshipsB) {
- if (relA.equivalent(relB)) {
+ if (elementsEquivalent(relA, relB, equivalentElements)) {
found = true;
break;
}
@@ -1999,7 +2030,8 @@ public static List findUniqueRelationships(
* @throws InvalidSPDXAnalysisException On error in comparison
*/
public static List findUniqueExternalDocumentRefs(
- Collection externalDocRefsA, Collection externalDocRefsB) throws InvalidSPDXAnalysisException {
+ Collection externalDocRefsA, Collection externalDocRefsB,
+ Map equivalentElements) throws InvalidSPDXAnalysisException {
List retval = new ArrayList<>();
if (externalDocRefsA == null) {
return new ArrayList<>();
@@ -2013,7 +2045,7 @@ public static List findUniqueExternalDocumentRefs(
for (ExternalDocumentRef docRefB:externalDocRefsB) {
if (compareStrings(docRefA.getSpdxDocumentNamespace(),
docRefB.getSpdxDocumentNamespace()) == 0 &&
- elementsEquivalent(docRefA.getChecksum(), docRefB.getChecksum())) {
+ elementsEquivalent(docRefA.getChecksum(), docRefB.getChecksum(), equivalentElements)) {
found = true;
break;
}
diff --git a/src/main/java/org/spdx/utility/compare/SpdxItemComparer.java b/src/main/java/org/spdx/utility/compare/SpdxItemComparer.java
index b2a67e35..99c34291 100644
--- a/src/main/java/org/spdx/utility/compare/SpdxItemComparer.java
+++ b/src/main/java/org/spdx/utility/compare/SpdxItemComparer.java
@@ -80,9 +80,16 @@ public class SpdxItemComparer {
*/
protected Map>> extractedLicenseIdMap;
-
+ protected Map equivalentElements;
+
public SpdxItemComparer(Map>> extractedLicenseIdMap) {
+ this(extractedLicenseIdMap, new HashMap<>());
+ }
+
+ public SpdxItemComparer(Map>> extractedLicenseIdMap,
+ Map equivalentElements) {
this.extractedLicenseIdMap = extractedLicenseIdMap;
+ this.equivalentElements = equivalentElements;
}
/**
@@ -191,13 +198,14 @@ private void compareRelationships(SpdxDocument spdxDocument,
for (Entry entry : this.documentItem.entrySet()) {
Map> uniqueCompareRelationship = this.uniqueRelationships.computeIfAbsent(entry.getKey(), k -> new HashMap<>());
Collection compareRelationships = entry.getValue().getRelationships();
- List uniqueRelationships = SpdxComparer.findUniqueRelationships(relationships, compareRelationships);
+ List uniqueRelationships = SpdxComparer.findUniqueRelationships(relationships,
+ compareRelationships, equivalentElements);
if (!uniqueRelationships.isEmpty()) {
this.relationshipsEquals = false;
this.itemDifferenceFound = true;
}
uniqueDocRelationship.put(entry.getKey(), uniqueRelationships);
- uniqueRelationships = SpdxComparer.findUniqueRelationships(compareRelationships, relationships);
+ uniqueRelationships = SpdxComparer.findUniqueRelationships(compareRelationships, relationships, equivalentElements);
if (!uniqueRelationships.isEmpty()) {
this.relationshipsEquals = false;
this.itemDifferenceFound = true;
diff --git a/src/test/java/org/spdx/utility/compare/SpdxComparerTest.java b/src/test/java/org/spdx/utility/compare/SpdxComparerTest.java
index acd316c8..69739cf0 100644
--- a/src/test/java/org/spdx/utility/compare/SpdxComparerTest.java
+++ b/src/test/java/org/spdx/utility/compare/SpdxComparerTest.java
@@ -649,12 +649,6 @@ private SpdxDocument createTestSpdxDoc(String docUri) throws InvalidSPDXAnalysis
return retval;
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#compare(org.spdx.rdfparser.SpdxDocument, org.spdx.rdfparser.SpdxDocument)}.
- * @throws InvalidSPDXAnalysisException
- * @throws IOException
- * @throws SpdxCompareException
- */
public void testCompare() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -671,13 +665,6 @@ public void testCompare() throws IOException, InvalidSPDXAnalysisException, Spdx
assertEquals(doc2.hashCode(), comparer.getSpdxDoc(1).hashCode());
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#compareLicense(int, org.spdx.rdfparser.license.AnyLicenseInfo, int, org.spdx.rdfparser.license.AnyLicenseInfo)}.
- * @throws InvalidSPDXAnalysisException
- * @throws IOException
- * @throws SpdxCompareException
- * @throws InvalidLicenseStringException
- */
public void testCompareLicense() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException, InvalidLicenseStringException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -949,12 +936,6 @@ private AnyLicenseInfo updateToNewExtractedLicenseId(AnyLicenseInfo license, Map
}
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#isDifferenceFound()}.
- * @throws InvalidSPDXAnalysisException
- * @throws IOException
- * @throws SpdxCompareException
- */
public void testIsDifferenceFound() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -970,12 +951,6 @@ public void testIsDifferenceFound() throws IOException, InvalidSPDXAnalysisExcep
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#isSpdxVersionEqual()}.
- * @throws InvalidSPDXAnalysisException
- * @throws SpdxCompareException
- * @throws IOException
- */
public void testIsSpdxVersionEqual() throws InvalidSPDXAnalysisException, SpdxCompareException, IOException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -993,12 +968,6 @@ public void testIsSpdxVersionEqual() throws InvalidSPDXAnalysisException, SpdxCo
assertFalse(comparer.isDifferenceFound());
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#getSpdxDoc(int)}.
- * @throws InvalidSPDXAnalysisException
- * @throws IOException
- * @throws SpdxCompareException
- */
public void testGetSpdxDoc() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -1013,12 +982,6 @@ public void testGetSpdxDoc() throws IOException, InvalidSPDXAnalysisException, S
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#isDataLicenseEqual()}.
- * @throws InvalidSPDXAnalysisException
- * @throws IOException
- * @throws SpdxCompareException
- */
public void testIsDataLicenseEqual() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -1035,9 +998,6 @@ public void testIsDataLicenseEqual() throws IOException, InvalidSPDXAnalysisExce
assertFalse(comparer.isDataLicenseEqual());
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#isDocumentCommentsEqual()}.
- */
public void testIsDocumentCommentsEqual()throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -1055,10 +1015,6 @@ public void testIsDocumentCommentsEqual()throws IOException, InvalidSPDXAnalysis
assertFalse(comparer.isDifferenceFound());
assertTrue(comparer.isDocumentCommentsEqual());
}
-
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#isExtractedLicensingInfosEqual()}.
- */
public void testIsExtractedLicensingInfosEqual() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -1275,9 +1231,6 @@ public void testIsExtractedLicensingInfosEqual() throws IOException, InvalidSPDX
assertTrue(comparer.isDifferenceFound());
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#getUniqueExtractedLicenses(int, int)}.
- */
public void testGetUniqueExtractedLicenses() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -1423,9 +1376,6 @@ public void testGetUniqueExtractedLicenses() throws IOException, InvalidSPDXAnal
assertTrue(uniqueLicIds.contains(result.get(3).getLicenseId()));
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#getExtractedLicenseDifferences(int, int)}.
- */
public void testGetExtractedLicenseDifferences() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -1667,9 +1617,6 @@ private boolean stringsSame(Collection crossReff1, Collection co
return crossReff1.containsAll(collection);
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#isPackageEqual()}.
- */
public void testIsPackageEqual() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -1685,9 +1632,6 @@ public void testIsPackageEqual() throws IOException, InvalidSPDXAnalysisExceptio
// note - other test cases will test to make sure isPackageEquals is set for all changes where it should be false
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#isCreatorInformationEqual()}.
- */
public void testIsCreatorInformationEqual() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -1745,9 +1689,6 @@ public void testIsCreatorInformationEqual() throws IOException, InvalidSPDXAnaly
assertTrue(comparer.isDifferenceFound());
}
- /**
- * Test method for {@link org.spdx.compare.SpdxComparer#getUniqueCreators(int, int)}.
- */
public void testGetUniqueCreators() throws IOException, InvalidSPDXAnalysisException, SpdxCompareException {
SpdxComparer comparer = new SpdxComparer();
SpdxDocument doc1 = createTestSpdxDoc(DOC_URIA);
@@ -2056,10 +1997,10 @@ public void testElementEquivalent() throws InvalidSPDXAnalysisException {
Optional element1B = Optional.of(e1b);
Optional none1 = Optional.empty();
Optional none2 = Optional.empty();
- assertTrue(SpdxComparer.elementsEquivalent(element1A, element2A));
- assertFalse(SpdxComparer.elementsEquivalent(element1A, element1B));
- assertFalse(SpdxComparer.elementsEquivalent(element1A, none1));
- assertTrue(SpdxComparer.elementsEquivalent(none1, none2));
+ assertTrue(SpdxComparer.elementsEquivalent(element1A, element2A, new HashMap<>()));
+ assertFalse(SpdxComparer.elementsEquivalent(element1A, element1B, new HashMap<>()));
+ assertFalse(SpdxComparer.elementsEquivalent(element1A, none1, new HashMap<>()));
+ assertTrue(SpdxComparer.elementsEquivalent(none1, none2, new HashMap<>()));
}
public void testFindUniqueChecksums() throws InvalidSPDXAnalysisException {
diff --git a/src/test/java/org/spdx/utility/compare/SpdxItemComparerTest.java b/src/test/java/org/spdx/utility/compare/SpdxItemComparerTest.java
index 215b177f..d2c9ea9a 100644
--- a/src/test/java/org/spdx/utility/compare/SpdxItemComparerTest.java
+++ b/src/test/java/org/spdx/utility/compare/SpdxItemComparerTest.java
@@ -201,7 +201,7 @@ public void testCompare() throws SpdxCompareException, InvalidSPDXAnalysisExcept
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertFalse(comparer.isDifferenceFound());
@@ -249,7 +249,7 @@ public void testIsConcludedLicenseEquals() throws SpdxCompareException, InvalidS
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSEB2, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -269,7 +269,7 @@ public void testIsSeenLicenseEquals() throws SpdxCompareException, InvalidSPDXAn
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, new AnyLicenseInfo[] {LICENSEB1}, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -291,7 +291,7 @@ public void testGetUniqueSeenLicensesB() throws SpdxCompareException, InvalidSPD
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, s2, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -312,7 +312,7 @@ public void testGetUniqueSeenLicensesB() throws SpdxCompareException, InvalidSPD
itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertEquals(0, comparer.getUniqueSeenLicenses(DOCB, DOCA).size());
@@ -328,7 +328,7 @@ public void testGetUniqueSeenLicensesA() throws SpdxCompareException, InvalidSPD
SpdxItem itemB =createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, s2, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -349,7 +349,7 @@ public void testGetUniqueSeenLicensesA() throws SpdxCompareException, InvalidSPD
itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertEquals(0, comparer.getUniqueSeenLicenses(DOCA, DOCB).size());
@@ -362,7 +362,7 @@ public void testIsCommentsEquals() throws SpdxCompareException, InvalidSPDXAnaly
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTB, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -382,7 +382,7 @@ public void testIsCopyrightsEquals() throws SpdxCompareException, InvalidSPDXAna
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTB, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -402,7 +402,7 @@ public void testIsAttributionTextEquals() throws SpdxCompareException, InvalidSP
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTB);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -423,7 +423,7 @@ public void testIsLicenseCommentsEquals() throws SpdxCompareException, InvalidSP
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTB,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -443,7 +443,7 @@ public void testGetItem() throws SpdxCompareException, InvalidSPDXAnalysisExcept
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTB, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertEquals(itemA, comparer.getItem(DOCA));
@@ -459,7 +459,7 @@ public void testIsRelationshipsEquals() throws SpdxCompareException, InvalidSPDX
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, r2,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -481,7 +481,7 @@ public void testGetUniqueRelationshipA() throws SpdxCompareException, InvalidSPD
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, r2,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -501,7 +501,7 @@ public void testGetUniqueRelationshipA() throws SpdxCompareException, InvalidSPD
itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertEquals(0, comparer.getUniqueRelationship(DOCA, DOCB).size());
@@ -517,7 +517,7 @@ public void testGetUniqueRelationshipB() throws SpdxCompareException, InvalidSPD
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, r2,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);;
assertTrue(comparer.isDifferenceFound());
@@ -537,7 +537,7 @@ public void testGetUniqueRelationshipB() throws SpdxCompareException, InvalidSPD
itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertEquals(0, comparer.getUniqueRelationship(DOCB, DOCA).size());
@@ -553,7 +553,7 @@ public void testIsAnnotationsEquals() throws SpdxCompareException, InvalidSPDXAn
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, a2, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -575,7 +575,7 @@ public void testGetUniqueAnnotationsA() throws SpdxCompareException, InvalidSPDX
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, a2, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -595,7 +595,7 @@ public void testGetUniqueAnnotationsA() throws SpdxCompareException, InvalidSPDX
itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertEquals(0, comparer.getUniqueAnnotations(DOCA, DOCB).size());
@@ -611,7 +611,7 @@ public void testGetUniqueAnnotationsB() throws SpdxCompareException, InvalidSPDX
SpdxItem itemB = createGenericItem(DOCB, NAMEA, COMMENTA, a2, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ SpdxItemComparer comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertTrue(comparer.isDifferenceFound());
@@ -631,7 +631,7 @@ public void testGetUniqueAnnotationsB() throws SpdxCompareException, InvalidSPDX
itemB = createGenericItem(DOCB, NAMEA, COMMENTA, ANNOTATIONSA, RELATIONSHIPSA,
LICENSE_CONCLUDEDB, LICENSE_INFO_FROM_FILESB, COPYRIGHTA, LICENSE_COMMENTA,
ATTRIBUTION_TEXTA);
- comparer = new SpdxItemComparer(LICENSE_XLATION_MAP);
+ comparer = new SpdxItemComparer(LICENSE_XLATION_MAP, new HashMap<>());
comparer.addDocumentItem(DOCA, itemA);
comparer.addDocumentItem(DOCB, itemB);
assertEquals(0, comparer.getUniqueAnnotations(DOCB, DOCA).size());