public class AssetDataManagerImpl extends Object implements AssetDataManager
AssetDataManager
implementation class The class has two variant of read methods: 1. read with a set of attribute names to retrieve specified - in this case, attribute names are specified either directly in the method signature, for example readAttributes (AssetId id, List<String> attributeNames) or in the query read(Query query). We consider the user is intending to read only the attribute specified (immediateonly) and do not want to retrieve the inherited data from parent 2. read with only id specified but no attribute names - in this case, we assume that user wants all the attributes with inherited values AssetDataManagerImpl is the entry point for retrieving Content Server asset data and it defaults the actual operatoin of reading the data to the specific strategies for each different asset types. Each asset read strategy is an implementation of AssetDataReadStrategy interface and deal with a special type of asset. At the heart of all the read strategies is BasicAssetDataReadStrategy, which reads all the basic asset types including some system asset types like Page, Collection, Query, Link, DimensionSet, and Dimension, sample asset types including Article, Linkset , and Image, Asset Maker asset types, Flex Attributes, Flex Parent definitions, Flex Definitions, Flex Filters, and the basic values of other asset types. On top of BasicAssetReadStrategy, we have FlexAssetDataReadStrategy and several other asset data read strategies to read other special asset types like Template, CSElement, AdvCols(Recommendation), Promotions, HField, HistoryVals, ScalarValsConstructor and Description |
---|
AssetDataManagerImpl(ICS ics) |
Modifier and Type | Method and Description |
---|---|
MutableAssetData |
deepCopy(AssetData example)
Creates a deep copy of an AssetData object, copying all the data
|
void |
delete(List<AssetId> data)
Deletes a given list of AssetIds from database.
|
static AssetReader |
getAssetBuilder(ICS ics) |
void |
insert(List<AssetData> data)
Inserts a given List of AssetData instances in the database and new assets will be created with the data from the list After the operation complete, the passed in AssetData in the list will be populated with the newly created Asset id
|
AssetData |
newAssetData(String assetTypeName, AssetData example)
Creates an instance of AssetData (with copied instances of AttributeData from the example AssetData)
|
MutableAssetData |
newAssetData(String assetTypeName, String subtype)
Create an empty instance of AssetData with empty instance of AttributeData
|
AttributeData |
newAttribiteData(String attributeName, String assetTypeName, String subtype)
Creates an empty instance of AttributeData (of appropriate type and default)
|
AttributeData |
newAttributeData(AttributeDef attributeDef)
Create an attributeData with an attribute definition specified
|
AttributeData |
newAttributeData(String attributeName, String assetTypeName, String subtype)
Creates an empty instance of AttributeData (of appropriate type and default)
|
Iterable<AssetData> |
read(List<AssetId> ids)
Reads asset data for all given
AssetId s. |
Iterable<AssetData> |
read(Query query)
read a list of Asset Data that satisfy the query.
|
AssetData |
readAttributes(AssetId id, List<String> attributeNames)
Reads given set attribute data and returns an AssetData instance containing them.
|
Iterable<MutableAssetData> |
readForUpdate(List<AssetId> ids)
read a list of asset data to update
|
Iterable<MutableAssetData> |
readForUpdate(Query query)
Reads all asset data that satisfies a given Query and results in mutable results.
|
void |
update(List<AssetData> data)
Updates a given list of AssetData in the database.
|
void |
update(List<AssetData> data, boolean keepCheckedOut)
Updates a given list of AssetData in the database.
|
public AssetDataManagerImpl(ICS ics)
public static AssetReader getAssetBuilder(ICS ics)
public Iterable<AssetData> read(Query query) throws AssetAccessException
read
in interface AssetDataManager
query
- the Query objectAssetAccessException
- an AssetAccessExceptionpublic Iterable<MutableAssetData> readForUpdate(Query query) throws AssetAccessException
AssetDataManager
readForUpdate
in interface AssetDataManager
query
- Query to be satisfied.AssetAccessException
- is the layer specific failures and wraps other internal exceptions.public Iterable<AssetData> read(List<AssetId> ids) throws AssetAccessException, AssetNotExistException
AssetDataManager
AssetId
s.read
in interface AssetDataManager
ids
- the list of asset ids to readAssetAccessException
- rethrown excetpionAssetNotExistException
- an AssetNotExistExceptionpublic Iterable<MutableAssetData> readForUpdate(List<AssetId> ids) throws AssetAccessException, AssetNotExistException
readForUpdate
in interface AssetDataManager
ids
- the list of asset ids to readAssetAccessException
- an AssetAccessExceptionAssetNotExistException
- an AssetNotExistExceptionpublic AssetData readAttributes(AssetId id, List<String> attributeNames) throws AssetAccessException, AssetNotExistException
AssetDataManager
readAttributes
in interface AssetDataManager
id
- AssetId to read attributes forattributeNames
- names of the attributesAssetAccessException
- if thrown if the AssetId does not exist or attribute names passed are incorrect for the asset. AssetAccessException also wraps any AssetExcptions thrown by the internal implementation.AssetNotExistException
- an AssetNotExistExceptionpublic void insert(List<AssetData> data) throws AssetAccessException
AssetDataManager
insert
in interface AssetDataManager
data
- AssetData to be inserted.AssetAccessException
- captures layer specific failures and wraps other internal exceptions.public void update(List<AssetData> data) throws AssetAccessException
AssetDataManager
update
in interface AssetDataManager
data
- AssetData to be updated.AssetAccessException
- captures layer specific failures and wraps other internal exceptions.public void update(List<AssetData> data, boolean keepCheckedOut) throws AssetAccessException
AssetDataManager
update
in interface AssetDataManager
data
- AssetData to be updated.keepCheckedOut
- do not checkin asset after save if revision tracked.AssetAccessException
- captures layer specific failures and wraps other internal exceptions.public void delete(List<AssetId> data) throws AssetAccessException
AssetDataManager
delete
in interface AssetDataManager
data
- AssetIds to be deleted.AssetAccessException
- captures layer specific failures and wraps other internal exceptions.public AttributeData newAttribiteData(String attributeName, String assetTypeName, String subtype)
AssetDataManager
newAttribiteData
in interface AssetDataManager
attributeName
- name of the attributeassetTypeName
- name of asset typesubtype
- subtype of asset type.public AttributeData newAttributeData(String attributeName, String assetTypeName, String subtype)
AssetDataManager
newAttributeData
in interface AssetDataManager
attributeName
- name of the attributeassetTypeName
- name of asset typesubtype
- subtype of asset type.public AttributeData newAttributeData(AttributeDef attributeDef)
AssetDataManager
newAttributeData
in interface AssetDataManager
attributeDef
- the definition of the attributepublic MutableAssetData newAssetData(String assetTypeName, String subtype) throws AssetAccessException
AssetDataManager
newAssetData
in interface AssetDataManager
assetTypeName
- the name of the assettypesubtype
- the name of the aset subtypeAssetAccessException
- an AssetAccessExceptionpublic AssetData newAssetData(String assetTypeName, AssetData example)
AssetDataManager
newAssetData
in interface AssetDataManager
assetTypeName
- name of the asset typeexample
- optional example AsetData the returned will be based on.public MutableAssetData deepCopy(AssetData example) throws AssetAccessException
example
- the asset data where to copy the data fromAssetAccessException
- throws exception if error met creating the copy