Class DefaultCloneProductService<P extends Product,R extends CloneProductRequest>
java.lang.Object
com.broadleafcommerce.catalog.clone.product.service.DefaultCloneProductService<P,R>
- All Implemented Interfaces:
CloneProductService<P,
R>
public class DefaultCloneProductService<P extends Product,R extends CloneProductRequest>
extends Object
implements CloneProductService<P,R>
Default implementation for
CloneProductService
.- Author:
- Dima Myroniuk (dmyroniuk)
-
Constructor Summary
ConstructorDescriptionDefaultCloneProductService
(ProductService<P> productService, CloneProductRelationshipsManager<P, R> pRelationshipService, ProductRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager, com.broadleafcommerce.data.tracking.core.mapping.DomainMapperManager domainMapper, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidatorManager validator, org.springframework.transaction.support.TransactionTemplate template) -
Method Summary
Modifier and TypeMethodDescriptioncloneProduct
(R request, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Clone the product with an idCloneProductRequest.getProductId()
.protected com.broadleafcommerce.common.messaging.notification.domain.NotificationState
createNotificationState
(P original, P cloned, R request, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected com.broadleafcommerce.data.tracking.core.Trackable
generateClone
(R request, com.broadleafcommerce.data.tracking.core.Trackable product, Class<P> businessType, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) getAllSkus
(P product, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected com.broadleafcommerce.data.tracking.core.mapping.DomainMapperManager
protected com.broadleafcommerce.common.messaging.notification.NotificationManager
protected com.fasterxml.jackson.databind.ObjectMapper
protected CloneProductRelationshipsManager<P,
R> protected ProductService<P>
protected ProductRepository<com.broadleafcommerce.data.tracking.core.Trackable>
protected String
getSerializedEvent
(ProductCloneEvent cloneEvent) protected org.springframework.transaction.support.TransactionTemplate
protected com.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidatorManager
protected void
notifyProductCloned
(com.broadleafcommerce.data.tracking.core.Trackable cloned) protected void
postClone
(R request, P original, P cloned, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
-
Constructor Details
-
DefaultCloneProductService
public DefaultCloneProductService(ProductService<P> productService, CloneProductRelationshipsManager<P, R> pRelationshipService, ProductRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager, com.broadleafcommerce.data.tracking.core.mapping.DomainMapperManager domainMapper, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidatorManager validator, org.springframework.transaction.support.TransactionTemplate template)
-
-
Method Details
-
cloneProduct
public P cloneProduct(R request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Description copied from interface:CloneProductService
Clone the product with an id
CloneProductRequest.getProductId()
. This will also clone theProduct
relationshipsDefaultRelationshipType
which are specified inCloneProductRequest.getCloneRelationships()
.Additional relationships can be cloned via the P@link
CloneProductRelationshipsService
}- Specified by:
cloneProduct
in interfaceCloneProductService<P extends Product,
R extends CloneProductRequest> - Parameters:
request
- the request to perform the clone operationcontext
- context information surrounding sandboxing and multitenant state- Returns:
- the cloned
Product
-
generateClone
-
postClone
-
createNotificationState
-
getAllSkus
-
getSerializedEvent
-
notifyProductCloned
protected void notifyProductCloned(com.broadleafcommerce.data.tracking.core.Trackable cloned) -
getProductService
-
getPRelationshipService
-
getRepository
-
getNotificationManager
protected com.broadleafcommerce.common.messaging.notification.NotificationManager getNotificationManager() -
getDomainMapper
protected com.broadleafcommerce.data.tracking.core.mapping.DomainMapperManager getDomainMapper() -
getObjectMapper
protected com.fasterxml.jackson.databind.ObjectMapper getObjectMapper() -
getValidator
protected com.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidatorManager getValidator() -
getTemplate
protected org.springframework.transaction.support.TransactionTemplate getTemplate()
-