Class DefaultCategoryAssetService<P extends CategoryAsset>
java.lang.Object
com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P>
com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P>
com.broadleafcommerce.catalog.service.asset.DefaultCategoryAssetService<P>
- All Implemented Interfaces:
CategoryAssetService<P>,com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>,com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>
public class DefaultCategoryAssetService<P extends CategoryAsset>
extends com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P>
implements CategoryAssetService<P>
- Author:
- Samarth Dhruva (samarthd)
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDefaultCategoryAssetService(CategoryAssetRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper, com.broadleafcommerce.common.extension.cache.CacheStateManager cacheStateManager) -
Method Summary
Modifier and TypeMethodDescriptionOverridden to enable automatic un-setting of the existing primary.createAll(List<P> businessInstances, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P>createAllAllowingPartialSuccess(List<P> businessInstances, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.protected com.broadleafcommerce.common.extension.cache.key.ContextKeyGenprotected com.broadleafcommerce.common.extension.cache.CacheStateManagerprotected AbstractPrimaryAssetCollisionService<P>protected CategoryAssetRepository<com.broadleafcommerce.data.tracking.core.Trackable>readAllPrimaryAssetsByCategoryIdsExcludeAssetIds(Iterable<String> categoryIds, Iterable<String> assetIdsToExclude, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Reads all the primaryCategoryAssetfor the given category IDs excluding given asset IDs.readByCategoryId(@NonNull String categoryId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Finds all of theCategoryAssetsfor aCategoryby ID.readByCategoryIdAndPrimaryTrue(@NonNull String categoryId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Finds the primaryCategoryAssetfor the givenCategoryAsset.categoryId.replace(@NonNull String id, P businessInstance, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.replaceAll(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> replacements, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P>replaceAllAllowingPartialSuccess(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> replacements, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.org.springframework.data.domain.Page<P>searchAllWithCategoryId(@NonNull String categoryId, Boolean isSorted, String searchString, @NonNull cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Finds allCategoryAssetsfor the given category ID, optionally filtering by additional search/filter arguments.voidsetCacheByCategoryAssetKeyGen(com.broadleafcommerce.common.extension.cache.key.ContextKeyGen cacheByCategoryAssetKeyGen) voidsetPrimaryAssetCollisionResolverService(AbstractPrimaryAssetCollisionService<P> primaryAssetCollisionResolverService) update(String id, P businessInstance, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.updateAll(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> updates, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P>updateAllAllowingPartialSuccess(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> updates, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService
getRsqlHelper, readAll, readAll, readAll, readAllMethods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService
convertFromPersistentDomain, convertToPersistentDomain, delete, getHelper, getSortPositionStrategy, readAll, readAll, readAll, readAllByContextId, readByContextId, setSortPositionStrategy, updateSortMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService
delete, readAll, readAll, readAll, readAllByContextId, readByContextId, updateSortMethods inherited from interface com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService
readAll, readAll, readAll, readAll
-
Field Details
-
CACHE_BY_CATEGORY_ASSET
- See Also:
-
-
Constructor Details
-
DefaultCategoryAssetService
public DefaultCategoryAssetService(CategoryAssetRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper, @Nullable com.broadleafcommerce.common.extension.cache.CacheStateManager cacheStateManager)
-
-
Method Details
-
setPrimaryAssetCollisionResolverService
@Autowired public void setPrimaryAssetCollisionResolverService(AbstractPrimaryAssetCollisionService<P> primaryAssetCollisionResolverService) -
create
public P create(P businessInstance, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.- Specified by:
createin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends CategoryAsset>- Overrides:
createin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends CategoryAsset>- Parameters:
businessInstance- The business domain instance. In general, theDomainMapperManageris responsible for converting to a repository platform type for persistence.context- Context information used to discriminate the correct version of an entity by context id when multiple versions may be available across sandboxes, catalogs and applications.- Returns:
- the created entity
-
update
public P update(String id, P businessInstance, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.- Specified by:
updatein interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends CategoryAsset>- Overrides:
updatein classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends CategoryAsset>- Parameters:
id- The context id for the entity. This is the id by which the business recognizes the item.businessInstance- The business domain instance. In general, theDomainMapperManageris responsible for converting to a repository platform type for persistence.context- Context information used to discriminate the correct version of an entity by context id when multiple versions may be available across sandboxes, catalogs and applications.- Returns:
- the updated entity
-
replace
public P replace(@NonNull @NonNull String id, @NonNull P businessInstance, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.- Specified by:
replacein interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends CategoryAsset>- Overrides:
replacein classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends CategoryAsset>- Parameters:
id- The context id for the entity. This is the id by which the business recognizes the item.businessInstance- The payload type that domain class should be converted to. In general, the payload is what the rest API responds with.context- Context information used to discriminate the correct version of an entity by context id when multiple versions may be available across sandboxes, catalogs and applications.- Returns:
- the entity after replacement
-
createAll
public List<P> createAll(List<P> businessInstances, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.- Specified by:
createAllin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends CategoryAsset>- Overrides:
createAllin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends CategoryAsset>- Parameters:
businessInstances- The list of business domain instances. In general, theDomainMapperManageris responsible for converting to a repository platform type for persistence.context- Context information used to discriminate the correct version of an entity by context id when multiple versions may be available across sandboxes, catalogs and applications.- Returns:
- the list of created entities
-
updateAll
public List<P> updateAll(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> updates, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.- Specified by:
updateAllin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends CategoryAsset>- Overrides:
updateAllin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends CategoryAsset>- Parameters:
updates- The list of updates of the business domain instances. In general, theDomainMapperManageris responsible for converting to a repository platform type for persistence.context- Context information used to discriminate the correct version of an entity by context id when multiple versions may be available across sandboxes, catalogs and applications.- Returns:
- the list of updated entities
-
replaceAll
public List<P> replaceAll(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> replacements, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.- Specified by:
replaceAllin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends CategoryAsset>- Overrides:
replaceAllin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends CategoryAsset>- Parameters:
replacements- The list of updates of the business domain instances. In general, theDomainMapperManageris responsible for converting to a repository platform type for persistence.context- Context information used to discriminate the correct version of an entity by context id when multiple versions may be available across sandboxes, catalogs and applications.- Returns:
- the list of replaced entities
-
createAllAllowingPartialSuccess
public com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P> createAllAllowingPartialSuccess(List<P> businessInstances, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.- Specified by:
createAllAllowingPartialSuccessin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends CategoryAsset>- Overrides:
createAllAllowingPartialSuccessin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends CategoryAsset>- Parameters:
businessInstances- The list of the business domain instances. In general, theDomainMapperManageris responsible for converting to a repository platform type for persistence.context- Context information used to discriminate the correct version of an entity by context id when multiple versions may be available across sandboxes, catalogs and applications.- Returns:
- a response containing a list of any entities which failed, and a list of the successfully created, narrowed entity instances in the form of a payload instance
-
updateAllAllowingPartialSuccess
public com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P> updateAllAllowingPartialSuccess(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> updates, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.- Specified by:
updateAllAllowingPartialSuccessin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends CategoryAsset>- Overrides:
updateAllAllowingPartialSuccessin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends CategoryAsset>- Parameters:
updates- The list of updates of the business domain instances. In general, theDomainMapperManageris responsible for converting to a repository platform type for persistence.context- Context information used to discriminate the correct version of an entity by context id when multiple versions may be available across sandboxes, catalogs and applications.- Returns:
- a response containing a list of any entities which failed, and a list of the successfully updated, narrowed entity instances in the form of a payload instance
-
replaceAllAllowingPartialSuccess
public com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P> replaceAllAllowingPartialSuccess(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> replacements, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Overridden to enable automatic un-setting of the existing primary.- Specified by:
replaceAllAllowingPartialSuccessin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends CategoryAsset>- Overrides:
replaceAllAllowingPartialSuccessin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends CategoryAsset>- Parameters:
replacements- The list of updates of the business domain instances. In general, theDomainMapperManageris responsible for converting to a repository platform type for persistence.context- Context information used to discriminate the correct version of an entity by context id when multiple versions may be available across sandboxes, catalogs and applications.- Returns:
- a response containing a list of any entities which failed, and a list of the successfully replaced, narrowed entity instances in the form of a payload instance
-
searchAllWithCategoryId
public org.springframework.data.domain.Page<P> searchAllWithCategoryId(@NonNull @NonNull String categoryId, @Nullable Boolean isSorted, @Nullable String searchString, @NonNull @NonNull cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CategoryAssetServiceFinds allCategoryAssetsfor the given category ID, optionally filtering by additional search/filter arguments.If
searchStringis provided, then this method will search for assets whoseEntityAsset.url,EntityAsset.title,EntityAsset.altText, orEntityAsset.tagscontain it.If no
searchStringis provided, then this method will simply return all assets for the given category.This method also supports RSQL filtration via
filters.- Specified by:
searchAllWithCategoryIdin interfaceCategoryAssetService<P extends CategoryAsset>- Parameters:
categoryId- the value which the category ID should match againstisSorted- (optional) if not-null, will restrict results to only includeCategoryAssetswhereCategoryAsset.sortedhas the given valuesearchString- (optional) a string which should be found inEntityAsset.url,EntityAsset.title,EntityAsset.altText, orEntityAsset.tagsfilters- additional filters to apply in the query. Should beEmptyNodeif no additional filters should be applied.page- the requested page of results from the databasecontextInfo- the context to query within- Returns:
- the assets in the database with the given category ID, optionally filtered by the given search/filter arguments (if provided)
-
readByCategoryIdAndPrimaryTrue
public Optional<P> readByCategoryIdAndPrimaryTrue(@NonNull @NonNull String categoryId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CategoryAssetServiceFinds the primaryCategoryAssetfor the givenCategoryAsset.categoryId.- Specified by:
readByCategoryIdAndPrimaryTruein interfaceCategoryAssetService<P extends CategoryAsset>- Parameters:
categoryId- the value to match againstCategoryAsset.categoryIdcontextInfo- context information around sandboxing and multitenant state- Returns:
- an optional containing the primary asset for a category, empty otherwise
-
readAllPrimaryAssetsByCategoryIdsExcludeAssetIds
public List<P> readAllPrimaryAssetsByCategoryIdsExcludeAssetIds(Iterable<String> categoryIds, Iterable<String> assetIdsToExclude, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CategoryAssetServiceReads all the primaryCategoryAssetfor the given category IDs excluding given asset IDs.- Specified by:
readAllPrimaryAssetsByCategoryIdsExcludeAssetIdsin interfaceCategoryAssetService<P extends CategoryAsset>- Parameters:
categoryIds- IDs of the categories for which to find primary assetsassetIdsToExclude- IDs of the assets to excludecontextInfo- context information around sandboxing and multitenant state- Returns:
- the primary
CategoryAssetfor the given category IDs excluding given asset IDs.
-
readByCategoryId
public List<P> readByCategoryId(@NonNull @NonNull String categoryId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CategoryAssetServiceFinds all of theCategoryAssetsfor aCategoryby ID.- Specified by:
readByCategoryIdin interfaceCategoryAssetService<P extends CategoryAsset>- Parameters:
categoryId- Id of the category which's assets to readcontextInfo- context information around sandboxing and multitenant state- Returns:
- all of the
CategoryAssetsfor aCategoryby ID.
-
getRepositoryDomain
- Specified by:
getRepositoryDomainin interfaceCategoryAssetService<P extends CategoryAsset>
-
getRepository
protected CategoryAssetRepository<com.broadleafcommerce.data.tracking.core.Trackable> getRepository()- Overrides:
getRepositoryin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends CategoryAsset>
-
getCacheStateManager
@Nullable protected com.broadleafcommerce.common.extension.cache.CacheStateManager getCacheStateManager() -
getPrimaryAssetCollisionResolverService
-
setCacheByCategoryAssetKeyGen
@Autowired @Qualifier("catalogCacheByCategoryAsset") public void setCacheByCategoryAssetKeyGen(@Nullable com.broadleafcommerce.common.extension.cache.key.ContextKeyGen cacheByCategoryAssetKeyGen) - See Also:
-
getCacheByCategoryAssetKeyGen
@Nullable protected com.broadleafcommerce.common.extension.cache.key.ContextKeyGen getCacheByCategoryAssetKeyGen()- See Also:
-