code: @Override
      public boolean matches(ICpe target) {
          boolean result = true;
          result &= compareAttributes(this.part, target.getPart());
          result &= compareAttributes(this.vendor, target.getWellFormedVendor());
          result &= compareAttributes(this.product, target.getWellFormedProduct());
          result &= compareAttributes(this.version, target.getWellFormedVersion());
          result &= compareAttributes(this.update, target.getWellFormedUpdate());
          result &= compareAttributes(this.edition, target.getWellFormedEdition());
          result &= compareAttributes(this.language, target.getWellFormedLanguage());
          result &= compareAttributes(this.swEdition, target.getWellFormedSwEdition());
          result &= compareAttributes(this.targetSw, target.getWellFormedTargetSw());
          result &= compareAttributes(this.targetHw, target.getWellFormedTargetHw());
          result &= compareAttributes(this.other, target.getWellFormedOther());
          return result;
      }
docs: Determines if the CPE matches the given target CPE. This does not follow
  the CPE 2.3 Specification exactly as there are cases where undefined
  comparisons will result in either true or false. For instance, 'ANY' will
  match 'm+wild cards' and NA will return false when the target has 'm+wild
  cards'.
  
  @param target the target CPE to evaluate
  @return <code>true</code> if the CPE matches the target; otherwise
  <code>false</code>