Ejemplo n.º 1
1
Archivo: Macro.java Proyecto: bramk/bnd
  public String _range(String args[]) {
    verifyCommand(args, _rangeHelp, _rangePattern, 2, 3);
    Version version = null;
    if (args.length >= 3) version = new Version(args[2]);
    else {
      String v = domain.getProperty("@");
      if (v == null) return null;
      version = new Version(v);
    }
    String spec = args[1];

    Matcher m = RANGE_MASK.matcher(spec);
    m.matches();
    String floor = m.group(1);
    String floorMask = m.group(2);
    String ceilingMask = m.group(3);
    String ceiling = m.group(4);

    String left = version(version, floorMask);
    String right = version(version, ceilingMask);
    StringBuilder sb = new StringBuilder();
    sb.append(floor);
    sb.append(left);
    sb.append(",");
    sb.append(right);
    sb.append(ceiling);

    String s = sb.toString();
    VersionRange vr = new VersionRange(s);
    if (!(vr.includes(vr.getHigh()) || vr.includes(vr.getLow()))) {
      domain.error(
          "${range} macro created an invalid range %s from %s and mask %s", s, version, spec);
    }
    return sb.toString();
  }
Ejemplo n.º 2
0
  public SortedSet<ResourceDescriptor> find(String repoId, String bsn, VersionRange range)
      throws Exception {
    TreeSet<ResourceDescriptor> result =
        new TreeSet<ResourceDescriptor>(RESOURCE_DESCRIPTOR_COMPARATOR);

    for (ResourceDescriptorImpl r : filter(repoId, null)) {
      if (!bsn.equals(r.bsn)) continue;

      if (range != null && !range.includes(r.version)) continue;

      result.add(r);
    }
    return result;
  }