public final class ProductVariantUpdateActionUtils
extends java.lang.Object
| Modifier and Type | Method and Description |
|---|---|
static java.util.List<io.sphere.sdk.products.commands.updateactions.MoveImageToPosition> |
buildMoveImageToPositionUpdateActions(int variantId,
java.util.List<io.sphere.sdk.products.Image> oldImages,
java.util.List<io.sphere.sdk.products.Image> newImages)
Compares an old
List of Images and a new one and returns a List of
MoveImageToPosition with the given variantId. |
static java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> |
buildProductVariantAttributesUpdateActions(java.lang.String productKey,
io.sphere.sdk.products.ProductVariant oldProductVariant,
io.sphere.sdk.products.ProductVariantDraft newProductVariant,
java.util.Map<java.lang.String,AttributeMetaData> attributesMetaData,
ProductSyncOptions syncOptions)
Compares the attributes of a
ProductVariantDraft and a ProductVariant to build either
SetAttribute or
SetAttributeInAllVariants update actions. |
static java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> |
buildProductVariantImagesUpdateActions(io.sphere.sdk.products.ProductVariant oldProductVariant,
io.sphere.sdk.products.ProductVariantDraft newProductVariant)
Compares the
List of Images of a ProductVariantDraft and a ProductVariant and
returns a List of UpdateAction<Product>. |
static java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> |
buildProductVariantPricesUpdateActions(io.sphere.sdk.products.ProductVariant oldProductVariant,
io.sphere.sdk.products.ProductVariantDraft newProductVariant)
Compares the
List of Prices of a ProductVariantDraft and a
ProductVariant and returns a List of UpdateAction<Product>. |
static java.util.Optional<io.sphere.sdk.products.commands.updateactions.SetSku> |
buildProductVariantSkuUpdateAction(io.sphere.sdk.products.ProductVariant oldProductVariant,
io.sphere.sdk.products.ProductVariantDraft newProductVariant)
Compares the SKUs of a
ProductVariantDraft and a ProductVariant. |
@Nonnull
public static java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> buildProductVariantAttributesUpdateActions(@Nullable
java.lang.String productKey,
@Nonnull
io.sphere.sdk.products.ProductVariant oldProductVariant,
@Nonnull
io.sphere.sdk.products.ProductVariantDraft newProductVariant,
@Nonnull
java.util.Map<java.lang.String,AttributeMetaData> attributesMetaData,
@Nonnull
ProductSyncOptions syncOptions)
ProductVariantDraft and a ProductVariant to build either
SetAttribute or
SetAttributeInAllVariants update actions.
If both the ProductVariantDraft and the ProductVariant have identical list of attributes, then
no update action is needed and hence an empty List is returned.productKey - the key of the product that the variants belong to. It is used only in the error
messages if any.oldProductVariant - the ProductVariant which should be updated.newProductVariant - the ProductVariantDraft where we get the new list of attributes.attributesMetaData - a map of attribute name -> AttributeMetaData; which defines attribute
information: its name, whether a value is required or not and whether it has the
constraint "SameForAll" or not.syncOptions - the sync options wrapper which contains options related to the sync process supplied by
the user. For example, custom callbacks to call in case of warnings or errors occurring
on the build update action process. And other options (See ProductSyncOptions
for more info.@Nonnull
public static java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> buildProductVariantPricesUpdateActions(@Nonnull
io.sphere.sdk.products.ProductVariant oldProductVariant,
@Nonnull
io.sphere.sdk.products.ProductVariantDraft newProductVariant)
List of Prices of a ProductVariantDraft and a
ProductVariant and returns a List of UpdateAction<Product>. If both the
ProductVariantDraft and the ProductVariant have identical list of prices, then no update action
is needed and hence an empty List is returned.
TODO: NOTE: Right now it always builds SetPrices UpdateAction, comparison should be TODO: calculated GITHUB ISSUE#101.
oldProductVariant - the ProductVariant which should be updated.newProductVariant - the ProductVariantDraft where we get the new list of prices.@Nonnull
public static java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> buildProductVariantImagesUpdateActions(@Nonnull
io.sphere.sdk.products.ProductVariant oldProductVariant,
@Nonnull
io.sphere.sdk.products.ProductVariantDraft newProductVariant)
List of Images of a ProductVariantDraft and a ProductVariant and
returns a List of UpdateAction<Product>. If both the ProductVariantDraft
and the ProductVariant have identical list of images, then no update action is needed and hence an
empty List is returned.oldProductVariant - the ProductVariant which should be updated.newProductVariant - the ProductVariantDraft where we get the new list of images.public static java.util.List<io.sphere.sdk.products.commands.updateactions.MoveImageToPosition> buildMoveImageToPositionUpdateActions(int variantId,
@Nonnull
java.util.List<io.sphere.sdk.products.Image> oldImages,
@Nonnull
java.util.List<io.sphere.sdk.products.Image> newImages)
throws java.lang.IllegalArgumentException
List of Images and a new one and returns a List of
MoveImageToPosition with the given variantId. If both the lists are identical, then no update
action is needed and hence an empty List is returned.
This method expects the two lists two contain the same images only in different order. Otherwise, an
IllegalArgumentException would be thrown.
Note: the solution is still not optimized and may contain MoveImageToPosition actions
for items which are already on desired positions (after previous moves in the sequence). This will be
re-optimized in the next releases. TODO: GITHUB ISSUE#133
variantId - the variantId for the MoveImageToPosition update actions.oldImages - the old list of images.newImages - the new list of images.java.lang.IllegalArgumentException - if arrays have different size or different items.@Nonnull
public static java.util.Optional<io.sphere.sdk.products.commands.updateactions.SetSku> buildProductVariantSkuUpdateAction(@Nonnull
io.sphere.sdk.products.ProductVariant oldProductVariant,
@Nonnull
io.sphere.sdk.products.ProductVariantDraft newProductVariant)
ProductVariantDraft and a ProductVariant. It returns a SetSku
update action as a result in an Optional. If both the ProductVariantDraft
and the ProductVariant have identical identical SKUs, then no update action is needed and hence an
empty Optional is returned.oldProductVariant - the variant which should be updated.newProductVariant - the variant draft where we get the new SKU.