Class NonDiscountPromotionEngineResultsClassifyingPopulator
java.lang.Object
de.hybris.platform.promotionengineservices.promotionengine.report.populators.NonDiscountPromotionEngineResultsClassifyingPopulator
- All Implemented Interfaces:
Populator<AbstractOrderModel,PromotionEngineResults>
public class NonDiscountPromotionEngineResultsClassifyingPopulator
extends Object
implements Populator<AbstractOrderModel,PromotionEngineResults>
Populator assigns promotions results associated with
AbstractOrderModel that aren't related to discounts to
either order or order entry level promotions lists and stores results into PromotionEngineResults-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidclassify(List<PromotionEngineResult> promotionsToClassify, PromotionEngineResults target) Tries to classify and assign promotion either as an order or an order entry level promotion using heuristic approach.protected voidcleanup(PromotionEngineResults target) protected Set<PromotionResultModel>collectConvertedPromotionsResult(OrderLevelPromotionEngineResults orderDiscountPromotions, List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions) protected Set<PromotionResultModel>collectNonDiscountPromotions(Set<PromotionResultModel> allPromotions, OrderLevelPromotionEngineResults orderDiscountPromotions, List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions) protected Converter<PromotionResultModel,PromotionEngineResult> protected booleanhasConsumedEntries(Collection<PromotionOrderEntryConsumedModel> consumedEntries) protected booleanhasSameOrderEntry(Collection<PromotionOrderEntryConsumedModel> consumedEntries) Checks if all consumed entries are related to a single order entryprotected booleanisOrderEntryRelated(PromotionEngineResult promotionEngineResult) Checks if promotion results get be identified as order entry relatedprotected Function<PromotionEngineResult,AbstractOrderEntryModel> Provides function that provide an order entry associated withPromotionEngineResultvoidpopulate(AbstractOrderModel source, PromotionEngineResults target) Populate the target instance with values from the source instance.voidsetPromotionResultConverter(Converter<PromotionResultModel, PromotionEngineResult> promotionResultConverter) protected Stream<PromotionEngineResult>toPromotionEngineResultsStream(OrderLevelPromotionEngineResults orderDiscountPromotions) protected Stream<PromotionEngineResult>toPromotionEngineResultsStream(List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions) protected voidupdateOrderEntryLevelPromotions(List<PromotionEngineResult> toAppend, PromotionEngineResults target) Updates order entry level promotions list based on the list of additional promotions that need to be addedprotected voidupdateOrderLevelPromotions(List<PromotionEngineResult> toAppend, PromotionEngineResults target) Updates order entry level promotions list based on the list of additional promotions that need to be added
-
Constructor Details
-
NonDiscountPromotionEngineResultsClassifyingPopulator
public NonDiscountPromotionEngineResultsClassifyingPopulator()
-
-
Method Details
-
populate
Populate the target instance with values from the source instance.- Specified by:
populatein interfacePopulator<AbstractOrderModel,PromotionEngineResults> - Parameters:
source- the source objecttarget- the target to fill
-
cleanup
-
classify
protected void classify(List<PromotionEngineResult> promotionsToClassify, PromotionEngineResults target) Tries to classify and assign promotion either as an order or an order entry level promotion using heuristic approach. These promotion results that has assigned some consumed entries and all refers to the same order entry will be appended to the an order entry level promotions otherwise will be classsfied as order level promotions- Parameters:
promotionsToClassify-target-
-
updateOrderEntryLevelPromotions
protected void updateOrderEntryLevelPromotions(List<PromotionEngineResult> toAppend, PromotionEngineResults target) Updates order entry level promotions list based on the list of additional promotions that need to be added- Parameters:
toAppend- - promotions that need to assigned as order entry level promotionstarget- - promotions result that needs to be updated
-
updateOrderLevelPromotions
protected void updateOrderLevelPromotions(List<PromotionEngineResult> toAppend, PromotionEngineResults target) Updates order entry level promotions list based on the list of additional promotions that need to be added- Parameters:
toAppend- - promotions that need to assigned as order level promotionstarget- - promotions result that needs to be updated
-
orderEntry
Provides function that provide an order entry associated withPromotionEngineResult -
isOrderEntryRelated
Checks if promotion results get be identified as order entry related- Parameters:
promotionEngineResult-- Returns:
- true - if promotion engine result is order entry related, otherwise false
-
hasSameOrderEntry
Checks if all consumed entries are related to a single order entry- Parameters:
consumedEntries-- Returns:
- true if all consumedEntries are related to the same order entry, otherwise false
-
hasConsumedEntries
-
collectNonDiscountPromotions
protected Set<PromotionResultModel> collectNonDiscountPromotions(Set<PromotionResultModel> allPromotions, OrderLevelPromotionEngineResults orderDiscountPromotions, List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions) -
collectConvertedPromotionsResult
protected Set<PromotionResultModel> collectConvertedPromotionsResult(OrderLevelPromotionEngineResults orderDiscountPromotions, List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions) -
toPromotionEngineResultsStream
protected Stream<PromotionEngineResult> toPromotionEngineResultsStream(List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions) -
toPromotionEngineResultsStream
protected Stream<PromotionEngineResult> toPromotionEngineResultsStream(OrderLevelPromotionEngineResults orderDiscountPromotions) -
getPromotionResultConverter
-
setPromotionResultConverter
public void setPromotionResultConverter(Converter<PromotionResultModel, PromotionEngineResult> promotionResultConverter)
-