Class SpdxItemComparer

java.lang.Object
org.spdx.utility.compare.SpdxItemComparer
Direct Known Subclasses:
SpdxFileComparer, SpdxPackageComparer, SpdxSnippetComparer

public class SpdxItemComparer extends Object
Compares two SPDX items

The compare(itemA, itemB) method will perform the comparison and store the results. isDifferenceFound() will return true of any differences were found.

Author:
Gary O'Neall
  • Field Details

    • name

      protected String name
    • documentItem

      protected Map<org.spdx.library.model.v2.SpdxDocument,org.spdx.library.model.v2.SpdxItem> documentItem
      Map of SPDX document to Items
    • extractedLicenseIdMap

      protected Map<org.spdx.library.model.v2.SpdxDocument,Map<org.spdx.library.model.v2.SpdxDocument,Map<String,String>>> extractedLicenseIdMap
      Mapping of all extracted license info ID's between all SPDX documents included in the comparer
  • Constructor Details

    • SpdxItemComparer

      public SpdxItemComparer(Map<org.spdx.library.model.v2.SpdxDocument,Map<org.spdx.library.model.v2.SpdxDocument,Map<String,String>>> extractedLicenseIdMap)
  • Method Details

    • addDocumentItem

      public void addDocumentItem(org.spdx.library.model.v2.SpdxDocument spdxDocument, org.spdx.library.model.v2.SpdxItem spdxItem) throws SpdxCompareException, org.spdx.core.InvalidSPDXAnalysisException
      Add a new item to the comparer and compare the contents of the item to all items which have been previously added
      Parameters:
      spdxDocument - document containing the item
      spdxItem - item to add
      Throws:
      SpdxCompareException - on compare error
      org.spdx.core.InvalidSPDXAnalysisException - on SPDX parsing error
    • isConcludedLicenseEquals

      public boolean isConcludedLicenseEquals() throws SpdxCompareException
      Returns:
      the concludedLicenseEquals
      Throws:
      SpdxCompareException
    • isSeenLicenseEquals

      public boolean isSeenLicenseEquals() throws SpdxCompareException
      Returns:
      the seenLicenseEquals
      Throws:
      SpdxCompareException
    • getUniqueSeenLicenses

      public List<org.spdx.library.model.v2.license.AnyLicenseInfo> getUniqueSeenLicenses(org.spdx.library.model.v2.SpdxDocument docA, org.spdx.library.model.v2.SpdxDocument docB) throws SpdxCompareException
      Get any licenses found in docA but not in docB
      Parameters:
      docA - A document to compare
      docB - B document to compare
      Returns:
      any licenses found in docA but not in docB
      Throws:
      SpdxCompareException - on compare errors
    • isCommentsEquals

      public boolean isCommentsEquals() throws SpdxCompareException
      Returns:
      the commentsEquals
      Throws:
      SpdxCompareException
    • isCopyrightsEquals

      public boolean isCopyrightsEquals() throws SpdxCompareException
      Returns:
      the copyrightsEquals
      Throws:
      SpdxCompareException
    • isLicenseCommentsEquals

      public boolean isLicenseCommentsEquals() throws SpdxCompareException
      Returns:
      the licenseCommentsEquals
      Throws:
      SpdxCompareException
    • isLicenseCommmentsEquals

      @Deprecated public boolean isLicenseCommmentsEquals() throws SpdxCompareException
      Deprecated.
      Returns:
      the licenseCommentsEquals
      Throws:
      SpdxCompareException
    • checkInProgress

      protected void checkInProgress() throws SpdxCompareException
      checks to make sure there is not a compare in progress
      Throws:
      SpdxCompareException - on compare errors
    • checkCompareMade

      protected void checkCompareMade() throws SpdxCompareException
      Throws:
      SpdxCompareException - if no comparisons have been made
    • isDifferenceFound

      public boolean isDifferenceFound() throws SpdxCompareException
      Returns:
      true if any difference is found in the item
      Throws:
      SpdxCompareException - on compare error
    • isInProgress

      public boolean isInProgress() throws SpdxCompareException
      Returns:
      the inProgress
      Throws:
      SpdxCompareException
    • getItem

      public org.spdx.library.model.v2.SpdxItem getItem(org.spdx.library.model.v2.SpdxDocument doc) throws SpdxCompareException
      Get the item contained by the document doc
      Parameters:
      doc - document containing the item
      Returns:
      the item contained by the document doc
      Throws:
      SpdxCompareException - on compare error
    • isRelationshipsEquals

      public boolean isRelationshipsEquals() throws SpdxCompareException
      Returns:
      the relationshipsEquals
      Throws:
      SpdxCompareException
    • getUniqueRelationship

      public List<org.spdx.library.model.v2.Relationship> getUniqueRelationship(org.spdx.library.model.v2.SpdxDocument docA, org.spdx.library.model.v2.SpdxDocument docB) throws SpdxCompareException
      Get relationships that are in docA but not in docB
      Parameters:
      docA - A document to compare
      docB - B document to compare
      Returns:
      relationships that are in docA but not in docB
      Throws:
      SpdxCompareException - on compare error
    • isAnnotationsEquals

      public boolean isAnnotationsEquals() throws SpdxCompareException
      Returns:
      the annotationsEquals
      Throws:
      SpdxCompareException
    • isAttributionTextEquals

      public boolean isAttributionTextEquals() throws SpdxCompareException
      Returns:
      the attributionTextEquals
      Throws:
      SpdxCompareException - on compare error
    • getUniqueAnnotations

      public List<org.spdx.library.model.v2.Annotation> getUniqueAnnotations(org.spdx.library.model.v2.SpdxDocument docA, org.spdx.library.model.v2.SpdxDocument docB) throws SpdxCompareException
      Get annotations that are in docA but not in docB
      Parameters:
      docA - A document to compare
      docB - B document to compare
      Returns:
      annotations that are in docA but not in docB
      Throws:
      SpdxCompareException - on compare error