public interface AssetProvider
Folder
s and Asset
s from a particular source.
Specifics of the storage of these items are left to implementations.
While most provider implementations will only use the ItemKey.assetId
field of keys passed to the various
get methods, the entire key object is passed for consistency and flexibility, making it possible to implement
delegating/aggregating providers, for example.Modifier and Type | Interface and Description |
---|---|
static class |
AssetProvider.AssetNotFoundException
Thrown when the given ItemKey can't be found.
|
static class |
AssetProvider.IllegalItemKeyException
Thrown when the given ItemKey isn't usable by the provider.
|
Modifier and Type | Method and Description |
---|---|
Asset |
getAsset(ItemKey assetKey)
Cast-less convenience method for
getItem(ItemKey) . |
Folder |
getFolder(ItemKey folderKey)
Cast-less convenience method for
getItem(ItemKey) . |
String |
getIdentifier()
Return the AssetProvider identifier.
|
Item |
getItem(ItemKey itemKey)
Returns the item associated with the given
ItemKey , regardless of its type. |
AssetRenderer |
getRendererFor(Asset asset,
com.google.common.net.MediaType to)
Returns an appropriate
AssetRenderer if this provider has specific renderers, or null if there is none. |
Folder |
getRootFolder()
The top-most folder available from this AssetProvider.
|
Iterator<Item> |
list(AssetQuery assetQuery)
Returns an iterator over the results matching the given
AssetQuery . |
boolean |
provides(com.google.common.net.MediaType mediaType)
Whether this provider provides or allows the given MediaType.
|
boolean |
supports(AssetProviderCapability capability)
Returns true if the provider supports the given
AssetProviderCapability . |
boolean |
supports(Class<? extends AssetMetadata> metaData)
Whether this provider supports the given
AssetMetadata type. |
String getIdentifier()
boolean supports(AssetProviderCapability capability)
AssetProviderCapability
.boolean supports(Class<? extends AssetMetadata> metaData)
AssetMetadata
type.boolean provides(com.google.common.net.MediaType mediaType)
Asset getAsset(ItemKey assetKey) throws AssetProvider.AssetNotFoundException, AssetProvider.IllegalItemKeyException
getItem(ItemKey)
.IllegalArgumentException
- if the key does not correspond to an Item of the Asset type.AssetProvider.AssetNotFoundException
AssetProvider.IllegalItemKeyException
Folder getFolder(ItemKey folderKey) throws AssetProvider.AssetNotFoundException, AssetProvider.IllegalItemKeyException
getItem(ItemKey)
.IllegalArgumentException
- if the key does not correspond to an Item of the Folder type.AssetProvider.AssetNotFoundException
AssetProvider.IllegalItemKeyException
Item getItem(ItemKey itemKey) throws AssetProvider.AssetNotFoundException, AssetProvider.IllegalItemKeyException
ItemKey
, regardless of its type.IllegalArgumentException
- if the key does not correspond to an Item of the Folder or Asset type.AssetProvider.AssetNotFoundException
AssetProvider.IllegalItemKeyException
Folder getRootFolder()
Folder.isRoot()
.Iterator<Item> list(AssetQuery assetQuery)
AssetQuery
. Depending on the
specific values of the AssetQuery
and the AssetProvider
implementation,
this might list direct children, execute a query, ...
It is up to the provider to validate the query - some combinations of criteria might not be supported by all
providers.AssetProviderCapability
AssetRenderer getRendererFor(Asset asset, com.google.common.net.MediaType to)
AssetRenderer
if this provider has specific renderers, or null if there is none.AssetProviderRegistry#getRendererFor(Asset, com.google.common.net.MediaType)}, which is what client
code should be using rather than this method here.
TODO: overdoing it if we move this to abstract to hide it from client code ?
Copyright © 2020 Magnolia International Ltd.. All rights reserved.