@Override public Resource removeResource(ResourceIdentity resid) { synchronized (resources) { Resource res = resources.remove(resid); if (res != null) { LOGGER.debug("Remove from {}: {}", storeName, res); // Remove resource capabilities for (Capability cap : res.getCapabilities(null)) { CacheKey cachekey = CacheKey.create(cap); Set<Capability> cachecaps = getCachedCapabilities(cachekey); cachecaps.remove(cap); if (cachecaps.isEmpty()) { capabilityCache.remove(cachekey); } } } return res; } }
private int getCapabilityIndex(Capability cap) { return getResource().getCapabilities(cap.getNamespace()).indexOf(cap); }
private static URL getContentURL(Resource resource) { IllegalArgumentAssertion.assertNotNull(resource, "resource"); List<Capability> ccaps = resource.getCapabilities(ContentNamespace.CONTENT_NAMESPACE); if (ccaps.size() != 1) return null; return ccaps.get(0).adapt(ContentCapability.class).getContentURL(); }
public CompositeData getCompositeData(Resource res) throws OpenDataException { String identity = res.getIdentity().toString(); List<Capability> caps = res.getCapabilities(null); List<Requirement> reqs = res.getRequirements(null); List<Object> items = new ArrayList<Object>(); items.add(identity); items.add(new CapabilitiesType().getCompositeData(caps)); items.add(new RequirementsType().getCompositeData(reqs)); Object[] itemValues = items.toArray(new Object[items.size()]); return new CompositeDataSupport(compositeType, getItemNames(), itemValues); }
@Override public Resource addResource(Resource res) { synchronized (resources) { if (getResourceInternal(res.getIdentity()) != null) throw new IllegalArgumentException("Resource already added: " + res); LOGGER.debug("Add to {}: {}", storeName, res); // Add resource capabilites for (Capability cap : res.getCapabilities(null)) { CacheKey cachekey = CacheKey.create(cap); getCachedCapabilities(cachekey).add(cap); } // Log cap/req details if (LOGGER.isDebugEnabled()) { for (Capability cap : res.getCapabilities(null)) { LOGGER.debug(" {}", cap); } for (Requirement req : res.getRequirements(null)) { LOGGER.debug(" {}", req); } } resources.put(res.getIdentity(), res); return res; } }
private static URL getRequiredContentURL(Resource resource) { IllegalArgumentAssertion.assertNotNull(resource, "resource"); List<Capability> ccaps = resource.getCapabilities(ContentNamespace.CONTENT_NAMESPACE); IllegalArgumentAssertion.assertFalse(ccaps.isEmpty(), "Cannot obtain content capability from: " + resource); IllegalArgumentAssertion.assertFalse(ccaps.size() > 1, "Cannot process multiple content capabilities in: " + resource); URL contentURL = ccaps.get(0).adapt(ContentCapability.class).getContentURL(); IllegalArgumentAssertion.assertTrue(contentURL != null, "Cannot obtain content URL from: " + resource); return contentURL; } }
@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; }