Class JpaProductCharacteristicDisabledPropagationHandler

java.lang.Object
com.broadleafcommerce.catalog.provider.jpa.propagation.JpaProductCharacteristicDisabledPropagationHandler
All Implemented Interfaces:
com.broadleafcommerce.data.tracking.core.transition.PropagationAware, com.broadleafcommerce.data.tracking.core.transition.PropagationHandler, org.springframework.core.Ordered

public class JpaProductCharacteristicDisabledPropagationHandler extends Object implements com.broadleafcommerce.data.tracking.core.transition.PropagationHandler

Implementation of PropagationHandler that is used to disable propagation of JpaProductCharacteristic. Please see the Javadocs of JpaProductCharacteristic for more details.

Since:
Catalog Services 2.3.0, Release Train 2.3.0
See Also:
  • Field Summary

    Fields inherited from interface org.springframework.core.Ordered

    HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
  • Constructor Summary

    Constructors
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    canHandle(com.broadleafcommerce.data.tracking.core.Trackable incoming, String incomingCatalog, String parentCatalog, com.broadleafcommerce.data.tracking.core.Trackable candidate, com.broadleafcommerce.data.tracking.core.type.OperationType changeType)
     
    int
    We want to disable the standard catalog propagation of characteristics.
    com.broadleafcommerce.data.tracking.core.Trackable
    handleCreate(com.broadleafcommerce.data.tracking.core.Trackable incoming, String incomingCatalog, String parentCatalog, String propagationId, com.broadleafcommerce.data.tracking.core.TrackableRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository)
     
    com.broadleafcommerce.data.tracking.core.Trackable
    handleDelete(com.broadleafcommerce.data.tracking.core.Trackable incoming, String incomingCatalog, String parentCatalog, String propagationId, com.broadleafcommerce.data.tracking.core.Trackable candidate, com.broadleafcommerce.data.tracking.core.TrackableRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository)
     
    com.broadleafcommerce.data.tracking.core.Trackable
    handleUpdate(com.broadleafcommerce.data.tracking.core.Trackable incoming, String incomingCatalog, String parentCatalog, String propagationId, com.broadleafcommerce.data.tracking.core.Trackable candidate, com.broadleafcommerce.data.tracking.core.TrackableRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JpaProductCharacteristicDisabledPropagationHandler

      public JpaProductCharacteristicDisabledPropagationHandler()
  • Method Details

    • getOrder

      public int getOrder()

      We want to disable the standard catalog propagation of characteristics. However, in projects that have marketplace sandbox propagation enabled, we don't want to preclude that specialized sandbox propagation behavior.

      Thus, we order this propagation handler with a higher priority than DefaultPropagationHandler, but lower than VendorSandboxPropagationHandler. That way, if VendorSandboxPropagationHandler can handle a request to propagate characteristic changes from a vendor catalog to a marketplace, it will do so. However, if VendorSandboxPropagationHandler can't handle the request (meaning it's not a case of a vendor -> marketplace propagation), then we will intercept before DefaultPropagationHandler can pick up the request, and simply execute as a no-op.

      Specified by:
      getOrder in interface org.springframework.core.Ordered
      Specified by:
      getOrder in interface com.broadleafcommerce.data.tracking.core.transition.PropagationHandler
      Returns:
      the relative ordering of this handler to define its priority
    • canHandle

      public boolean canHandle(com.broadleafcommerce.data.tracking.core.Trackable incoming, String incomingCatalog, String parentCatalog, @Nullable com.broadleafcommerce.data.tracking.core.Trackable candidate, com.broadleafcommerce.data.tracking.core.type.OperationType changeType)
      Specified by:
      canHandle in interface com.broadleafcommerce.data.tracking.core.transition.PropagationHandler
    • handleDelete

      public com.broadleafcommerce.data.tracking.core.Trackable handleDelete(com.broadleafcommerce.data.tracking.core.Trackable incoming, String incomingCatalog, String parentCatalog, String propagationId, @Nullable com.broadleafcommerce.data.tracking.core.Trackable candidate, com.broadleafcommerce.data.tracking.core.TrackableRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository)
      Specified by:
      handleDelete in interface com.broadleafcommerce.data.tracking.core.transition.PropagationAware
    • handleCreate

      public com.broadleafcommerce.data.tracking.core.Trackable handleCreate(com.broadleafcommerce.data.tracking.core.Trackable incoming, String incomingCatalog, String parentCatalog, String propagationId, com.broadleafcommerce.data.tracking.core.TrackableRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository)
      Specified by:
      handleCreate in interface com.broadleafcommerce.data.tracking.core.transition.PropagationAware
    • handleUpdate

      public com.broadleafcommerce.data.tracking.core.Trackable handleUpdate(com.broadleafcommerce.data.tracking.core.Trackable incoming, String incomingCatalog, String parentCatalog, String propagationId, @Nullable com.broadleafcommerce.data.tracking.core.Trackable candidate, com.broadleafcommerce.data.tracking.core.TrackableRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository)
      Specified by:
      handleUpdate in interface com.broadleafcommerce.data.tracking.core.transition.PropagationAware