Class AbstractProductSingleIndexRequestMessageBuilder<D extends com.broadleafcommerce.data.tracking.core.search.Indexable>

java.lang.Object
com.broadleafcommerce.catalog.provider.shared.messaging.search.AbstractProductSingleIndexRequestMessageBuilder<D>
Type Parameters:
D - the indexable persisted-domain counterpart of Product
All Implemented Interfaces:
com.broadleafcommerce.common.extension.data.DataRoutePartitionAware, com.broadleafcommerce.data.tracking.core.messaging.search.SingleIndexRequestMessageBuilder
Direct Known Subclasses:
JpaProductSingleIndexRequestMessageBuilder

public abstract class AbstractProductSingleIndexRequestMessageBuilder<D extends com.broadleafcommerce.data.tracking.core.search.Indexable> extends Object implements com.broadleafcommerce.data.tracking.core.messaging.search.SingleIndexRequestMessageBuilder
A common base for SingleIndexRequestMessageBuilder implementations specifically for persisted-domain counterparts of Product.

This is meant to be used when there is a change to a product itself. For changes to entities related to a product, see AbstractAncillaryProductSingleIndexRequestMessageBuilder.

Author:
Samarth Dhruva (samarthd)
  • Constructor Details

    • AbstractProductSingleIndexRequestMessageBuilder

      public AbstractProductSingleIndexRequestMessageBuilder()
  • Method Details

    • canBuild

      public boolean canBuild(@NonNull @NonNull com.broadleafcommerce.data.tracking.core.search.Indexable entity)
      Specified by:
      canBuild in interface com.broadleafcommerce.data.tracking.core.messaging.search.SingleIndexRequestMessageBuilder
    • isProduct

      protected boolean isProduct(Object entity)
    • getPersistedProductType

      protected abstract Class<D> getPersistedProductType()
    • build

      public com.broadleafcommerce.data.tracking.core.messaging.search.domain.SingleIndexRequest<com.broadleafcommerce.data.tracking.core.Identifiable> build(com.broadleafcommerce.data.tracking.core.search.Indexable entity)
      Specified by:
      build in interface com.broadleafcommerce.data.tracking.core.messaging.search.SingleIndexRequestMessageBuilder
    • buildPayload

      protected abstract ProductSingleIndexRequestPayload buildPayload(D product)
    • getDataRoutePartition

      public String getDataRoutePartition()
      Specified by:
      getDataRoutePartition in interface com.broadleafcommerce.common.extension.data.DataRoutePartitionAware