Class NonDiscountPromotionEngineResultsClassifyingPopulator
- java.lang.Object
-
- de.hybris.platform.promotionengineservices.promotionengine.report.populators.NonDiscountPromotionEngineResultsClassifyingPopulator
-
- All Implemented Interfaces:
Populator<AbstractOrderModel,PromotionEngineResults>
public class NonDiscountPromotionEngineResultsClassifyingPopulator extends java.lang.Object implements Populator<AbstractOrderModel,PromotionEngineResults>
Populator assigns promotions results associated withAbstractOrderModelthat aren't related to discounts to either order or order entry level promotions lists and stores results intoPromotionEngineResults
-
-
Constructor Summary
Constructors Constructor Description NonDiscountPromotionEngineResultsClassifyingPopulator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidclassify(java.util.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 java.util.Set<PromotionResultModel>collectConvertedPromotionsResult(OrderLevelPromotionEngineResults orderDiscountPromotions, java.util.List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions)protected java.util.Set<PromotionResultModel>collectNonDiscountPromotions(java.util.Set<PromotionResultModel> allPromotions, OrderLevelPromotionEngineResults orderDiscountPromotions, java.util.List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions)protected Converter<PromotionResultModel,PromotionEngineResult>getPromotionResultConverter()protected booleanhasConsumedEntries(java.util.Collection<PromotionOrderEntryConsumedModel> consumedEntries)protected booleanhasSameOrderEntry(java.util.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 java.util.function.Function<PromotionEngineResult,AbstractOrderEntryModel>orderEntry()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 java.util.stream.Stream<PromotionEngineResult>toPromotionEngineResultsStream(OrderLevelPromotionEngineResults orderDiscountPromotions)protected java.util.stream.Stream<PromotionEngineResult>toPromotionEngineResultsStream(java.util.List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions)protected voidupdateOrderEntryLevelPromotions(java.util.List<PromotionEngineResult> toAppend, PromotionEngineResults target)Updates order entry level promotions list based on the list of additional promotions that need to be addedprotected voidupdateOrderLevelPromotions(java.util.List<PromotionEngineResult> toAppend, PromotionEngineResults target)Updates order entry level promotions list based on the list of additional promotions that need to be added
-
-
-
Method Detail
-
populate
public void populate(AbstractOrderModel source, PromotionEngineResults target)
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
protected void cleanup(PromotionEngineResults target)
-
classify
protected void classify(java.util.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(java.util.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(java.util.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
protected java.util.function.Function<PromotionEngineResult,AbstractOrderEntryModel> orderEntry()
Provides function that provide an order entry associated withPromotionEngineResult
-
isOrderEntryRelated
protected boolean isOrderEntryRelated(PromotionEngineResult promotionEngineResult)
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
protected boolean hasSameOrderEntry(java.util.Collection<PromotionOrderEntryConsumedModel> consumedEntries)
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
protected boolean hasConsumedEntries(java.util.Collection<PromotionOrderEntryConsumedModel> consumedEntries)
-
collectNonDiscountPromotions
protected java.util.Set<PromotionResultModel> collectNonDiscountPromotions(java.util.Set<PromotionResultModel> allPromotions, OrderLevelPromotionEngineResults orderDiscountPromotions, java.util.List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions)
-
collectConvertedPromotionsResult
protected java.util.Set<PromotionResultModel> collectConvertedPromotionsResult(OrderLevelPromotionEngineResults orderDiscountPromotions, java.util.List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions)
-
toPromotionEngineResultsStream
protected java.util.stream.Stream<PromotionEngineResult> toPromotionEngineResultsStream(java.util.List<OrderEntryLevelPromotionEngineResults> orderEntryDiscountPromotions)
-
toPromotionEngineResultsStream
protected java.util.stream.Stream<PromotionEngineResult> toPromotionEngineResultsStream(OrderLevelPromotionEngineResults orderDiscountPromotions)
-
getPromotionResultConverter
protected Converter<PromotionResultModel,PromotionEngineResult> getPromotionResultConverter()
-
setPromotionResultConverter
public void setPromotionResultConverter(Converter<PromotionResultModel,PromotionEngineResult> promotionResultConverter)
-
-