public final class ProductVariantAttributeUpdateActionUtils
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
ATTRIBUTE_NOT_IN_ATTRIBUTE_METADATA |
| Modifier and Type | Method and Description |
|---|---|
static java.util.Optional<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> |
buildProductVariantAttributeUpdateAction(int variantId,
io.sphere.sdk.products.attributes.Attribute oldProductVariantAttribute,
io.sphere.sdk.products.attributes.AttributeDraft newProductVariantAttribute,
java.util.Map<java.lang.String,AttributeMetaData> attributesMetaData)
Compares the attributes of a
AttributeDraft and a Attribute to build either a
SetAttribute or a
SetAttributeInAllVariants. |
public static final java.lang.String ATTRIBUTE_NOT_IN_ATTRIBUTE_METADATA
@Nonnull
public static java.util.Optional<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.products.Product>> buildProductVariantAttributeUpdateAction(int variantId,
@Nullable
io.sphere.sdk.products.attributes.Attribute oldProductVariantAttribute,
@Nonnull
io.sphere.sdk.products.attributes.AttributeDraft newProductVariantAttribute,
@Nonnull
java.util.Map<java.lang.String,AttributeMetaData> attributesMetaData)
throws BuildUpdateActionException
AttributeDraft and a Attribute to build either a
SetAttribute or a
SetAttributeInAllVariants.
If the attribute is sameForAll a
SetAttributeInAllVariants is built. Otherwise,
a SetAttribute is built.
If both the AttributeDraft and the Attribute have identical values, then
no update action is needed and hence an empty List is returned.
variantId - the id of the variant of that the attribute belong to. It is used only in the error
messages if any.oldProductVariantAttribute - the Attribute which should be updated.newProductVariantAttribute - the AttributeDraft where we get the new value.attributesMetaData - a map of attribute name -> AttributeMetaData; which defines attribute
information: its name and whether it has the constraint "SameForAll" or not.BuildUpdateActionException - thrown if attribute as not found in the attributeMetaData or
if the attribute is required and the new value is null.