@Override public Map<String, Object> getAttributes() { return requirement.getAttributes(); }
@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; }
static CacheKey create(Requirement req) { String namespace = req.getNamespace(); String nsvalue = (String) req.getAttributes().get(namespace); return new CacheKey(namespace, nsvalue); }
@Override public boolean match(Capability cap, Requirement req) { Map<String, Object> reqatts = req.getAttributes(); Map<String, Object> capatts = cap.getAttributes(); Version version = AbstractCapability.getVersion(cap, IdentityNamespace.CAPABILITY_VERSION_ATTRIBUTE); matches = range.includes(version); reqatts = new HashMap<String, Object>(req.getAttributes()); reqatts.remove(IdentityNamespace.CAPABILITY_VERSION_ATTRIBUTE); capatts = new HashMap<String, Object>(cap.getAttributes());
public CompositeData getCompositeData(Requirement req) throws OpenDataException { String namespace = req.getNamespace(); CompositeData[] attsData = new AttributesType().getCompositeData(req.getAttributes()); CompositeData[] dirsData = new DirectivesType().getCompositeData(req.getDirectives()); Object[] itemValues = new Object[] { namespace, attsData, dirsData }; return new CompositeDataSupport(compositeType, getItemNames(), itemValues); }
@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; }