Package de.hybris.platform.product.impl
Class DefaultVariantsService
java.lang.Object
de.hybris.platform.servicelayer.internal.service.AbstractService
de.hybris.platform.servicelayer.internal.service.AbstractBusinessService
de.hybris.platform.product.impl.DefaultVariantsService
- All Implemented Interfaces:
VariantsService,Serializable,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanNameAware,org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
DefaultBackofficeVariantsService
Default implementation of the
VariantsService.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class de.hybris.platform.servicelayer.internal.service.AbstractService
AbstractService.SerializableDTO -
Field Summary
Fields inherited from class de.hybris.platform.servicelayer.internal.service.AbstractBusinessService
modelService, sessionService, txManagerFields inherited from class de.hybris.platform.servicelayer.internal.service.AbstractService
tenant -
Constructor Summary
Constructors -
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.voidsetTypeService(TypeService typeService) 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) voidsetVariantTypeDao(VariantTypeDao variantTypeDao) Methods inherited from class de.hybris.platform.servicelayer.internal.service.AbstractBusinessService
getModelService, getSessionService, getTxManager, setModelService, setSessionService, setTxManagerMethods inherited from class de.hybris.platform.servicelayer.internal.service.AbstractService
afterPropertiesSet, getCurrentTenant, setBeanName, setCurrentTenant, writeReplace
-
Constructor Details
-
DefaultVariantsService
public DefaultVariantsService()
-
-
Method Details
-
getVariantTypeForCode
Returns aVariantTypeModelinstance for the givencode.- Specified by:
getVariantTypeForCodein interfaceVariantsService- Parameters:
code- the variant type code. Must exists in the system and must be not null.- Returns:
- a VariantTypeModel for the given code.
-
getVariantAttributes
Returns a set of variant attribute qualifiers for the givenvariantProductType.- Specified by:
getVariantAttributesin interfaceVariantsService- 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.
-
getVariantAttributeValue
Returns for the givenVariantProductModeland given attributequalifierthe value of this attribute.TODO: to be changed, remove the jalo part. At this moment the jalo-way has to be used because there is no chance to read the attribute value in SL, because it's not a part of the model.
- Specified by:
getVariantAttributeValuein interfaceVariantsService- Parameters:
variant- the variant productqualifier- the attribute qualifier- Returns:
- what is stored in this attribute.
-
setVariantAttributeValue
Sets in the givenVariantProductModelthe givenvalueto the given attributequalifier.TODO: to be changed, remove the jalo part. At this moment the jalo-way has to be used because there is no chance to read the attribute value in SL, because it's not a part of the model.
- Specified by:
setVariantAttributeValuein interfaceVariantsService- Parameters:
variant- the variant productqualifier- the attribute qualifiervalue- the value to be set
-
setTypeService
-
setVariantTypeDao
-
getAllVariantTypes
Searches all existing variant types.- Specified by:
getAllVariantTypesin interfaceVariantsService- Returns:
- the variant types.
-
getAssignedVariantAttributes
Searches variant attributes with all assigned values for given base product.- Specified by:
getAssignedVariantAttributesin interfaceVariantsService- Parameters:
baseProduct- the base product for all variants- Returns:
- map "name of attribute (qualifier) ->distinct values" over all variants
-
getVariantProductForAttributeValues
public 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.- Specified by:
getVariantProductForAttributeValuesin interfaceVariantsService- 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
public List<VariantAttributeDescriptorModel> getVariantAttributesForVariantType(VariantTypeModel variantType) Returns the attribute descriptors of the givenVariantType.- Specified by:
getVariantAttributesForVariantTypein interfaceVariantsService- Parameters:
variantType- the variant type- Returns:
- an attributes collection
-
setVariantAttributesForVariantType
public 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.- Specified by:
setVariantAttributesForVariantTypein interfaceVariantsService- Parameters:
variantType- the variant typenewAttributes- the attributes which should be assigned
-