Package de.hybris.platform.voucher.impl
Class DefaultVoucherModelService
- java.lang.Object
-
- de.hybris.platform.servicelayer.internal.service.AbstractService
-
- de.hybris.platform.servicelayer.internal.service.AbstractBusinessService
-
- de.hybris.platform.voucher.impl.AbstractVoucherService
-
- de.hybris.platform.voucher.impl.DefaultVoucherModelService
-
- All Implemented Interfaces:
VoucherModelService
,java.io.Serializable
,org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanNameAware
,org.springframework.beans.factory.InitializingBean
public class DefaultVoucherModelService extends AbstractVoucherService implements VoucherModelService
- See Also:
- Serialized Form
-
-
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, txManager
-
Fields inherited from class de.hybris.platform.servicelayer.internal.service.AbstractService
tenant
-
-
Constructor Summary
Constructors Constructor Description DefaultVoucherModelService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
checkVoucherCode(VoucherModel voucher, java.lang.String voucherCode)
Returns true if the specified voucher code is valid for this voucher.VoucherInvalidationModel
createVoucherInvalidation(VoucherModel voucher, java.lang.String voucherCode, OrderModel order)
java.lang.String
generateVoucherCode(VoucherModel voucher)
VoucherEntrySet
getApplicableEntries(VoucherModel voucher, AbstractOrderModel order)
Returns all positions or parts of positions of the specified abstract order that are eligible for this voucher.VoucherValue
getAppliedValue(VoucherModel voucher, AbstractOrderModel order)
Returns a VoucherValue object representing the discount value of this voucher.DiscountValue
getDiscountValue(VoucherModel voucher, AbstractOrderModel order)
java.util.List<RestrictionModel>
getViolatedRestrictions(VoucherModel voucher, AbstractOrderModel order)
Returns all restrictions that are not fulfilled by the specified abstract order.java.util.List<RestrictionModel>
getViolatedRestrictions(VoucherModel voucher, ProductModel product)
Returns all restrictions that are not fulfilled by the specified product.java.util.List<java.lang.String>
getViolationMessages(VoucherModel voucher, AbstractOrderModel order)
java.util.List<java.lang.String>
getViolationMessages(VoucherModel voucher, ProductModel product)
VoucherValue
getVoucherValue(VoucherModel voucher, AbstractOrderModel order)
boolean
isApplicable(VoucherModel voucher, AbstractOrderModel order)
Returns true if the specified abstract order is eligible for this voucher.boolean
isApplicable(VoucherModel voucher, ProductModel product)
Returns true if the specified product is eligible for this voucher.boolean
isReservable(VoucherModel voucher, java.lang.String voucherCode, AbstractOrderModel order)
boolean
isReservable(VoucherModel voucher, java.lang.String voucherCode, UserModel user)
boolean
redeem(VoucherModel voucher, java.lang.String voucherCode, CartModel cart)
WARNING!
If some methods for checking voucher availability are called before this method, all these methods have to be in one synchronize block! Suggested synchronization object is cart.VoucherInvalidationModel
redeem(VoucherModel voucher, java.lang.String voucherCode, OrderModel order)
void
release(VoucherModel voucher, java.lang.String voucherCode, CartModel cart)
void
release(VoucherModel voucher, java.lang.String voucherCode, OrderModel order)
VoucherInvalidationModel
reserve(VoucherModel voucher, java.lang.String voucherCode, OrderModel order)
-
Methods inherited from class de.hybris.platform.voucher.impl.AbstractVoucherService
getAbstractOrder, getCart, getOrder, getProduct, getRestriction, getUser, getVoucher
-
Methods inherited from class de.hybris.platform.servicelayer.internal.service.AbstractBusinessService
getModelService, getSessionService, getTxManager, setModelService, setSessionService, setTxManager
-
Methods inherited from class de.hybris.platform.servicelayer.internal.service.AbstractService
afterPropertiesSet, getCurrentTenant, setBeanName, setCurrentTenant, writeReplace
-
-
-
-
Method Detail
-
checkVoucherCode
public boolean checkVoucherCode(VoucherModel voucher, java.lang.String voucherCode)
Description copied from interface:VoucherModelService
Returns true if the specified voucher code is valid for this voucher.- Specified by:
checkVoucherCode
in interfaceVoucherModelService
- Parameters:
voucher
- the vouchervoucherCode
- the voucher code to check validity of.- Returns:
- true if the specified voucher code is valid for this voucher, false else.
-
createVoucherInvalidation
public VoucherInvalidationModel createVoucherInvalidation(VoucherModel voucher, java.lang.String voucherCode, OrderModel order)
- Specified by:
createVoucherInvalidation
in interfaceVoucherModelService
-
generateVoucherCode
public java.lang.String generateVoucherCode(VoucherModel voucher) throws java.security.NoSuchAlgorithmException
- Specified by:
generateVoucherCode
in interfaceVoucherModelService
- Throws:
java.security.NoSuchAlgorithmException
-
getApplicableEntries
public VoucherEntrySet getApplicableEntries(VoucherModel voucher, AbstractOrderModel order)
Description copied from interface:VoucherModelService
Returns all positions or parts of positions of the specified abstract order that are eligible for this voucher.- Specified by:
getApplicableEntries
in interfaceVoucherModelService
- Parameters:
voucher
- the voucherorder
- the abstract order to get eligible positions of.- Returns:
- a VoucherEntrySet containing a VoucherEntry object for every position that is fully or partly eligible for this voucher.
-
getAppliedValue
public VoucherValue getAppliedValue(VoucherModel voucher, AbstractOrderModel order)
Description copied from interface:VoucherModelService
Returns a VoucherValue object representing the discount value of this voucher. If the voucher is applicable to the specified abstract order this value is calculated in consideration of the applicable value returned by getApplicableValue(AbstractOrder).- Specified by:
getAppliedValue
in interfaceVoucherModelService
- Parameters:
voucher
- the voucherorder
- the abstract order to get discount value of.- Returns:
- a VoucherValue representing the discount value of this voucher.
-
getDiscountValue
public DiscountValue getDiscountValue(VoucherModel voucher, AbstractOrderModel order)
- Specified by:
getDiscountValue
in interfaceVoucherModelService
-
getViolatedRestrictions
public java.util.List<RestrictionModel> getViolatedRestrictions(VoucherModel voucher, AbstractOrderModel order)
Description copied from interface:VoucherModelService
Returns all restrictions that are not fulfilled by the specified abstract order.- Specified by:
getViolatedRestrictions
in interfaceVoucherModelService
- Parameters:
voucher
- the voucherorder
- the abstract order to return violated restrictions for.- Returns:
- a List object containing all Restriction objects associated with this voucher that the specified abstract order does not fulfill.
-
getViolatedRestrictions
public java.util.List<RestrictionModel> getViolatedRestrictions(VoucherModel voucher, ProductModel product)
Description copied from interface:VoucherModelService
Returns all restrictions that are not fulfilled by the specified product.- Specified by:
getViolatedRestrictions
in interfaceVoucherModelService
- Parameters:
voucher
- the voucherproduct
- the product to return violated restrictions for.- Returns:
- a List object containing all Restriction objects associated with this voucher that the specified product does not fulfill.
-
getViolationMessages
public java.util.List<java.lang.String> getViolationMessages(VoucherModel voucher, AbstractOrderModel order)
- Specified by:
getViolationMessages
in interfaceVoucherModelService
-
getViolationMessages
public java.util.List<java.lang.String> getViolationMessages(VoucherModel voucher, ProductModel product)
- Specified by:
getViolationMessages
in interfaceVoucherModelService
-
getVoucherValue
public VoucherValue getVoucherValue(VoucherModel voucher, AbstractOrderModel order)
- Specified by:
getVoucherValue
in interfaceVoucherModelService
-
isApplicable
public boolean isApplicable(VoucherModel voucher, AbstractOrderModel order)
Description copied from interface:VoucherModelService
Returns true if the specified abstract order is eligible for this voucher. More formally, returns true if the specified abstract order fulfills all restrictions associated with this voucher.- Specified by:
isApplicable
in interfaceVoucherModelService
- Parameters:
voucher
- the voucherorder
- the abstract order to check whether it is eligible for this voucher.- Returns:
- true if the specified abstract order is eligible for this voucher, false else.
-
isApplicable
public boolean isApplicable(VoucherModel voucher, ProductModel product)
Description copied from interface:VoucherModelService
Returns true if the specified product is eligible for this voucher. More formally, returns true if the specified product fulfills all restrictions associated with this voucher.- Specified by:
isApplicable
in interfaceVoucherModelService
- Parameters:
voucher
- the voucherproduct
- the product to check whether it is eligible for this voucher.- Returns:
- true if the specified product is eligible for this voucher, false else.
-
isReservable
public boolean isReservable(VoucherModel voucher, java.lang.String voucherCode, UserModel user)
- Specified by:
isReservable
in interfaceVoucherModelService
-
isReservable
public boolean isReservable(VoucherModel voucher, java.lang.String voucherCode, AbstractOrderModel order)
- Specified by:
isReservable
in interfaceVoucherModelService
-
redeem
public boolean redeem(VoucherModel voucher, java.lang.String voucherCode, CartModel cart) throws JaloPriceFactoryException
Description copied from interface:VoucherModelService
WARNING!
If some methods for checking voucher availability are called before this method, all these methods have to be in one synchronize block! Suggested synchronization object is cart.- Specified by:
redeem
in interfaceVoucherModelService
- Throws:
JaloPriceFactoryException
-
redeem
public VoucherInvalidationModel redeem(VoucherModel voucher, java.lang.String voucherCode, OrderModel order)
- Specified by:
redeem
in interfaceVoucherModelService
-
release
public void release(VoucherModel voucher, java.lang.String voucherCode, OrderModel order) throws ConsistencyCheckException
- Specified by:
release
in interfaceVoucherModelService
- Throws:
ConsistencyCheckException
-
release
public void release(VoucherModel voucher, java.lang.String voucherCode, CartModel cart) throws JaloPriceFactoryException
- Specified by:
release
in interfaceVoucherModelService
- Throws:
JaloPriceFactoryException
-
reserve
public VoucherInvalidationModel reserve(VoucherModel voucher, java.lang.String voucherCode, OrderModel order)
- Specified by:
reserve
in interfaceVoucherModelService
-
-