private XResourceBuilder<XResource> createResourceInternal(XResource resource) { XResourceBuilder<XResource> factory = null; for (Capability cap : resource.getCapabilities(ContentNamespace.CONTENT_NAMESPACE)) { XCapability ccap = (XCapability)cap; Map<String, Object> contentAtts = new HashMap<String, Object>(); String mimeType = (String) ccap.getAttribute(ContentNamespace.CAPABILITY_MIME_ATTRIBUTE); if (mimeType != null) { contentAtts.put(ContentNamespace.CAPABILITY_MIME_ATTRIBUTE, mimeType); } InputStream input = getResourceContent(ccap); try { URL contentURL = addResourceContent(input, contentAtts); if (factory == null) { factory = URLResourceBuilderFactory.create(contentURL, contentAtts); } else { factory.addCapability(ContentNamespace.CONTENT_NAMESPACE, contentAtts, null); } } catch (IOException ex) { throw MESSAGES.cannotAddResourceToStorage(ex, mimeType); } } return factory; }