Package de.hybris.platform.product
Interface VariantsService
- All Known Subinterfaces:
BackofficeVariantsService
- All Known Implementing Classes:
DefaultBackofficeVariantsService,DefaultVariantsService
public interface VariantsService
Service to provide generic access to variant product attributes. This is necessary because variant product types may
be created during runtime and therefore no actual model class is available providing appropriate attribute accessor
methods.
- Spring Bean ID:
- variantsService
-
Method Summary
Modifier and TypeMethodDescriptionSearches all existing variant types.getAssignedVariantAttributes(ProductModel baseProduct) Searches variant attributes with all assigned values for given base product.getVariantAttributes(String variantProductType) Returns a set of variant attribute qualifiers for the givenvariantProductType.getVariantAttributesForVariantType(VariantTypeModel variantType) Returns the attribute descriptors of the givenVariantType.getVariantAttributeValue(VariantProductModel variant, String qualifier) Returns for the givenVariantProductModeland given attributequalifierthe value of this attribute.getVariantProductForAttributeValues(ProductModel baseProduct, Map<String, Object> filterValues) Filters a range of variants from a given base product according to the given variant attribute qualifier-value map.getVariantTypeForCode(String code) Returns aVariantTypeModelinstance for the givencode.voidsetVariantAttributesForVariantType(VariantTypeModel variantType, List<VariantAttributeDescriptorModel> newAttributes) Tries to assign new variant attribute descriptors for the given variant type.voidsetVariantAttributeValue(VariantProductModel variant, String qualifier, Object value)
-
Method Details
-
getVariantTypeForCode
Returns aVariantTypeModelinstance for the givencode.- Parameters:
code- the variant type code. Must exists in the system and must be not null.- Returns:
- a VariantTypeModel for the given code.
- Throws:
UnknownIdentifierException- if there is no VariantTypeModel for given codeIllegalArgumentException- if givencodeis null
-
getVariantAttributes
Returns a set of variant attribute qualifiers for the givenvariantProductType.- Parameters:
variantProductType- the variant type code. Must exists in the system and must be a variant type.- Returns:
- an empty set if for the given
variantProductTypeno variant attributes were found. - Throws:
UnknownIdentifierException- if the givenvariantProductTypedoes not exists or is not a variant type
-
getVariantAttributeValue
Returns for the givenVariantProductModeland given attributequalifierthe value of this attribute.- Parameters:
variant- the variant productqualifier- the attribute qualifier- Returns:
- what is stored in this attribute.
- Throws:
SystemException- if the attribute couldn't be read
-
setVariantAttributeValue
- Parameters:
variant- the variant productqualifier- the attribute qualifiervalue- the value to be set- Throws:
SystemException- if the attribute couldn't be written
-
getAllVariantTypes
Collection<VariantTypeModel> getAllVariantTypes()Searches all existing variant types.- Returns:
- the variant types.
-
getAssignedVariantAttributes
Searches variant attributes with all assigned values for given base product.- Parameters:
baseProduct- the base product for all variants- Returns:
- map "name of attribute (qualifier) ->distinct values" over all variants
-
getVariantProductForAttributeValues
Collection<VariantProductModel> getVariantProductForAttributeValues(ProductModel baseProduct, Map<String, Object> filterValues) Filters a range of variants from a given base product according to the given variant attribute qualifier-value map. If not all available attributes are specified the method is likely to return more than one variant - if all attributes are specified there should be only one variant which matches them.- Parameters:
baseProduct- the base product to get variants forfilterValues- the variant attribute values (attribute qualifier->value map) to match. ifnull or emptyan empty List will be returned.- Returns:
- collection of matching variants.
-
getVariantAttributesForVariantType
List<VariantAttributeDescriptorModel> getVariantAttributesForVariantType(VariantTypeModel variantType) Returns the attribute descriptors of the givenVariantType.- Parameters:
variantType- the variant type- Returns:
- an attributes collection
-
setVariantAttributesForVariantType
void setVariantAttributesForVariantType(VariantTypeModel variantType, List<VariantAttributeDescriptorModel> newAttributes) Tries to assign new variant attribute descriptors for the given variant type. Removes old attributes if necessary and checks if enclosing type is set correctly. This is achieved by internal save of the given variantType with new set of theVariantAttributeDescriptorModels.- Parameters:
variantType- the variant typenewAttributes- the attributes which should be assigned- Throws:
IllegalArgumentException- if given variantType is new
-