Example #1
0
 /**
  * Compares two licenses from potentially two different documents which may have different license
  * ID's for the same license
  *
  * @param license1
  * @param license2
  * @param xlationMap Mapping the license ID's from license 1 to license 2
  * @return
  * @throws SpdxCompareException
  */
 public static boolean isLicenseEqual(
     AnyLicenseInfo license1, AnyLicenseInfo license2, Map<String, String> xlationMap)
     throws SpdxCompareException {
   if (license1 instanceof ConjunctiveLicenseSet) {
     if (!(license2 instanceof ConjunctiveLicenseSet)) {
       return false;
     } else {
       return isLicenseSetsEqual(
           (ConjunctiveLicenseSet) license1, (ConjunctiveLicenseSet) license2, xlationMap);
     }
   } else if (license1 instanceof DisjunctiveLicenseSet) {
     if (!(license2 instanceof DisjunctiveLicenseSet)) {
       return false;
     } else {
       return isLicenseSetsEqual(
           (DisjunctiveLicenseSet) license1, (DisjunctiveLicenseSet) license2, xlationMap);
     }
   } else if (license1 instanceof ExtractedLicenseInfo) {
     if (!(license2 instanceof ExtractedLicenseInfo)) {
       return false;
     } else {
       String licenseid1 = ((ExtractedLicenseInfo) license1).getLicenseId();
       String licenseid2 = ((ExtractedLicenseInfo) license2).getLicenseId();
       String xlatedLicenseId = xlationMap.get(licenseid1);
       if (xlatedLicenseId == null) {
         return false; // no equivalent license was found
       }
       return xlatedLicenseId.equals(licenseid2);
     }
   } else {
     return license1.equals(license2);
   }
 }
 /* (non-Javadoc)
  * @see org.spdx.rdfparser.license.AnyLicenseInfo#equals(java.lang.Object)
  */
 @Override
 public boolean equals(Object o) {
   if (o == this) {
     return true;
   }
   if (!(o instanceof ConjunctiveLicenseSet)) {
     // covers o == null, as null is not an instance of anything
     return false;
   }
   ConjunctiveLicenseSet comp = (ConjunctiveLicenseSet) o;
   AnyLicenseInfo[] compInfos = comp.getFlattenedMembers();
   AnyLicenseInfo[] myInfos = this.getFlattenedMembers();
   if (compInfos.length != myInfos.length) {
     return false;
   }
   for (int j = 0; j < myInfos.length; j++) {
     AnyLicenseInfo li = myInfos[j];
     boolean found = false;
     for (int i = 0; i < compInfos.length; i++) {
       if (li.equals(compInfos[i])) {
         found = true;
         break;
       }
     }
     if (!found) {
       return false;
     }
   }
   return true;
 }