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 Type
    Method
    Description
    org.broadleafcommerce.common.extension.ExtensionResultStatusType
    merge(org.broadleafcommerce.common.extension.ExtensionResultHolder<Customer> customerHolder, org.springframework.web.context.request.WebRequest request, 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<Customer> customerHolder, org.springframework.web.context.request.WebRequest request, 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: