Class DefaultCodeUsabilityService
- java.lang.Object
-
- com.broadleafcommerce.promotion.campaign.service.DefaultCodeUsabilityService
-
- All Implemented Interfaces:
CodeUsabilityService
public class DefaultCodeUsabilityService extends Object implements CodeUsabilityService
- Author:
- Chad Harchar (charchar)
-
-
Field Summary
Fields Modifier and Type Field Description protected CampaignCodeAuditDetailService<CampaignCodeAuditDetail>
campaignCodeAuditDetailService
protected CampaignCodeService<CampaignCode>
campaignCodeService
protected CampaignService<Campaign>
campaignService
protected com.broadleafcommerce.common.extension.TypeFactory
typeFactory
-
Constructor Summary
Constructors Constructor Description DefaultCodeUsabilityService(CampaignCodeService<CampaignCode> campaignCodeService, CampaignService<Campaign> campaignService, CampaignCodeAuditDetailService<CampaignCodeAuditDetail> campaignCodeAuditDetailService, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description com.broadleafcommerce.promotion.campaign.client.web.context.CampaignCodeUsage
getCampaignCodeUsage(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, com.broadleafcommerce.promotion.campaign.client.web.context.CampaignCodeUsabilityInfo codeUsability, CampaignCode code)
com.broadleafcommerce.promotion.campaign.client.web.context.CampaignCodeUsabilityInfo
getCodeUsability(String campaignCode, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Checks the usability of the providedcampaignCode
by: 1.
-
-
-
Field Detail
-
campaignCodeService
protected final CampaignCodeService<CampaignCode> campaignCodeService
-
campaignService
protected final CampaignService<Campaign> campaignService
-
campaignCodeAuditDetailService
protected final CampaignCodeAuditDetailService<CampaignCodeAuditDetail> campaignCodeAuditDetailService
-
typeFactory
protected final com.broadleafcommerce.common.extension.TypeFactory typeFactory
-
-
Constructor Detail
-
DefaultCodeUsabilityService
public DefaultCodeUsabilityService(CampaignCodeService<CampaignCode> campaignCodeService, CampaignService<Campaign> campaignService, CampaignCodeAuditDetailService<CampaignCodeAuditDetail> campaignCodeAuditDetailService, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Detail
-
getCodeUsability
@NonNull public com.broadleafcommerce.promotion.campaign.client.web.context.CampaignCodeUsabilityInfo getCodeUsability(@NonNull String campaignCode, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Description copied from interface:CodeUsabilityService
Checks the usability of the providedcampaignCode
by:- 1. Determine any related
CampaignCode
for the provided string. - 2. Count the number of times that campaign code has been used by querying against related
CampaignCodeAuditDetail
. - 3. Add the corresponding
Campaign#getTrackingIdentifier()
for the campaign code to the structure. - 4. If there are any usable codes, set
CampaignCodeUsabilityType.USABLE
.
- Specified by:
getCodeUsability
in interfaceCodeUsabilityService
- Parameters:
campaignCode
- The code to check usability against.context
- context information around sandboxing and multitenant state- Returns:
- a
CampaignCodeUsabilityInfo
which contains a boolean to tell if the code can be used and a detailed structure informing on the code usage.
- 1. Determine any related
-
getCampaignCodeUsage
public com.broadleafcommerce.promotion.campaign.client.web.context.CampaignCodeUsage getCampaignCodeUsage(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, com.broadleafcommerce.promotion.campaign.client.web.context.CampaignCodeUsabilityInfo codeUsability, CampaignCode code)
-
-