Class 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
    • Field Detail

      • 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 Detail

      • SpdxItemComparer

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

      • 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
      • 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
      • 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
      • 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
      • 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