@Override public Capability addContentCapability(URL contentURL) { IllegalArgumentAssertion.assertNotNull(contentURL, "contentURL"); Map<String, Object> atts = Collections.singletonMap(ContentNamespace.CAPABILITY_URL_ATTRIBUTE, (Object)contentURL); return addCapability(ContentNamespace.CONTENT_NAMESPACE, atts, null); }
@Override public Capability addIdentityCapability(String symbolicName, Version version) { IllegalArgumentAssertion.assertNotNull(symbolicName, "symbolicName"); return addIdentityCapability(symbolicName, version, null, null); }
@Override public Requirement addIdentityRequirement(String symbolicName) { IllegalArgumentAssertion.assertNotNull(symbolicName, "symbolicName"); return addIdentityRequirement(symbolicName, null, null, null); }
@Override public Capability addCapability(String namespace, Map<String, Object> atts, Map<String, String> dirs) { IllegalArgumentAssertion.assertNotNull(namespace, "namespace"); AbstractResource resource = getResourceInternal(); AbstractCapability cap = createCapability(resource, namespace, mutableAttributes(atts), mutableDirectives(dirs)); resource.addCapability(cap); return cap; }
@Override public Requirement addRequirement(String namespace, Map<String, Object> atts, Map<String, String> dirs) { IllegalArgumentAssertion.assertNotNull(namespace, "namespace"); AbstractResource resource = getResourceInternal(); AbstractRequirement req = createRequirement(resource, namespace, mutableAttributes(atts), mutableDirectives(dirs)); resource.addRequirement(req); return req; }
protected String parseParameterizedValue(String line, Map<String, Object> atts, Map<String, String> dirs) { IllegalArgumentAssertion.assertNotNull(line, "line"); String mainvalue = null; for (String part : ElementParser.parseDelimitedString(line, ';', true)) { if (part.indexOf(":=") > 0) { int index = part.indexOf(":="); String key = part.substring(0, index); String value = unquote(part.substring(index + 2)); dirs.put(key.trim(), value); } else if (part.indexOf('=') > 0) { int index = part.indexOf('='); String keystr = part.substring(0, index); Object value = getAttributeValue(keystr, part.substring(index + 1)); atts.put(getAttributeKey(keystr), value); } else if (mainvalue == null) { mainvalue = part; } else { throw new IllegalArgumentException("Cannot parse: " + line); } } return mainvalue; }
@Override public ResourceBuilder fromResource(Resource res) { for (Capability cap : res.getCapabilities(null)) { addCapability(cap.getNamespace(), cap.getAttributes(), cap.getDirectives()); } for (Requirement req : res.getRequirements(null)) { addRequirement(req.getNamespace(), req.getAttributes(), req.getDirectives()); } return this; }
@Override public boolean isValid() { AbstractResource resource = getResourceInternal(); return resource.isValid(); }
@Override public Requirement addRequirement(String namespace, String nsvalue) { IllegalArgumentAssertion.assertNotNull(namespace, "namespace"); IllegalArgumentAssertion.assertNotNull(nsvalue, "nsvalue"); return addRequirement(namespace, Collections.singletonMap(namespace, (Object)nsvalue), null); }
private AbstractResource getResourceInternal() { if (resource == null) { resource = createResource(); } return resource; }
@Override public Resource getMutableResource() { AbstractResource resource = getResourceInternal(); resource.assertMutable(); return resource; }
@Override public Requirement addIdentityRequirement(String symbolicName, VersionRange range, Map<String, Object> atts, Map<String, String> dirs) { IllegalArgumentAssertion.assertNotNull(symbolicName, "symbolicName"); Requirement ireq = addRequirement(IdentityNamespace.IDENTITY_NAMESPACE, symbolicName); if (range != null) { ireq.getAttributes().put(IdentityNamespace.CAPABILITY_VERSION_ATTRIBUTE, range); } if (atts != null) { ireq.getAttributes().putAll(atts); } if (dirs != null) { ireq.getDirectives().putAll(dirs); } return ireq; }
@Override public Capability addContentCapability(InputStream content) { IllegalArgumentAssertion.assertNotNull(content, "content"); Map<String, Object> atts = Collections.singletonMap(ContentNamespace.CAPABILITY_STREAM_ATTRIBUTE, (Object)content); return addCapability(ContentNamespace.CONTENT_NAMESPACE, atts, null); }
@Override public Capability addIdentityCapability(String symbolicName, String version) { IllegalArgumentAssertion.assertNotNull(symbolicName, "symbolicName"); return addIdentityCapability(symbolicName, version != null ? Version.parseVersion(version) : null, null, null); }
@Override public Requirement addIdentityRequirement(String symbolicName, VersionRange range) { IllegalArgumentAssertion.assertNotNull(symbolicName, "symbolicName"); return addIdentityRequirement(symbolicName, range, null, null); }
@Override public Resource getResource() { AbstractResource resource = getResourceInternal(); resource.validate(); resource.setMutable(false); return resource; }
@Override public Capability addContentCapability(URL contentURL, Map<String, Object> atts, Map<String, String> dirs) { IllegalArgumentAssertion.assertNotNull(contentURL, "contentURL"); Map<String, Object> exatts = new LinkedHashMap<String, Object>(); if (atts != null) { exatts.putAll(atts); } exatts.put(ContentNamespace.CAPABILITY_URL_ATTRIBUTE, contentURL); return addCapability(ContentNamespace.CONTENT_NAMESPACE, exatts, dirs); }
public Capability addIdentityCapability(MavenCoordinates mavenid) { Capability icap = addIdentityCapability(MavenUtils.getSymbolicName(mavenid), MavenUtils.getVersion(mavenid), null, null); icap.getAttributes().put(ContentNamespace.CAPABILITY_MAVEN_IDENTITY_ATTRIBUTE, mavenid); return icap; }
@Override public Requirement addIdentityRequirement(String symbolicName, String range) { IllegalArgumentAssertion.assertNotNull(symbolicName, "symbolicName"); return addIdentityRequirement(symbolicName, range != null ? new VersionRange(range) : null, null, null); }
@Override public Capability addContentCapability(InputStream content, Map<String, Object> atts, Map<String, String> dirs) { IllegalArgumentAssertion.assertNotNull(content, "content"); Map<String, Object> exatts = new LinkedHashMap<String, Object>(); if (atts != null) { exatts.putAll(atts); } exatts.put(ContentNamespace.CAPABILITY_STREAM_ATTRIBUTE, content); return addCapability(ContentNamespace.CONTENT_NAMESPACE, exatts, dirs); }