Package com.day.cq.dam.commons.handler
Class AbstractAssetHandler
- java.lang.Object
-
- com.day.cq.dam.commons.handler.AbstractAssetHandler
-
- All Implemented Interfaces:
AssetHandler
- Direct Known Subclasses:
StandardImageHandler
public abstract class AbstractAssetHandler extends java.lang.Object implements AssetHandler
TheAbstractAssetHandler
serves as basis for all other asset handler implementations and provides common used functionality.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
PROPERTY_DEACTIVATED_MIME_TYPES
The property for deactivated mime types.
-
Constructor Summary
Constructors Constructor Description AbstractAssetHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canHandleSubAssets()
Indicates if the handler supports processing ofsub assets
void
createThumbnails(Asset asset)
Creates thumbnails for this asset.void
createThumbnails(Asset asset, Rendition rendition, java.util.Collection<ThumbnailConfig> configs)
void
createThumbnails(Asset asset, java.util.Collection<ThumbnailConfig> configs)
Thumbnails of an asset are created during import/update of an asset and it's original binary.void
exportAsset(Asset asset, java.io.OutputStream stream)
This method exports the asset into the givenOutputStream
.java.awt.image.BufferedImage
getImage(Rendition rendition)
java.awt.image.BufferedImage
getImage(Rendition rendition, java.awt.Dimension maxDimension)
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.-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.day.cq.dam.api.handler.AssetHandler
extractMetadata, getMimeTypes
-
-
-
-
Method Detail
-
createThumbnails
public 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 theCreateThumbnailProcess
and theCommandLineProcess
as part of the DAM Update Asset workflow. Implementations may choose to create asset thumbnails for every entry in thethumbnailConfigs
list 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); ...
- Specified by:
createThumbnails
in interfaceAssetHandler
- 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- See Also:
Asset.addRendition(String, java.io.InputStream, String)
,Asset.getRenditions()
,)
,Asset.getRendition(com.day.cq.dam.api.RenditionPicker)
-
createThumbnails
public 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.- Specified by:
createThumbnails
in interfaceAssetHandler
- Parameters:
asset
- The asset for which to create thumbnails.- Throws:
java.io.IOException
- If an error occurred while extracting the image.
-
createThumbnails
public void createThumbnails(Asset asset, Rendition rendition, java.util.Collection<ThumbnailConfig> configs) throws java.io.IOException
- Specified by:
createThumbnails
in interfaceAssetHandler
- 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.
-
canHandleSubAssets
public boolean canHandleSubAssets()
Indicates if the handler supports processing ofsub assets
- Specified by:
canHandleSubAssets
in interfaceAssetHandler
- Returns:
true
if handler is able to process sub assets
-
processSubAssets
public java.util.List<java.lang.String> processSubAssets(Asset asset)
Description copied from interface:AssetHandler
Handler implementations may choose to support sub asset creation for the file types it handles. The method is called by theCreateSubAssetsProcess
during 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
asset
argument represents theNode
of type nt:file holding the binary content or the DAM Asset node (type dam:Asset), for which its original rendition would be retrieved.- Specified by:
processSubAssets
in interfaceAssetHandler
- Parameters:
asset
- asset to extract sub assets- Returns:
- List constaining all paths to the newly created assets
- See Also:
AssetHandler.canHandleSubAssets()
,Asset.isSubAsset()
-
processRelated
public java.util.Iterator<? extends AssetRelation> processRelated(Asset asset)
Description copied from interface:AssetHandler
extracts and stores the links to the assets related with provided asset.- Specified by:
processRelated
in interfaceAssetHandler
- Parameters:
asset
- asset to process- Returns:
- Iterator of
AssetRelation
or an empty iterator if no related assets are available
-
getImage
public java.awt.image.BufferedImage getImage(Rendition rendition) throws java.io.IOException
Description copied from interface:AssetHandler
This method retrieves the graphical representation of anAsset
s givenRendition
. For images theBufferedImage
of the original image is returned, for other formats the first page is retrieved asBufferedImage
- Specified by:
getImage
in interfaceAssetHandler
- Parameters:
rendition
- The rendition for which to retrieve its graphical representation.- Returns:
BufferedImage
if a graphical representation exists, otherwisenull
- Throws:
java.io.IOException
- in case an error is thrown while fetching the buffered image
-
getImage
public java.awt.image.BufferedImage getImage(Rendition rendition, java.awt.Dimension maxDimension) throws java.io.IOException
Description copied from interface:AssetHandler
This method retrieves the graphical representation of anAsset
s givenRendition
. For images theBufferedImage
of the original image is returned, for other formats the first page is retrieved asBufferedImage
.If
maxDimension
is 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.- Specified by:
getImage
in interfaceAssetHandler
- Parameters:
rendition
- The rendition for which to retrieve its graphical representation.maxDimension
- optional constraint for the maximal dimension of the image.- Returns:
BufferedImage
if a graphical representation exists, otherwisenull
- Throws:
java.io.IOException
- in case an error is thrown while fetching the buffered image
-
exportAsset
public void exportAsset(Asset asset, java.io.OutputStream stream) throws AssetHandlerException
This method exports the asset into the givenOutputStream
. TheAsset
s original binary is served.- Specified by:
exportAsset
in interfaceAssetHandler
- Parameters:
asset
- The asset to export.stream
- The output stream to export into.- Throws:
AssetHandlerException
- If an error occurred during export.
-
-