public final class ProductVariantUpdateActionUtils
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
FAILED_TO_BUILD_ATTRIBUTE_UPDATE_ACTION |
static java.lang.String |
NULL_PRODUCT_VARIANT_ATTRIBUTE |
| 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>> |
buildProductVariantAssetsUpdateActions(io.sphere.sdk.products.ProductProjection oldProduct,
io.sphere.sdk.products.ProductDraft newProduct,
io.sphere.sdk.products.ProductVariant oldProductVariant,
io.sphere.sdk.products.ProductVariantDraft newProductVariant,
ProductSyncOptions syncOptions)
Compares the
List of AssetDrafts 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>> |
buildProductVariantAttributesUpdateActions(io.sphere.sdk.products.ProductProjection oldProduct,
io.sphere.sdk.products.ProductDraft newProduct,
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.ProductProjection oldProduct,
io.sphere.sdk.products.ProductDraft newProduct,
io.sphere.sdk.products.ProductVariant oldProductVariant,
io.sphere.sdk.products.ProductVariantDraft newProductVariant,
ProductSyncOptions syncOptions)
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. |
public static final java.lang.String FAILED_TO_BUILD_ATTRIBUTE_UPDATE_ACTION
public static final java.lang.String NULL_PRODUCT_VARIANT_ATTRIBUTE
@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.@Nonnull
public static java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> buildProductVariantPricesUpdateActions(@Nullable
io.sphere.sdk.products.ProductProjection oldProduct,
@Nonnull
io.sphere.sdk.products.ProductDraft newProduct,
@Nonnull
io.sphere.sdk.products.ProductVariant oldProductVariant,
@Nonnull
io.sphere.sdk.products.ProductVariantDraft newProductVariant,
@Nonnull
ProductSyncOptions syncOptions)
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.oldProduct - the product which should be updated.newProduct - the product draft.oldProductVariant - the ProductVariant which should be updated.newProductVariant - the ProductVariantDraft where we get the new list of prices.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>> 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)
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.
variantId - the variantId for the MoveImageToPosition update actions.oldImages - the old list of images.newImages - the new list of images.@Nonnull
public static java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> buildProductVariantAssetsUpdateActions(@Nonnull
io.sphere.sdk.products.ProductProjection oldProduct,
@Nonnull
io.sphere.sdk.products.ProductDraft newProduct,
@Nonnull
io.sphere.sdk.products.ProductVariant oldProductVariant,
@Nonnull
io.sphere.sdk.products.ProductVariantDraft newProductVariant,
@Nonnull
ProductSyncOptions syncOptions)
List of AssetDrafts of a ProductVariantDraft and a ProductVariant and returns a List of UpdateAction<Product>. If
both the ProductVariantDraft and the ProductVariant have identical list of
assets, then no update action is needed and hence an empty List is returned. In case,
the new product variant draft has a list of assets in which a duplicate key exists, the error
callback is triggered and an empty list is returned.oldProduct - old Product, whose variant assets should be updated.newProduct - new product draft, which provides the assets to update.oldProductVariant - the ProductVariant which should be updated.newProductVariant - the ProductVariantDraft where we get the new list of assets.syncOptions - responsible for supplying the sync options to the sync utility method. It is
used for triggering the error callback within the utility, in case of errors.@Nonnull
public static java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> buildProductVariantAttributesUpdateActions(@Nonnull
io.sphere.sdk.products.ProductProjection oldProduct,
@Nonnull
io.sphere.sdk.products.ProductDraft newProduct,
@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.oldProduct - the product that the variants belong to. It is used only in the error
messages if any.newProduct - the new product draft.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).