Class DefaultCategoryDetailsService
java.lang.Object
com.broadleafcommerce.catalog.service.category.commerce.DefaultCategoryDetailsService
- All Implemented Interfaces:
CategoryDetailsService
- Author:
- Nathan Moore (nathandmoore)
-
Constructor Summary
ConstructorDescriptionDefaultCategoryDetailsService
(List<CategoryDetailsContributor> detailsContributors, List<CategoryDetailsContextContributor> contextContributors, List<CategoryDetailsContextConsolidator> contextConsolidators, CategoryService<Category> categoryService, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected CategoryDetailsContext
buildContext
(@NonNull CategoryDetailsRequest request, @NonNull Category resolvedCategory, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds aCategoryDetailsContext
in response to aCategoryDetailsRequest
.protected CategoryDetails
buildDetails
(@NonNull CategoryDetailsContext detailsContext, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds out theCategoryDetails
in response to aCategoryDetailsRequest
.getCategoryDetailsForCategory
(@NonNull CategoryDetailsRequest request, @NonNull Category category, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Gets aCategoryDetails
for theCategoryDetailsRequest
.getCategoryDetailsForRequest
(@NonNull CategoryDetailsRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Gets aCategoryDetails
for theCategoryDetailsRequest
.protected CategoryService<Category>
protected List<CategoryDetailsContextConsolidator>
protected List<CategoryDetailsContextContributor>
protected List<CategoryDetailsContributor>
protected com.broadleafcommerce.common.extension.TypeFactory
resolveCategory
(@NonNull CategoryDetailsRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Resolves the base category for the given request.protected void
validateRequest
(@NonNull CategoryDetailsRequest request) Validates theCategoryDetailsRequest
.
-
Constructor Details
-
DefaultCategoryDetailsService
public DefaultCategoryDetailsService(List<CategoryDetailsContributor> detailsContributors, List<CategoryDetailsContextContributor> contextContributors, List<CategoryDetailsContextConsolidator> contextConsolidators, CategoryService<Category> categoryService, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
getCategoryDetailsForRequest
public Optional<CategoryDetails> getCategoryDetailsForRequest(@NonNull @NonNull CategoryDetailsRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CategoryDetailsService
Gets aCategoryDetails
for theCategoryDetailsRequest
.- Specified by:
getCategoryDetailsForRequest
in interfaceCategoryDetailsService
- Parameters:
request
- theCategoryDetailsRequest
with additional request context for identifying the category for which to retrieve details and defining the how much detail to go into.contextInfo
- context information surrounding sandboxing/multitenant state- Returns:
- a
CategoryDetails
for theCategoryDetailsRequest
.
-
getCategoryDetailsForCategory
public CategoryDetails getCategoryDetailsForCategory(@NonNull @NonNull CategoryDetailsRequest request, @NonNull @NonNull Category category, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CategoryDetailsService
Gets aCategoryDetails
for theCategoryDetailsRequest
.- Specified by:
getCategoryDetailsForCategory
in interfaceCategoryDetailsService
- Parameters:
request
- The originatingCategoryDetailsRequest
category
- theCategory
for which to build aCategoryDetails
.contextInfo
- context information surrounding sandboxing/multitenant state- Returns:
- a
CategoryDetails
for theCategoryDetailsRequest
.
-
validateRequest
Validates theCategoryDetailsRequest
.- Parameters:
request
- TheCategoryDetailsRequest
to validate- Throws:
CategoryDetailsRequestException
- Thrown if the request is invalid such as missing both the category URI and ID.
-
resolveCategory
protected Optional<Category> resolveCategory(@NonNull @NonNull CategoryDetailsRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Resolves the base category for the given request.- Parameters:
request
- TheCategoryDetailsRequest
to use to resolve the base categorycontextInfo
- context information surrounding sandboxing/multitenant state- Returns:
- the resolved base category
-
buildContext
protected CategoryDetailsContext buildContext(@NonNull @NonNull CategoryDetailsRequest request, @NonNull @NonNull Category resolvedCategory, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds aCategoryDetailsContext
in response to aCategoryDetailsRequest
. This facilitates gathering all of the related catalog entities to the requested category all at once to allow fewer DB calls throughout the process of building aCategoryDetails
. It first gathers all of the context info using all of theCategoryDetailsContextContributors
. Then, it consolidates the context info onto the related entities using theCategoryDetailsContextConsolidators
.- Parameters:
request
- theCategoryDetailsRequest
with additional request context for identifying the category for which to retrieve details and defining the how much detail to go into.resolvedCategory
- TheCategory
found to match therequest
that needs to be turned into aCategoryDetails
response.contextInfo
- context information surrounding sandboxing/multitenant state- Returns:
- a
CategoryDetailsContext
in response to aCategoryDetailsRequest
.
-
buildDetails
protected CategoryDetails buildDetails(@NonNull @NonNull CategoryDetailsContext detailsContext, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds out theCategoryDetails
in response to aCategoryDetailsRequest
. It relies on all of theCategoryDetailsContributors
.- Parameters:
detailsContext
- TheCategoryDetailsContext
created in response to aCategoryDetailsRequest
. This contains context information and all of the catalog entities related to the requested category pre-fetched and consolidated.contextInfo
- context information surrounding sandboxing/multitenant state- Returns:
- the
CategoryDetails
in response to aCategoryDetailsRequest
.
-
getDetailsContributors
-
getContextContributors
-
getContextConsolidators
-
getCategoryService
-
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-