Class ImpressionService
- java.lang.Object
-
- com.hybris.ymkt.recommendation.services.ImpressionService
-
public class ImpressionService extends java.lang.ObjectThis service is responsible to record/track, aggregate and send recommendations seen/printed to the users.
-
-
Field Summary
Fields Modifier and Type Field Description protected longaggregationTimeWindowprotected static intMAX_FAILUREprotected ModelServicemodelServiceprotected ODataServiceoDataServiceprotected intreadBatchSizeprotected RecommendationBufferServicerecommendationBufferServiceprotected intsendBatchSize
-
Constructor Summary
Constructors Constructor Description ImpressionService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaggregateImpressions()Aggregate individual impressions, save the aggregated impressions and delete the individual impressions.protected java.util.List<SAPRecoImpressionAggrModel>aggregateImpressionsByScenario(java.util.List<SAPRecoImpressionModel> impressionsList)Aggregates impressions by scenario and aggregationTimeStamp
Aggregation timestamp is the midpoint of the time window based on the current time
e.g.
Current time = 1:04:32.512
Time window = 5 minutes
AggregatedTimeStamp = 1:02:30 (midpoint between 1:00 and 1:05)protected longcalcMidTimeStamp(long datetime)booleanpostImpression(SAPRecoImpressionAggrModel aggregatedImpression)Send aggregated impression via oDatavoidsaveImpression(ImpressionContext impressionContext)Save individual impressions when UI component is viewedvoidsendAggregatedImpressions()Get aggregated impressions for sending via oData.
If successfully sent, delete it.voidsetAggregationTimeWindow(long aggregationTimeWindow)voidsetModelService(ModelService modelService)voidsetODataService(ODataService oDataService)voidsetReadBatchSize(int readBatchSize)voidsetRecommendationBufferService(RecommendationBufferService recommendationBufferService)voidsetSendBatchSize(int sendBatchSize)
-
-
-
Field Detail
-
MAX_FAILURE
protected static final int MAX_FAILURE
- See Also:
- Constant Field Values
-
aggregationTimeWindow
protected long aggregationTimeWindow
-
modelService
protected ModelService modelService
-
oDataService
protected ODataService oDataService
-
readBatchSize
protected int readBatchSize
-
recommendationBufferService
protected RecommendationBufferService recommendationBufferService
-
sendBatchSize
protected int sendBatchSize
-
-
Method Detail
-
aggregateImpressions
public void aggregateImpressions()
Aggregate individual impressions, save the aggregated impressions and delete the individual impressions. Exceptions must be handles by the caller.
-
aggregateImpressionsByScenario
protected java.util.List<SAPRecoImpressionAggrModel> aggregateImpressionsByScenario(java.util.List<SAPRecoImpressionModel> impressionsList)
Aggregates impressions by scenario and aggregationTimeStamp
Aggregation timestamp is the midpoint of the time window based on the current time
e.g.
Current time = 1:04:32.512
Time window = 5 minutes
AggregatedTimeStamp = 1:02:30 (midpoint between 1:00 and 1:05)- Parameters:
impressionsList-ListofSAPRecoImpressionModel- Returns:
- aggregatedImpressionsList
-
calcMidTimeStamp
protected long calcMidTimeStamp(long datetime)
-
postImpression
public boolean postImpression(SAPRecoImpressionAggrModel aggregatedImpression)
Send aggregated impression via oData- Parameters:
aggregatedImpression-SAPRecoImpressionAggrModel- Returns:
- true if posting was a success, false otherwise.
-
saveImpression
public void saveImpression(ImpressionContext impressionContext)
Save individual impressions when UI component is viewed- Parameters:
impressionContext- the impression data to save
-
sendAggregatedImpressions
public void sendAggregatedImpressions()
Get aggregated impressions for sending via oData.
If successfully sent, delete it. If sending failed, keep it for next time
-
setAggregationTimeWindow
public void setAggregationTimeWindow(long aggregationTimeWindow)
-
setModelService
public void setModelService(ModelService modelService)
-
setODataService
public void setODataService(ODataService oDataService)
-
setReadBatchSize
public void setReadBatchSize(int readBatchSize)
-
setRecommendationBufferService
public void setRecommendationBufferService(RecommendationBufferService recommendationBufferService)
-
setSendBatchSize
public void setSendBatchSize(int sendBatchSize)
-
-