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<com.commercetools.api.models.product.ProductUpdateAction>
buildProductVariantAttributeUpdateAction(long variantId, com.commercetools.api.models.product.Attribute oldProductVariantAttribute, com.commercetools.api.models.product.Attribute newProductVariantAttribute, java.util.Map<java.lang.String,AttributeMetaData> attributesMetaData)
Compares the attributes of aAttribute
and aAttribute
to build either aProductSetAttributeAction
or aProductSetAttributeInAllVariantsAction
.
-
-
-
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<com.commercetools.api.models.product.ProductUpdateAction> buildProductVariantAttributeUpdateAction(long variantId, @Nullable com.commercetools.api.models.product.Attribute oldProductVariantAttribute, @Nonnull com.commercetools.api.models.product.Attribute newProductVariantAttribute, @Nonnull java.util.Map<java.lang.String,AttributeMetaData> attributesMetaData) throws BuildUpdateActionException
Compares the attributes of aAttribute
and aAttribute
to build either aProductSetAttributeAction
or aProductSetAttributeInAllVariantsAction
.If the attribute is sameForAll a
ProductSetAttributeInAllVariantsAction
is built. Otherwise, aProductSetAttributeAction
is built.If both the
Attribute
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
- theAttribute
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.
-
-