Class ProductVariantAttributeUpdateActionUtils
- java.lang.Object
-
- com.commercetools.sync.products.utils.ProductVariantAttributeUpdateActionUtils
-
public final class ProductVariantAttributeUpdateActionUtils extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ATTRIBUTE_NOT_IN_ATTRIBUTE_METADATA
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method 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 aAttributeDraft
and aAttribute
to build either aSetAttribute
or aSetAttributeInAllVariants
.
-
-
-
Field Detail
-
ATTRIBUTE_NOT_IN_ATTRIBUTE_METADATA
public static final java.lang.String ATTRIBUTE_NOT_IN_ATTRIBUTE_METADATA
- See Also:
- Constant Field Values
-
-
Method Detail
-
buildProductVariantAttributeUpdateAction
@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
Compares the attributes of aAttributeDraft
and aAttribute
to build either aSetAttribute
or aSetAttributeInAllVariants
.If the attribute is sameForAll a
SetAttributeInAllVariants
is built. Otherwise, aSetAttribute
is built.If both the
AttributeDraft
and theAttribute
have identical values, then no update action is needed and hence an emptyList
is returned.- Parameters:
variantId
- the id of the variant of that the attribute belong to. It is used only in the error messages if any.oldProductVariantAttribute
- theAttribute
which should be updated.newProductVariantAttribute
- theAttributeDraft
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.- Returns:
- A filled optional with the update action or an empty optional if the attributes are identical.
- Throws:
BuildUpdateActionException
- thrown if attribute as not found in theattributeMetaData
or if the attribute is required and the new value is null.
-
-