Class ShoppingListSync


  • public class ShoppingListSync
    extends BaseSync<com.commercetools.api.models.shopping_list.ShoppingList,​com.commercetools.api.models.shopping_list.ShoppingListDraft,​com.commercetools.api.models.shopping_list.ShoppingListUpdateAction,​ShoppingListSyncStatistics,​ShoppingListSyncOptions>
    This class syncs shopping list drafts with corresponding shopping list resources in the CTP project.
    • Constructor Detail

      • ShoppingListSync

        public ShoppingListSync​(@Nonnull
                                ShoppingListSyncOptions shoppingListSyncOptions)
        Takes a ShoppingListSyncOptions to instantiate a new ShoppingListSync instance that could be used to sync shopping list drafts in the CTP project specified in the injected ShoppingListSyncOptions instance.
        Parameters:
        shoppingListSyncOptions - the container of all the options of the sync process including the CTP project client and/or configuration and other sync-specific options.
      • ShoppingListSync

        protected ShoppingListSync​(@Nonnull
                                   ShoppingListSyncOptions syncOptions,
                                   @Nonnull
                                   ShoppingListService shoppingListService,
                                   @Nonnull
                                   CustomerService customerService,
                                   @Nonnull
                                   TypeService typeService)
        Takes a ShoppingListSyncOptions and service instances to instantiate a new ShoppingListSync instance that could be used to sync shopping list drafts in the CTP project specified in the injected ShoppingListSyncOptions instance.

        NOTE: This constructor is mainly to be used for tests where the services can be mocked and passed to.

        Parameters:
        syncOptions - the container of all the options of the sync process including the CTP project client and/or configuration and other sync-specific options.
        shoppingListService - the shopping list service which is responsible for fetching/caching the ShoppingLists from the CTP project.
        customerService - the customer service which is responsible for fetching/caching the Customers from the CTP project.
        typeService - the type service which is responsible for fetching/caching the Types from the CTP project.
    • Method Detail

      • process

        protected java.util.concurrent.CompletionStage<ShoppingListSyncStatistics> process​(@Nonnull
                                                                                           java.util.List<com.commercetools.api.models.shopping_list.ShoppingListDraft> shoppingListDrafts)
        Iterates through the whole ShoppingListDraft's list and accumulates its valid drafts to batches. Every batch is then processed by processBatch(java.util.List).

        Inherited doc: Given a list of resource (e.g. categories, products, etc..) drafts. This method compares each new resource in this list with it's corresponding old resource in a given CTP project, and in turn it either issues update actions on the existing resource if it exists or create it if it doesn't.

        Specified by:
        process in class BaseSync<com.commercetools.api.models.shopping_list.ShoppingList,​com.commercetools.api.models.shopping_list.ShoppingListDraft,​com.commercetools.api.models.shopping_list.ShoppingListUpdateAction,​ShoppingListSyncStatistics,​ShoppingListSyncOptions>
        Parameters:
        shoppingListDrafts - List of ShoppingListDraft's that would be synced into CTP project.
        Returns:
        CompletionStage with ShoppingListSyncStatistics holding statistics of all sync processes performed by this sync instance.
      • processBatch

        protected java.util.concurrent.CompletionStage<ShoppingListSyncStatistics> processBatch​(@Nonnull
                                                                                                java.util.List<com.commercetools.api.models.shopping_list.ShoppingListDraft> batch)
        Specified by:
        processBatch in class BaseSync<com.commercetools.api.models.shopping_list.ShoppingList,​com.commercetools.api.models.shopping_list.ShoppingListDraft,​com.commercetools.api.models.shopping_list.ShoppingListUpdateAction,​ShoppingListSyncStatistics,​ShoppingListSyncOptions>