@Override @SuppressWarnings("unchecked") public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) { if (type == com.day.cq.dam.api.Asset.class) { return (AdapterType)this.damAsset; } if (type == Resource.class) { return (AdapterType)this.damAsset.adaptTo(Resource.class); } return super.adaptTo(type); }
private long getTotalAssetSize(Asset asset) { long size = asset.getRenditions().stream().collect(Collectors.summingLong(r -> r.getSize())); if (includeSubassets && !asset.isSubAsset()) { size += DamUtil.getSubAssets(asset.adaptTo(Resource.class)).stream().collect(Collectors.summingLong(this::getTotalAssetSize)); } return size; }
private FrozenAsset(Asset head, Revision revision) throws RepositoryException { final Node frozenNode = revision.getVersion().getFrozenNode(); this.head = head; frozenResource = head.adaptTo(Resource.class).getResourceResolver().getResource(frozenNode.getPath()); }
Resource resource = asset.adaptTo(Resource.class); Node metadataNode = resource.getChild("jcr:content/metadata").adaptTo(Node.class); for (String formatName : metadata.getMetadataFormatNames()) {
/** * Get node for storing the renditions additional metadata. * @param asset Asset * @param createIfNotExists if true the node is (tried to be) created automatically if it does not exist * @return Node or null if it does not exist or could not be created */ @SuppressWarnings("null") private Resource getRenditionsMetadataResource(Asset asset, boolean createIfNotExists) { Resource assetResource = asset.adaptTo(Resource.class); String renditionsMetadataPath = assetResource.getPath() + "/" + JCR_CONTENT + "/" + NN_RENDITIONS_METADATA; try { if (createIfNotExists) { return ResourceUtil.getOrCreateResource(assetResource.getResourceResolver(), renditionsMetadataPath, ImmutableMap.<String, Object>of(JCR_PRIMARYTYPE, NT_UNSTRUCTURED), NT_UNSTRUCTURED, false); } else { return assetResource.getChild(renditionsMetadataPath); } } catch (PersistenceException ex) { log.error("Unable to get/create renditions metadata node at " + asset.getPath(), ex); } return null; }
protected void syncSmartTagsToMetadata(final Asset asset, ProcessArgs processArgs) throws PersistenceException { final Resource assetResource = asset.adaptTo(Resource.class); final ResourceResolver resourceResolver = assetResource.getResourceResolver();
wrapper.setExecutableLocator(locator); final Resource assetResource = asset.adaptTo(Resource.class); final Resource metadata = resourceResolver.getResource(assetResource, JcrConstants.JCR_CONTENT + "/" + METADATA_FOLDER);
/** * Updates AEM System properties of the Asset. * @param asset the asset to update. */ private void updateSystemProperties(final Asset asset) { Resource resource = asset.adaptTo(Resource.class); Resource jcrContentResource = resource.getChild(JcrConstants.JCR_CONTENT); if (jcrContentResource == null) { log.error("Could not find the jcr:content node for asset [ {} ]", asset.getPath()); return; } final ModifiableValueMap properties = jcrContentResource.adaptTo(ModifiableValueMap.class); properties.put("cq:name", asset.getName()); properties.put("cq:parentPath", StringUtils.removeEnd(asset.getPath(), "/" + asset.getName())); }
wrapper.setExecutableLocator(locator); final Resource assetResource = asset.adaptTo(Resource.class); final Resource metadata = resourceResolver.getResource(assetResource, JcrConstants.JCR_CONTENT + "/" + METADATA_FOLDER);
/** * @{inheritDoc} **/ @Override public final Resource getPageOrAssetResource(ResourceResolver resourceResolver, String path) { Resource payloadResource = resourceResolver.getResource(path); if (payloadResource == null) { return null; } Asset asset = DamUtil.resolveToAsset(payloadResource); if (asset != null) { return asset.adaptTo(Resource.class); } PageManager pageManager = resourceResolver.adaptTo(PageManager.class); Page page = pageManager.getContainingPage(payloadResource); if (page != null) { return page.adaptTo(Resource.class); } return null; }
private void writeAsset(Asset asset, XMLStreamWriter stream, ResourceResolver resolver) throws XMLStreamException { stream.writeStartElement(NS, "url"); String loc = externalizer.externalLink(resolver, externalizerDomain, asset.getPath()); writeElement(stream, "loc", loc); if (includeLastModified) { long lastModified = asset.getLastModified(); if (lastModified > 0) { writeElement(stream, "lastmod", DATE_FORMAT.format(lastModified)); } } Resource contentResource = asset.adaptTo(Resource.class).getChild(JcrConstants.JCR_CONTENT); if (contentResource != null) { final ValueMap properties = contentResource.getValueMap(); writeFirstPropertyValue(stream, "changefreq", changefreqProperties, properties); writeFirstPropertyValue(stream, "priority", priorityProperties, properties); } stream.writeEndElement(); }
Resource metadataResource = asset.adaptTo(Resource.class).getChild(metadataPath); if (metadataResource != null) { ValueMap props = metadataResource.getValueMap();
void saveMigrationInfo(final Source source, final Asset asset) { Resource assetResource = asset.adaptTo(Resource.class); if (assetResource != null) { assetResource = assetResource.getChild(JcrConstants.JCR_CONTENT); } if (assetResource != null) { ValueMap assetProperties = assetResource.adaptTo(ModifiableValueMap.class); if (assetProperties != null) { if (!StringUtils.equals(asset.getName(), source.getName())) { assetProperties.put(JcrConstants.JCR_TITLE, source.getName()); } assetProperties.put(PN_MIGRATED_FROM, source.getElement().getItemName()); } } }
DamUtil.getSubAssets(asset.adaptTo(Resource.class)).stream().forEach(subasset -> { tabulate(folderPath, Column.subasset_count, 1); long size = subasset.getRenditions().stream().collect(Collectors.summingLong(Rendition::getSize));
private void writeAsset(Asset asset, XMLStreamWriter stream, ResourceResolver resolver) throws XMLStreamException { stream.writeStartElement(NS, "url"); String loc = externalizer.externalLink(resolver, externalizerDomain, asset.getPath()); writeElement(stream, "loc", loc); if (includeLastModified) { long lastModified = asset.getLastModified(); if (lastModified > 0) { writeElement(stream, "lastmod", DATE_FORMAT.format(lastModified)); } } Resource contentResource = asset.adaptTo(Resource.class).getChild(JcrConstants.JCR_CONTENT); if (contentResource != null) { if (includeInheritValue) { HierarchyNodeInheritanceValueMap hierarchyNodeInheritanceValueMap = new HierarchyNodeInheritanceValueMap( contentResource); writeFirstPropertyValue(stream, "changefreq", changefreqProperties, hierarchyNodeInheritanceValueMap); writeFirstPropertyValue(stream, "priority", priorityProperties, hierarchyNodeInheritanceValueMap); } else { ValueMap properties = contentResource.getValueMap(); writeFirstPropertyValue(stream, "changefreq", changefreqProperties, properties); writeFirstPropertyValue(stream, "priority", priorityProperties, properties); } } stream.writeEndElement(); }
/** * Gets the ModifiableValueMap for the Asset's metadata node. * * @param asset the asset to get the properties for * @return the ModifiableValueMap for the Asset's metadata node */ private Node getMetadataProperties(final Asset asset, final String relPropertyPath) throws RepositoryException, CsvAssetImportException { String metadataResourcePath = JcrConstants.JCR_CONTENT + "/" + DamConstants.METADATA_FOLDER; Resource assetResource = asset.adaptTo(Resource.class); Resource metadataResource = assetResource.getChild(metadataResourcePath); if (metadataResource == null) { throw new CsvAssetImportException("Could not find metadata resource at [ " + assetResource.getPath() + "/" + metadataResourcePath + " ]. This is very strange. Skipping row as failure however some dam:Asset nodes for this asset may have been created."); } else if (!StringUtils.contains(relPropertyPath, "/")) { return metadataResource.adaptTo(Node.class); } else { ResourceResolver resourceResolver = assetResource.getResourceResolver(); String relPropertyPathPrefix = StringUtils.substringBeforeLast(relPropertyPath, "/"); String canonicalPath = com.day.text.Text.makeCanonicalPath(metadataResource.getPath() + "/" + relPropertyPathPrefix); Node node = JcrUtils.getOrCreateByPath(canonicalPath, JcrConstants.NT_UNSTRUCTURED, resourceResolver.adaptTo(Session.class)); Resource relativeResource = resourceResolver.getResource(node.getPath()); return relativeResource.adaptTo(Node.class); } }
asset.adaptTo(Resource.class).adaptTo(Node.class).remove(); log.info("Removed existing asset so it can be re-created"); asset = this.createAsset(assetManager, absTargetPath, fileInputStream, mimeType);