Class ProductTypeSync
- java.lang.Object
-
- com.commercetools.sync.commons.BaseSync<com.commercetools.api.models.product_type.ProductType,com.commercetools.api.models.product_type.ProductTypeDraft,com.commercetools.api.models.product_type.ProductTypeUpdateAction,ProductTypeSyncStatistics,ProductTypeSyncOptions>
-
- com.commercetools.sync.producttypes.ProductTypeSync
-
public class ProductTypeSync extends BaseSync<com.commercetools.api.models.product_type.ProductType,com.commercetools.api.models.product_type.ProductTypeDraft,com.commercetools.api.models.product_type.ProductTypeUpdateAction,ProductTypeSyncStatistics,ProductTypeSyncOptions>
This class syncs product type drafts with the corresponding product types in the CTP project.
-
-
Field Summary
-
Fields inherited from class com.commercetools.sync.commons.BaseSync
statistics, syncOptions
-
-
Constructor Summary
Constructors Constructor Description ProductTypeSync(ProductTypeSyncOptions productTypeSyncOptions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.concurrent.CompletionStage<ProductTypeSyncStatistics>
process(java.util.List<com.commercetools.api.models.product_type.ProductTypeDraft> productTypeDrafts)
Iterates through the wholeproductTypeDrafts
list and accumulates its valid drafts to batches.protected java.util.concurrent.CompletionStage<ProductTypeSyncStatistics>
processBatch(java.util.List<com.commercetools.api.models.product_type.ProductTypeDraft> batch)
This method first creates a newSet
of validProductTypeDraft
elements.-
Methods inherited from class com.commercetools.sync.commons.BaseSync
executeSupplierIfConcurrentModificationException, getStatistics, getSyncOptions, handleError, sync, syncBatches
-
-
-
-
Constructor Detail
-
ProductTypeSync
public ProductTypeSync(@Nonnull ProductTypeSyncOptions productTypeSyncOptions)
-
-
Method Detail
-
process
protected java.util.concurrent.CompletionStage<ProductTypeSyncStatistics> process(@Nonnull java.util.List<com.commercetools.api.models.product_type.ProductTypeDraft> productTypeDrafts)
Iterates through the wholeproductTypeDrafts
list and accumulates its valid drafts to batches. Every batch is then processed byprocessBatch(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 classBaseSync<com.commercetools.api.models.product_type.ProductType,com.commercetools.api.models.product_type.ProductTypeDraft,com.commercetools.api.models.product_type.ProductTypeUpdateAction,ProductTypeSyncStatistics,ProductTypeSyncOptions>
- Parameters:
productTypeDrafts
-List
ofProductTypeDraft
's that would be synced into CTP project.- Returns:
CompletionStage
withProductTypeSyncStatistics
holding statistics of all sync processes performed by this sync instance.
-
processBatch
protected java.util.concurrent.CompletionStage<ProductTypeSyncStatistics> processBatch(@Nonnull java.util.List<com.commercetools.api.models.product_type.ProductTypeDraft> batch)
This method first creates a newSet
of validProductTypeDraft
elements. For more on the rules of validation, check:ProductTypeBatchValidator.validateAndCollectReferencedKeys(java.util.List<com.commercetools.api.models.product_type.ProductTypeDraft>)
. Using the resulting set ofvalidProductTypeDrafts
, the matching productTypes in the target CTP project are fetched then the methodsyncBatch(java.util.Set, java.util.Set, java.util.Map)
is called to perform the sync (update or create requests accordingly) on the target project.After the batch is synced, the method resolves all missing nested references that could have been created after execution of sync of batch. For more info check
resolveMissingNestedReferences(java.util.Map)
.In case of error during of fetching of existing productTypes, the error callback will be triggered. And the sync process would stop for the given batch.
- Specified by:
processBatch
in classBaseSync<com.commercetools.api.models.product_type.ProductType,com.commercetools.api.models.product_type.ProductTypeDraft,com.commercetools.api.models.product_type.ProductTypeUpdateAction,ProductTypeSyncStatistics,ProductTypeSyncOptions>
- Parameters:
batch
- batch of drafts that need to be synced- Returns:
- a
CompletionStage
containing an instance ofProductTypeSyncStatistics
which contains information about the result of syncing the supplied batch to the target project.
-
-