Interface CustomerMergeExtensionHandler
- All Superinterfaces:
org.broadleafcommerce.common.extension.ExtensionHandler
- All Known Implementing Classes:
DefaultCustomerMergeExtensionHandler
public interface CustomerMergeExtensionHandler
extends org.broadleafcommerce.common.extension.ExtensionHandler
-
Method Summary
Modifier and TypeMethodDescriptionorg.broadleafcommerce.common.extension.ExtensionResultStatusTypemerge(org.broadleafcommerce.common.extension.ExtensionResultHolder<org.broadleafcommerce.profile.core.domain.Customer> customerHolder, org.springframework.web.context.request.WebRequest request, org.broadleafcommerce.profile.core.domain.Customer anonymousCustomer) This allows multiple extensions to modify or copy attributes from the anonymous customer, to the customer.Methods inherited from interface org.broadleafcommerce.common.extension.ExtensionHandler
getPriority, isEnabled
-
Method Details
-
merge
org.broadleafcommerce.common.extension.ExtensionResultStatusType merge(org.broadleafcommerce.common.extension.ExtensionResultHolder<org.broadleafcommerce.profile.core.domain.Customer> customerHolder, org.springframework.web.context.request.WebRequest request, org.broadleafcommerce.profile.core.domain.Customer anonymousCustomer) This allows multiple extensions to modify or copy attributes from the anonymous customer, to the customer. The customer is stored on the customerHolder. If the customer is modified and / or saved to the DB, the new instance must be reset on the customerHolder. Each implementation can expect that the result holder will have the latest version of the customer. Implementors are not required to save the customer. It is the responsibility of each implementation to reset the reference. Additionally and alternatively, this method allows for copying and / or modification of the request attributes from session or request. Implementors should carefully consider security implications of copying customer data.The anonymous customer may be null. If the request parameter, the customerHolder parameter, or the customer stored on the customerHolder is null, then an IllegalArgumentException should be thrown.
The return value, generally, should be ExtensionResultStatusType.HANDLED_CONTINUE. If an implementation wishes to return an exception in the customerHolder, it should instantiate and set an exception on the customerHolder and return ExtensionResultStatusType.HANDLED_STOP.
- Parameters:
customerHolder-request-anonymousCustomer-- Returns:
-