code: public boolean isSatisfiedby(ClientlibLink link) {
          if (!type.equals(link.type)) return false;
          if (isCategory()) {
              if (!link.isCategory() || !category.equals(link.path)) return false;
          } else if (isExternalUri()) {
              if (!link.isExternalUri() || !externalUri.equals(link.path)) return false;
          } else {
              if (link.isCategory() || link.isExternalUri() || !pattern.matcher(link.path).matches()) return false;
          }
          if (!properties.equals(link.properties))
              return false;
          return true;
      }
docs: Checks whether the link matches this, up to version patterns.