public static RequirementBuilder createRequirementFromCapability(Capability cap) { RequirementBuilder req = new RequirementBuilder(cap.getNamespace()); StringBuilder sb = new StringBuilder("(&"); for (Entry<String, Object> e : cap.getAttributes().entrySet()) { Object v = e.getValue(); if (v instanceof Version || e.getKey().equals("version")) { VersionRange r = new VersionRange(v.toString()); String filter = r.toFilter(); sb.append(filter); } else sb.append("(").append(e.getKey()).append("=").append(v).append(")"); } sb.append(")"); req.and(sb.toString()); return req; }
public static CapReqBuilder clone(Requirement requirement) throws Exception { RequirementBuilder builder = new RequirementBuilder(requirement.getNamespace()); builder.addAttributes(requirement.getAttributes()); builder.addDirectives(requirement.getDirectives()); return builder; }