Interface AssetHandler
- 
- All Known Implementing Classes:
 AbstractAssetHandler,StandardImageHandler
public interface AssetHandlerTheAssetHandlerinteface specifies the handling of assets, specifically during importing or updating the binary of an asset. 
- 
- 
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description booleancanHandleSubAssets()Indicates if the handler supports processing ofsub assetsvoidcreateThumbnails(Asset asset)Creates thumbnails for this asset.voidcreateThumbnails(Asset asset, Rendition rendition, java.util.Collection<ThumbnailConfig> configs)voidcreateThumbnails(Asset asset, java.util.Collection<ThumbnailConfig> configs)Thumbnails of an asset are created during import/update of an asset and it's original binary.voidexportAsset(Asset asset, java.io.OutputStream stream)This method exports the asset into the givenOutputStream.ExtractedMetadataextractMetadata(Asset asset)This method is used by theExtractMetadataProcessas part of the DAM Update Asset workflow during import or update of an asset.java.awt.image.BufferedImagegetImage(Rendition rendition)java.awt.image.BufferedImagegetImage(Rendition rendition, java.awt.Dimension maxDimension)java.lang.String[]getMimeTypes()This method returns the mime types a particularAssetHandlersupports.java.util.Iterator<? extends AssetRelation>processRelated(Asset asset)extracts and stores the links to the assets related with provided asset.java.util.List<java.lang.String>processSubAssets(Asset asset)Handler implementations may choose to support sub asset creation for the file types it handles.default java.util.List<java.lang.String>processSubAssets(Asset asset, int numSubAssets)Handler implementations may choose to support sub asset creation for the file types it handles. 
 - 
 
- 
- 
Field Detail
- 
log
static final Logger log
 
 - 
 
- 
Method Detail
- 
canHandleSubAssets
boolean canHandleSubAssets()
Indicates if the handler supports processing ofsub assets- Returns:
 trueif handler is able to process sub assets
 
- 
createThumbnails
void createThumbnails(Asset asset, java.util.Collection<ThumbnailConfig> configs) throws java.io.IOException
Thumbnails of an asset are created during import/update of an asset and it's original binary. Currently this method is used by theCreateThumbnailProcessand theCommandLineProcessas part of the DAM Update Asset workflow. Implementations may choose to create asset thumbnails for every entry in thethumbnailConfigslist argument, to not create any thumbnails at all, or to create a generic thumbnail independent of the given config. Thumbnails themselves are renditions of an asset and must be persisted as such (seeAsset.addRendition(String, java.io.InputStream, String)).The thumbnail renditions are created depending on the given configuration list:
Sample:{ height:h1, width: w1, doCenter: true (or false) }, { ... }... final ArrayList<Map<String, Object>> config = new ArrayList<Map<String, Object>>(); config.add(new HashMap<String, Object>() {{ put("width", 140); put("height", 100); put("doCenter", true); }}); config.add(new HashMap<String, Object>() {{ put("width", 80); put("height", 80); put("doCenter", true); }}); handler.createThumbnailsExt( getTiff(), asset.adaptTo(Node.class).getNode("jcr:content/renditions"), session, config); ...- Parameters:
 asset- the asset/file for which the thumbnails are generatedconfigs- thumbnail configurations- Throws:
 java.io.IOException- is thrown in case while an error occurred while fetching the image- Since:
 - 5.4.0
 - See Also:
 Asset.addRendition(String, java.io.InputStream, String),Asset.getRenditions(),),Asset.getRendition(com.day.cq.dam.api.RenditionPicker)
 
- 
createThumbnails
void createThumbnails(Asset asset) throws java.io.IOException
Creates thumbnails for this asset. Which thumbnails are created is automatically derived from the existing thumbnails (renditions with the cq5dam.thumbnail prefix). This essentially amounts to re-creating existing thumbnails.- Parameters:
 asset- The asset for which to create thumbnails.- Throws:
 java.io.IOException- If an error occurred while extracting the image.
 
- 
createThumbnails
void createThumbnails(Asset asset, Rendition rendition, java.util.Collection<ThumbnailConfig> configs) throws java.io.IOException
- Parameters:
 asset- The asset for which to created thumbnails.rendition- The rendition serving as the thumbnail basis.configs- The thumbnail configurations.- Throws:
 java.io.IOException- If an error occurred extracting an image from the rendition.
 
- 
exportAsset
void exportAsset(Asset asset, java.io.OutputStream stream) throws AssetHandlerException
This method exports the asset into the givenOutputStream. TheAssets original binary is served.- Parameters:
 asset- The asset to export.stream- The output stream to export into.- Throws:
 AssetHandlerException- If an error occurred during export.- Since:
 - 5.4.0
 
 
- 
extractMetadata
ExtractedMetadata extractMetadata(Asset asset)
This method is used by theExtractMetadataProcessas part of the DAM Update Asset workflow during import or update of an asset. Implementations must return anExtractedMetadataobject, which may be empty if no metadata is extracted, or contains the metadata values extracted from the binary being imported/updated at the time. TheExtractMetadataProcesswill later save the metadata contained inExtractedMetadatato the asset's metadata node (e.g. /content/dam/geometrixx/banners/banner-mono.png/jcr:content/metadata). Implementations are free to decide which and how many metadata values are extracted.The method argument represents the
Nodeof type nt:file holding the binary content or the DAM Asset node (type dam:Asset), for which its original rendition would be retrieved.- Parameters:
 asset- TheAsset, from whose original binary metadata will extracted.- Returns:
 - The extracted metadata.
 - Since:
 - 5.4.0
 
 
- 
getImage
java.awt.image.BufferedImage getImage(Rendition rendition) throws java.io.IOException
This method retrieves the graphical representation of anAssets givenRendition. For images theBufferedImageof the original image is returned, for other formats the first page is retrieved asBufferedImage- Parameters:
 rendition- The rendition for which to retrieve its graphical representation.- Returns:
 BufferedImageif a graphical representation exists, otherwisenull- Throws:
 java.io.IOException- in case an error is thrown while fetching the buffered image- Since:
 - 5.4.0
 
 
- 
getImage
java.awt.image.BufferedImage getImage(Rendition rendition, java.awt.Dimension maxDimension) throws java.io.IOException
This method retrieves the graphical representation of anAssets givenRendition. For images theBufferedImageof the original image is returned, for other formats the first page is retrieved asBufferedImage.If
maxDimensionis given, the handler should return an image where no dimension extends the given value. This can be used to reduce the memory footprint of large buffered images if the full resolution is not needed.- Parameters:
 rendition- The rendition for which to retrieve its graphical representation.maxDimension- optional constraint for the maximal dimension of the image.- Returns:
 BufferedImageif a graphical representation exists, otherwisenull- Throws:
 java.io.IOException- in case an error is thrown while fetching the buffered image- Since:
 - 5.4.0
 
 
- 
getMimeTypes
java.lang.String[] getMimeTypes()
This method returns the mime types a particularAssetHandlersupports.- Returns:
 - mime type, e.g. image/jpg
 
 
- 
processSubAssets
java.util.List<java.lang.String> processSubAssets(Asset asset)
Handler implementations may choose to support sub asset creation for the file types it handles. The method is called by theCreateSubAssetsProcessduring import/update of an asset and its binary, as part of the DAM Update Asset workflow. Sub assets represent fragments of the original asset, for example every page of a multi-page PDF document are sub assets. Sub assets are stored as assets themselves under the parent asset. Sub assets are stored in the subassets folder of the main asset, e.g. at /content/dam/geometrixx/documents/ECM Artikel.pdf/subassets.The
assetargument represents theNodeof type nt:file holding the binary content or the DAM Asset node (type dam:Asset), for which its original rendition would be retrieved.- Parameters:
 asset- asset to extract sub assets- Returns:
 - List constaining all paths to the newly created assets
 - See Also:
 canHandleSubAssets(),Asset.isSubAsset()
 
- 
processSubAssets
default java.util.List<java.lang.String> processSubAssets(Asset asset, int numSubAssets)
Handler implementations may choose to support sub asset creation for the file types it handles. The method is called by theCreateSubAssetsProcessduring import/update of an asset and its binary, as part of the DAM Update Asset workflow. Sub assets represent fragments of the original asset, for example every page of a multi-page PDF document are sub assets. Sub assets are stored as assets themselves under the parent asset. Sub assets are stored in the subassets folder of the main asset, e.g. at /content/dam/geometrixx/documents/ECM Artikel.pdf/subassets.The
assetargument represents theNodeof type nt:file holding the binary content or the DAM Asset node (type dam:Asset), for which its original rendition would be retrieved.- Parameters:
 asset- asset to extract sub assetsnumSubAssets- number of subassets to generate for complex assets.- Returns:
 - List constaining all paths to the newly created assets
 - See Also:
 canHandleSubAssets(),Asset.isSubAsset()
 
- 
processRelated
java.util.Iterator<? extends AssetRelation> processRelated(Asset asset)
extracts and stores the links to the assets related with provided asset.- Parameters:
 asset- asset to process- Returns:
 - Iterator of 
AssetRelationor an empty iterator if no related assets are available 
 
 - 
 
 -